GerLang
Die deutsche Programmiersprache
Moderne deutschsprachige Programmiersprache mit TypeScript-Style Fehlermeldungen und vollständiger Turing-Vollständigkeit. Deutsch. Direkt. Deklarativ.
Tech Stack
GerLang – Die deutsche Programmiersprache. Eine moderne deutschsprachige Programmiersprache mit TypeScript-Style Fehlermeldungen, professioneller Entwicklererfahrung und vollständiger Turing-Vollständigkeit. Deutsch. Direkt. Deklarativ. 🥨
🚀 Hello World in GerLang
// hello.gerl
GANZ haupt() {
DRUCKE("Hallo, Welt! 🌍");
WORT name = LESE("Wie heißt du? ");
// String-Interpolation verwenden
DRUCKE("Schön dich kennenzulernen, ${name}!");
// Math-Funktionen testen
GANZ zufallszahl = ZUFALLSBEREICH(1, 100);
DRUCKE("Deine Glückszahl heute: ${zufallszahl} ✨");
ZURÜCK 0;
}python gerlang.py run hello.gerl🚀 Highlights
Vollständig deutsche Syntax
WENN, SONST, KISTE, DRUCKE - Programmieren in deiner Muttersprache
TypeScript-Style Errors
Präzise Fehlermeldungen mit Positionen, Farben und hilfreichen Tipps
Modulsystem
Import/Export mit HOLE ... VON und GIBFREI für modulare Projekte
Fehlerbehandlung
Robuste Error-Handling mit VERSUCHE/FANGE (try/catch)
String-Interpolation
${variable} Templates für moderne String-Formatierung
Turing-vollständig
Rekursion und unbeschränkter Speicher für komplexe Programme
Mehrdimensionale Arrays
Arrays mit Methoden-System (ERWEITERN, LÄNGE, etc.)
Built-in Math
WURZEL, POTENZ, ZUFALLSBEREICH und mehr out-of-the-box
🎯 Sprachfeatures
🇩🇪 Variablen und Datentypen
GANZ alter = 25; // Ganzzahl (int)
KOMMA preis = 19.99; // Kommazahl (float)
WORT name = "Max Mustermann"; // String
JAIN aktiv = JA; // Boolean (JA/NEIN)
KISTE zahlen = [1, 2, 3, 4, 5]; // Array🔄 Kontrollstrukturen
WENN (alter >= 18) {
DRUCKE("Erwachsen");
} SONST {
DRUCKE("Minderjährig");
}
SOLANGE (aktiv) {
DRUCKE("Läuft...");
aktiv = NEIN;
}
FÜR (GANZ i = 0; i < 10; i = i + 1) {
DRUCKE("Zähler: ${i}");
}📦 Modulsystem
// math.gerl - Modul exportieren
GIBFREI GANZ addiere(a: GANZ, b: GANZ) {
ZURÜCK a + b;
}
// main.gerl - Modul importieren
HOLE addiere VON "math.gerl";
GANZ haupt() {
GANZ summe = addiere(5, 3);
DRUCKE("Summe: " + summe);
ZURÜCK 0;
}🛡️ TypeScript-Style Fehlermeldungen
GerLang bietet präzise, farbige Fehlermeldungen mit Call-Stack für perfektes Debugging:
Fehler GL006: Division durch Null
--> test.gerl:6:14
|
5 | GANZ b = 0;
6 | ZURÜCK a / b; // Division durch Null
| ^
7 | }
|
Division oder Modulo durch Null ist nicht erlaubt
= Tipp: Prüfe den Divisor vor der Operation
Call-Stack:
0: test_division() at test.gerl:15:32🔧 Moderne Features
String-Interpolation
WORT name = "Max";
GANZ alter = 25;
DRUCKE("Hallo ${name}, du bist ${alter}!");
DRUCKE("Nächstes Jahr: ${alter + 1}");Math-Funktionen
KOMMA radius = 5.0;
KOMMA flaeche = POTENZ(radius, 2) * 3.14;
DRUCKE("Fläche: ${RUNDEN(flaeche, 2)}");
GANZ wuerfel = ZUFALLSBEREICH(1, 6);Array-Methoden
KISTE liste = [1, 2, 3];
liste.ERWEITERN(4); // [1, 2, 3, 4]
GANZ anzahl = liste.LÄNGE;
DRUCKE("Elemente: ${anzahl}");Fehlerbehandlung
VERSUCHE() {
GANZ result = risiko_operation();
} FANGE fehler {
DRUCKE("Fehler: ${fehler}");
}🚀 Beispiele
Fibonacci-Zahlen (Rekursion)
GANZ fibonacci(n: GANZ) {
WENN (n <= 1) {
ZURÜCK n;
}
ZURÜCK fibonacci(n - 1) + fibonacci(n - 2);
}
GANZ haupt() {
FÜR (GANZ i = 0; i < 10; i = i + 1) {
DRUCKE("Fibonacci(" + i + ") = " + fibonacci(i));
}
ZURÜCK 0;
}Interaktives Zahlenraten
GANZ haupt() {
GANZ geheimzahl = 42;
WORT eingabe;
DRUCKE("=== Zahlenraten ===");
DRUCKE("Ich denke an eine Zahl zwischen 1 und 100!");
SOLANGE (eingabe != "42") {
eingabe = LESE("Dein Tipp: ");
WENN (eingabe == "42") {
DRUCKE("🎉 Richtig geraten!");
} SONST {
DRUCKE("Leider falsch, versuch es nochmal!");
}
}
ZURÜCK 0;
}🔧 CLI-Kommandos
python gerlang.py run <datei.gerl>GerLang-Programme ausführen
python gerlang.py tokens <datei.gerl>Token-Analyse anzeigen
python gerlang.py ast <datei.gerl>AST-Struktur anzeigen
python gerlang.py replInteraktive Shell (in Entwicklung)
./bin/gerlc.exe run <datei.gerl>Vorkompilierte EXE-Version (Windows)
🎉 Status & Roadmap
✅ Vollständig implementiert (v4.1.0)
- ✓Deutsche Syntax und Keywords
- ✓TypeScript-Style Fehlermeldungen
- ✓Modulsystem (Import/Export)
- ✓Fehlerbehandlung (Try/Catch)
- ✓Mehrdimensionale Arrays
- ✓Interaktive Ein-/Ausgabe
- ✓Call-Stack und Debugging
- ✓String-Interpolation
🔄 In Entwicklung
- ○REPL (Interactive Shell)
- ○Maps/Dictionaries (KARTE)
- ○String-Methoden (AUFTEILEN, ERSETZEN)
- ○Strukturen/Objekte (ORDNUNG/DING)
- ○Array-Methoden (SORTIEREN, FILTERN)
🌟 Zukunft
📚 Dokumentation
Schnellstart
SPRACHE.md
Beispiele
BEISPIELE.md
FAQ
Häufige Fragen
Operatoren
Arithmetik & Logik
Syntax
Best Practices
Error-Handling
Try-Catch System
Ein-/Ausgabe
DRUCKE & LESE
Arrays
Mehrdimensional
Funktionen
Rekursion & mehr
🔧 Technologie
"Deutsch. Direkt. Deklarativ. – GerLang, die Programmiersprache, die sogar deine Oma versteht! 🥨🚀"