10 Punkte von GN⁺ 2026-03-16 | 12 Kommentare | Auf WhatsApp teilen
  • Eine statisch typisierte kompilierte Sprache, die mit koreanischen Schlüsselwörtern geschrieben wird und über LLVM IR native Binärdateien erzeugt
  • Bietet sowohl einen in Rust implementierten Compiler als auch einen Interpreter und unterstützt mit der hgl-CLI Build-, Ausführungs-, REPL- und LSP-Funktionen
  • Alle Schlüsselwörter sind auf Koreanisch, etwa 함수, 만약, 반복, 변수; auch Variablen- und Funktionsnamen können auf Koreanisch definiert werden
  • Enthält praktische Funktionen wie Datei-I/O, JSON, HTTP, reguläre Ausdrücke, Datum/Uhrzeit und Systemaufrufe sowie 18 Beispiele
  • Setzt die wissenschaftliche Struktur und kulturelle Verbreitung von Hangeul als Programmiersprache um und gilt als neuer Ansatz, Koreanischlernen und Programmieren zu verbinden

Überblick über die Sprache Han

  • Han ist eine statisch typisierte kompilierte Sprache mit koreanischen Schlüsselwörtern, die über LLVM IR native Binärdateien erzeugt
    • Enthält eine in Rust geschriebene Compiler-Toolchain und einen Tree-Walking-Interpreter
    • Mit dem Befehl hgl lassen sich der Interpreter starten, Builds ausführen, eine REPL nutzen und ein LSP-Server betreiben
  • Alle Schlüsselwörter bestehen aus Hangeul, z. B. 함수, 만약, 반복, 변수, 출력
  • Ziel ist es, durch die Umsetzung des wissenschaftlichen Schriftsystems von Hangeul in einer Programmiersprache sprachliche Schönheit mit technischer Präzision zu verbinden

Hauptfunktionen

  • Unterstützung für koreanische Schlüsselwörter und Bezeichner: Variablennamen, Funktionsnamen, Struct-Namen usw. können auf Koreanisch geschrieben werden
  • Statisches Typsystem: bietet fünf Grundtypen: 정수, 실수, 문자열, , 없음
  • Compiler- und Interpreter-Modus: LLVM IR → clang → Binärerzeugung oder direkte Ausführung
  • REPL und LSP-Server: Interaktive Ausführung und Code-Vervollständigung mit hgl repl und hgl lsp
  • Integrierte Funktionen
    • Arrays, Structs, Closures, Pattern Matching, Ausnahmebehandlung, Generics
    • Datei-I/O, JSON, HTTP, reguläre Ausdrücke, Datum/Uhrzeit, Systemaufrufe
    • Format-Strings, Hashmaps, eingebaute mathematische Funktionen
  • Enthält 18 Beispielprogramme: Hello World, HTTP-API-Aufrufe usw.

Installation und Ausführung

  • Voraussetzungen: Rust (1.70+), clang
  • Installationsschritte
  • Eine VS Code-Erweiterung ist verfügbar: Syntax-Highlighting und LSP-Unterstützung
  • CLI-Befehle
    • hgl interpret <file.hgl> — Interpreter ausführen
    • hgl build <file.hgl> — native Binärdatei kompilieren
    • hgl run <file.hgl> — nach dem Kompilieren direkt ausführen
    • hgl repl — interaktiver Modus
    • hgl lsp — LSP-Server starten

Aktueller Implementierungsstand

  • Vollständig funktionierende Features
    • Datentypen, Kontrollfluss, Funktionen, Strings, Arrays, Hashmaps, Structs, Fehlerbehandlung, Typprüfung
    • JSON, HTTP, reguläre Ausdrücke, Datum/Uhrzeit, System, Datei-I/O, mathematische Funktionen, Module, Generics
  • Teilweise implementierte Features
    • Bei hgl build ist die Codegenerierung für Closures sowie String- und Array-Methoden noch unvollständig
  • Nicht implementierte Features
    • Null-Sicherheit (kein Option-Typ), asynchrone/parallele Verarbeitung, Garbage Collection, Tail-Recursion-Optimierung

Hangeul und Programmierung

  • Hangeul ist ein wissenschaftliches Schriftsystem, das phonologische Strukturen visuell darstellt, geschaffen 1443 von König Sejong
  • Han spiegelt diese strukturelle Klarheit von Hangeul in der Codesyntax wider
  • Weltweit lernen mehr als 16 Millionen Menschen Koreanisch; Han bietet ein Mittel, Hangeul über das Programmieren zu lernen
  • Beispiel-Schlüsselwörter
    • 함수 (function), 만약 (if), 반복 (for), 반환 (return), 변수 (variable), 출력 (print) usw.

