2k18-spec
2k18-spec copied to clipboard
Definition und Erläuterung der 2k18 Syntax
2k18 - 1 zimlich n🍦e Sprache
2k18 ist eine an 2k16 angelehnte Programmiersprache. Sie wurde grundlegend bei der Entwicklung des Vongpiler überarbeitet.
Danksagung
Vieleng Dang an Herr Levin, welcher die ursprüngliche Sprache entworfen hat!
Compiler
Vongpiler
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
Programmaufbau
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!!!)
Halo Wörlt (AAL)
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!!!
Kommentare
Ein einzeiliger Kommentar wird mit einem :X oder 🤐 eingeleitet.
[code] :X Das ist 1 nicer komentar!
[code] 🤐 Das ist 1 nicer kommentar!
Variablen
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]!!!
Typen
| Code | Typ |
|---|---|
word |
string |
zal |
number |
isso |
boolean (yup: true, nope: false) |
nix |
void |
Beispiel
Die Variable
lauchwird als Number mit einem Wert von15definiert. Die Variable 🦄 wird als Boolean mit einem Wert vonnopedefiniert.
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!!!
Kontrollstrukturen
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 ..."
GOTO
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!!!
Ausgabe
Gib Variablenname auf stdout aus. Mit + können Variablen und Konstanten verkettet werden.
gieb [variable] + "du lauch" her?
Eingabe
Weist der Variable den Wert der Eingabe zu.
[variable] gönn dir 1gabe!!!
Arithmetische und Logische Operationen
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?