2k18 ist eine an 2k16 angelehnte Programmiersprache. Sie wurde grundlegend bei der Entwicklung des Vongpiler überarbeitet.
Vieleng Dang an Herr Levin, welcher die ursprüngliche Sprache entworfen hat!
Der Vongpiler ist ein in Java geschriebenen Compiler, welcher Maschinencode generiert, der in der VVM (Vong Virtual Machine) ausgeführt werden kann.
Der Vongpiler wie auch die VVM können in folgendem Projekt heruntergeladen werden:
https://github.com/MastersOfDesaster/VongPiler
ERSTER ENTWURF — ERSTER ERSTER ZWEITAUSENDACHTZEHN Dieses Dokument dient zur Festlegung der Grundsätzlichen Struktur von 2k18. Bitte beachtet: Da das nur ein Entwurf ist, können sich große Bestandteile dieser "Sprache" noch grundlegend abändern. Wenn ihr so verrückt seid, 2k18 zu nutzen, seid ihr selbst schuld. Wenn was nicht funktioniert, macht uns nicht dafür verantwortlich!
gez. Das Vongpiler Team.
was ist das für 1 code?
[code]
1 nicer!!! (Alternativ: 1 n🍦r!!!)
Um das Hello World Beispiel möglichst kurz zu gestalten, hat 2k18 die Funktion integriert.
Beispiel
was ist das für 1 code?
halo i bims!!! 🤐 gibt Hello World aus!
1 n🍦r!!!
Alternativbeispiel ohne Emojis
was ist das für 1 code?
halo i bims!!! :X gibt Hello World aus!
1 nicer!!!
Ein einzeiliger Kommentar wird mit einem :X oder 🤐 eingeleitet.
[code] :X Das ist 1 nicer komentar!
[code] 🤐 Das ist 1 nicer kommentar!
Variablen beginnen immer mit einem Buchstaben und bestehen anschließend aus Buchstaben und/oder Zahlen enthalten. Variablen müssen immer initialisiert werden.
i bims 1 [name] vong [type] gönn dir [value]!!!
Code | Typ |
---|---|
word |
string |
zal |
number |
isso |
boolean (yup: true, nope: false) |
nix |
void |
Die Variable
lauch
wird als Number mit einem Wert von15
definiert. Die Variable 🦄 wird als Boolean mit einem Wert vonnope
definiert.
i bims 1 [typ] [name] her gönn dir 15!!!
i bims 1 zal lauch her gönn dir 15!!!
i bims 1 isso 🦄 her gönn dir nope!!!
bist du [bool]? yup
[code wenn bool == true]
real rap
bist du [bool]? nope
[code wenn bool == false]
real rap
Zeilen, bei denen [bool]
zu true evaluieren muss, enden mit [yup]
. Umgekehrt
mit [nope]
. Else gibts also nicht direkt. Else-if ergibt sich durch mehrere
"bist du ..."
Um ein Label zu setzen wird der Lattenzaun (auch Hashtag genannt) verwendet. Darauf folgt der Name des Labels.
[label]
[irgendwelcher kot]
g zu [label] du larry!!!
Beispiel Endlosschleife
#lauch
g zu #lauch du larry!!!
Gib Variablenname auf stdout aus. Mit + können Variablen und Konstanten verkettet werden.
gieb [variable] + "du lauch" her?
Weist der Variable den Wert der Eingabe zu.
[variable] gönn dir 1gabe!!!
Operationen können wie folgt aufgerufen werden. Die Anzahl der Argumente kann beliebig groß sein.
was ist das für 1 [operation] vong [arg1] , [arg2] , [argn] her?
Operation | Beschreibung |
---|---|
sume | Addition(+) |
abziehung | Subtraktion(-) |
mahl | Multiplikation(*) |
teilung | Division(/) |
räst | Modulo(%) |
ismär | Größer als(>) |
isweniga | Kleiner als(<) |
same | Und(&&) |
Beispiele:
Berechne die Summe (30 + 12)
was ist das für 1 sume vong 30 , 12 her?
Berechne die Summe (30 + 12) und weise sie der Varibale 🦄 zum.
🦄 gönn dir was ist das für 1 sume vong 30 , 12 her?