Design und Struktur

  • Compiler-Pipeline auf Rust-Basis
    • Lexer → Parser → AST → Interpreter / CodeGen → LLVM IR → clang → Binary
  • Projektstruktur
    • src/ — Kerncode für Compiler und Interpreter
    • editors/vscode/ — VS Code-Erweiterung
    • Enthält außerdem examples/, spec/, tests/
  • Gründe für die Designentscheidungen
    • Vereinfachter Build durch textbasierte IR-Erzeugung statt der LLVM-C-API
    • Der Interpreter ist auf schnelle Ausführung ausgelegt, der Compiler auf Performance
    • Rusts Pattern Matching und Speichersicherheit eignen sich gut für die Sprachimplementierung

Tests und Lizenz

  • Mit cargo test werden 46 Tests ausgeführt (41 Unit-Tests, 5 Integrationstests)
  • Veröffentlicht unter der MIT-Lizenz

Kulturelle Bedeutung

  • Han ist eine experimentelle Sprache, die die Schönheit von Hangeul und die Präzision des Programmierens verbindet
  • Sie bietet Koreanischlernenden und Entwicklern gleichermaßen einen neuen Ansatz, die Grenzen zwischen Sprache und Code aufzubrechen

12 Kommentare

 
runableapp 2026-03-17

Dank dessen habe ich nützliche Informationen erhalten. GeekNews, das die wichtigsten Neuigkeiten für uns auswählt, ist für mich eine tägliche Freude beim Vorbeischauen. Auch ich entwickle derzeit eine koreanischsprachige Programmiersprache und sehe es daher sehr positiv, dass solche Versuche weitergeführt werden.

Als jemand, der lange im Ausland gelebt und die Veränderungen in Korea beobachtet hat, fand ich es immer bedauerlich, wie übermäßig Englisch in den Alltag und in die gesamte Industrie eingedrungen ist. Der Pangyo-Jargon, schwer verständliche Apartment-Namen, missgestaltete Menüs wie MSGR und mit Englisch übersäte Schilder wirken auf mich, als würden sie die Eigenständigkeit unserer Sprache schwächen. Selbst wenn die Hürde durch frühen Englischunterricht gesunken ist, bleibt die Intuitivität der Muttersprache unersetzlich. So wie einem im Ausland ein Schild auf Koreanisch sofort ins Auge springt, verbraucht unser Gehirn beim Verarbeiten der Muttersprache am wenigsten Energie.

print("Hello, world!");

Ausgabe "Hallo!"

Was wirkt auf euch eingängiger?

KI reißt zwar Sprachbarrieren ein, doch die Erforschung koreanischsprachiger Programmiersprachen ist eine Arbeit daran, in unserem Denksystem eine unnötige "Übersetzungsschicht" zu entfernen und so die Effizienz des Gehirns zu maximieren. Dass Ausgabe intuitiver wirkt als print, ist nur natürlich. Wegen der Logik von Allgemeinverwendbarkeit und Arbeitsmarkt dürfte es zwar schwer sein, kurzfristig zum Mainstream zu werden, aber ich hoffe, dass in Zukunft ausgereiftere und vielfältigere koreanische Sprachen das Ökosystem bereichern werden.

 
mhcoma 2026-03-16

Auf Koreanisch also ... ich kann nicht aufhören, „Bammanghijil“ zu sagen.

 
coremaker 2026-03-16

Das erinnert mich an das Seed-Projekt.

 
crawler 2026-03-17

Es scheint, als wäre die Person lange eher im Rechnungswesen als in der Entwicklung tätig gewesen, und trotzdem hat sie einen Compiler gebaut und auf GitHub über 100 Stars bekommen.. Wirklich, das Zeitalter der KI ist gekommen.

 
savvykang 2026-03-17

Wenn man daran denkt, statt async-await mit asynchronem Warten zu programmieren, ist das schon ganz angenehm.

 
github88 2026-03-16

Bei einer Programmiersprache ist doch gerade die Vielseitigkeit wichtig..

 
m00nlygreat 2026-03-16

Es ist lustig, dass die Reaktionen auf Hacker News so wohlwollend sind, haha.

 
nottiger 2026-03-16

Wow, wie cool.

 
bichi 2026-03-16

Hallo, kraftvoller und starker Morgen!

 
sea715 2026-03-16

Wow

 
xguru 2026-03-16

Wow, so etwas auf Hacker News zu sehen, ist auch schön. Danke, König Sejong.

 
GN⁺ 2026-03-16
Hacker-News-Kommentare
  • Wenn du dich für koreanische Programmiersprachen interessierst, empfehle ich die funktionale Sprache „Nuri“
    Nuri GitHub-Link
    Sie beschränkt sich nicht nur darauf, Schlüsselwörter zu übersetzen, sondern kann tatsächlich koreanische Grammatikstrukturen im Code abbilden
    Wenn man zum Beispiel „10 objektmarkierer 5 durch teilen und ausgeben“ schreibt, wird als Ergebnis „2“ ausgegeben
    Es gibt auch noch eine andere Sprache namens „Yaksok“. Der Beispielcode für das Spiel 2048 ist komplett auf Koreanisch geschrieben

    • Danke für das Feedback. Ich halte sowohl „Nuri“ als auch „Yaksok“ für vernünftige und gut entworfene Sprachen, aber ich konzentriere mich zunächst darauf, dass englischsprachige Nutzer eine nach Rust übersetzte Version nutzen können. Das scheint mir eine größere Nutzerbasis schaffen zu können
    • Ich kenne fast keine koreanischen Wörter, aber ich frage mich, ob „Yaksok“ vielleicht etymologisch mit dem japanischen 約束(やくそく) verwandt ist
  • Ich finde das eine wirklich tolle Idee. Hangul ist ein logisch entworfenes Schriftsystem, das man an einem halben Nachmittag lernen kann
    StackExchange-Antwort zum Lernen von Hangul

    • Diese Eselsbrücken (mnemonics) sind wirklich nützlich. Ich werde sie auch in den Koreanisch-Lernleitfaden aufnehmen, den ich gerade nutze (tolearnkorean.com)
      Hangul lässt sich schnell lernen, weil die Anzahl der Buchstaben ähnlich wie im Englischen ist, aber das Auswendiglernen von Wörtern ist etwas schwieriger. Deshalb nutze ich Anki zusammen mit einer spielerischen Lern-App, die ich selbst entwickelt habe
    • Das ist tiefes Wissen, das selbst viele Koreaner nicht kennen. Ich werde diese Seite als Referenzmaterial auf GitHub hinzufügen. Es freut mich, solche Unterstützer zu haben
    • Ich habe den Link sofort im README im Abschnitt „Beauty of Hangul“ ergänzt
  • Als koreanischer Muttersprachler möchte ich kurz meine Meinung teilen
    Substantive lassen sich natürlich übersetzen, aber bei englischen Verben im Imperativ muss man bei der Übertragung ins Koreanische vorsichtig sein. Zum Beispiel kann „find“ zu „chatda“, „chatgi“ oder „chateum“ werden, aber je nach Kontext kann das unnatürlich wirken
    Ein weiteres Problem ist der Plural. Im Englischen wird klar zwischen Singular und Plural unterschieden, im Koreanischen dagegen nicht. Wenn man den Plural wie in „Wörter-pluralmarker“ ausdrücklich markiert, wirkt das oft eher unnatürlich
    Wenn man nicht nur Schlüsselwörter einfach ersetzt, sondern die strukturellen Unterschiede zwischen Englisch und Koreanisch berücksichtigt, könnte das ein viel leistungsfähigeres Projekt werden

  • Als ich im Studium Informatik gelernt habe, hatte ich das Gefühl, dass die englische Basis von Programmiersprachen für Englischsprachige ein großer Vorteil ist
    Freunde unter den internationalen Studierenden hatten es schwerer zu lernen, weil ihnen Englisch nicht vertraut war. Deshalb war der Witz, Programmieren solle als Fremdsprachenkurs angerechnet werden, ziemlich treffend

    • Ich sehe das eher umgekehrt. Auch als ich kaum Englisch konnte, habe ich mir Programmieren selbst beigebracht. Am Ende gibt es nur wenige Schlüsselwörter, und es war überhaupt kein Problem, nicht zu wissen, dass „int“ die Abkürzung für integer ist
      Wirklich schwierig ist es, das Programmieren selbst zu lernen. Dass fortgeschrittene Themen oder Dokumentation nur auf Englisch verfügbar sind, ist allerdings eine große Hürde für ESL-Lernende
    • Auch in Indien war Englisch ein großer Grund für das Wachstum der IT-Branche. Freunde, die in regionalen Sprachen unterrichtet wurden, mussten an der Universität doppelt so viel Aufwand treiben, um englischsprachigen Lehrbüchern folgen zu können. Es ist bedauerlich, dass eine Sprachbarriere zur Verschwendung von Talenten führt
    • Auch meine nicht englischsprachigen Freunde sagen, dass Schlüsselwörter nicht einmal 1 % der Schwierigkeit des Programmierens ausmachen. Variablen- oder Klassennamen kann man ohnehin schon in Unicode schreiben, daher gibt es kaum Grund, sie zu übersetzen
    • Dass Englisch zum globalen Standard geworden ist, ist vernünftig. In vielen Projekten ist die Verwendung von Englisch ganz natürlich
    • Das eigentliche Problem sind nicht die Schlüsselwörter, sondern dass Lehrmaterialien, wissenschaftliche Arbeiten und Dokumentation vollständig auf Englisch sind. Ein paar Schlüsselwörter auswendig zu lernen dauert kaum 30 Minuten
  • Ich kann kein Koreanisch, aber dank dieses Threads habe ich viele linguistische Einsichten gewonnen
    Besonders interessant fand ich das phonologische Design von Hangul (Link),
    die Besonderheiten des koreanischen Plurals (Link),
    das Problem der Token-Kompression bei LLM-Tokenizern und Koreanisch (Link)
    sowie den Rhythmus der Hangul-Tastatur, bei der Konsonanten und Vokale nach der Handaufteilung getrennt sind (Link)

  • Ich denke, solche Versuche könnten zu sprachlicher Fragmentierung führen.
    Wenn jeder Programmiersprachen in seiner eigenen Sprache entwickelt, werden Zusammenarbeit und Einstellung schwieriger, und auch der Wissensaustausch leidet
    Persönlich denke ich, dass es weniger Kriege und Missverständnisse gäbe, wenn die ganze Welt eine einzige Sprache verwenden würde. Natürlich würde kulturelle Vielfalt verloren gehen, aber die Effizienz der Kommunikation würde steigen

    • Schöpfung und Experiment sind niemals töricht. Der Autor hat die Sprache als künstlerischen Versuch geschaffen, und sie aus politischer oder geschäftlicher Perspektive zu kritisieren, verfehlt den Kern
    • Bedeutet das dann, dass du eine neue Programmiersprache auf Esperanto entwickeln willst?
  • Der Ansatz, einfach nur Schlüsselwörter zu übersetzen, ist interessant
    Wie im Beispielcode

    Peonkeu Tuseom(araei: moknok[jeongsu], tageuteu: jeongsu) -> moknok[jeongsu]:
    dongan sijak < kkeut:
    

    So geschrieben könnte der Code kompakter werden. Allerdings geht der Vorteil der Groß-/Kleinschreibung verloren
    Ich habe gehört, dass die Geschwindigkeit der Informationsverarbeitung unabhängig von der Sprachdichte ähnlich ist

    • Anfang der 2000er gab es einen Versuch, Python ins Chinesische zu übersetzen
      Zugehöriger Blogbeitrag
      Erfolgreich war das aber nicht. Die meisten Computerumgebungen setzen ohnehin lateinische Zeicheneingabe voraus, und sich ein paar Schlüsselwörter zu merken ist nicht schwer
    • Guter Punkt. „Han“ verwendet echte koreanische Wörter (hamsu, manyak usw.), aber wenn wie im Beispiel Transliterationen wie „Peonkeu“ oder „araei“ verwendet werden, wirkt das für koreanische Nutzer unnatürlich
    • Scratch basiert auf JSON und lässt sich daher leicht in mehrere Sprachen umschalten. Die meisten Programmierer behalten englische Schlüsselwörter aber bei, weil Dokumentation, Bibliotheken und die Umgebung für Zusammenarbeit alle englischzentriert sind
      Selbst im Zeitalter der LLMs dürfte englischer Code weiterhin effizienter sein, weil der Großteil der Trainingsdaten englischer Code ist
    • Im Japanischen ist das Umschalten des Eingabemodus umständlich und fürs Programmieren daher ineffizient. Bei Hangul könnte es ein ähnliches Problem geben
    • Das Beispiel ist unterhaltsam
  • Tolles Projekt. Ich habe vor etwa 190 Jahren (!) an einer koreanischen Universität studiert und kann heute nur noch grundlegendes Koreanisch, aber beim Blick auf den Beispielcode fühlt es sich an, als würde ich neue Wörter lernen

  • Dieses Projekt gefällt mir wirklich sehr. Wenn ich mir die Codebeispiele anschaue und nichts verstehe, kann ich trotzdem nachempfinden, wie sich nicht englischsprachige Entwickler gefühlt haben müssen, als sie zum ersten Mal eine englischbasierte Sprache gesehen haben
    Lisp bleibt allerdings weiterhin ein Paradies voller Klammern :-)

    • Die echte Hürde sind nicht die Schlüsselwörter, sondern dass die meiste Dokumentation und Diskussion nur auf Englisch verfügbar ist
    • Über Jahrzehnte hinweg war die Verwendung von Englisch vernünftig. Danke für den Kommentar
  • Das erinnert mich an Chinas Easy Programming Language
    EPL-Wiki-Link
    Vor etwa 15 Jahren haben viele Kinder in China mit dieser Sprache ihre ersten Programmiererfahrungen gemacht