19 Punkte von smc0478 2025-11-19 | 29 Kommentare | Auf WhatsApp teilen

Hallo.
Ich habe eine Programmiersprache entwickelt, die man auf Koreanisch schreibt.

Warum ich sie entwickelt habe

  • Als ich Programmiersprachen gesehen habe, die mit Hangul geschrieben werden, wie Eolraeng oder Aheui, wollte ich ausprobieren, auf natürliche Weise auf Koreanisch zu programmieren.
  • Es ist auch ein Lernprojekt, um später eine richtige Sprache zu entwickeln.

Installation

pip install korean-lang  

Arten der Syntax

Ich habe die unten vorgestellten Syntaxformen erstellt.
Ausführlichere Informationen findet ihr über meinen GitHub-Link.

Ausgabe

"안녕 세상!"을 출력한다.  

Variablen

  • Variablennamen bestehen aus Hangul (einzelne Zeichen wie giyeok sind nicht erlaubt), _ und Zahlen.
  • Variablen können Ganzzahlen, Zeichenketten, Arrays, Dictionaries und mehr enthalten.
정수는 1이 된다.  
소수는 3.141592가 된다.  
이름은 "홍길동"이 된다.  
참값은 참이 된다.  
빈값은 없음이 된다.  
숫자_배열은 [1 다음 2 다음 3 다음 4]이 된다.  
사람_정보는 {"이름"은 "김철수" 또 "나이"는 25}이 된다.  

Bedingungen

  • 만약 ... 이면/면, 아니고 만약 ... 이면/면 und 아니면 ... 이면/면 funktionieren ähnlich wie if, else if und else und führen 다음 ... 문단을 실행한다. aus.
나이는 입력한 것을 정수로_변환한 것이 된다.  
  
만약 나이가 18보다 크거나 같다면 다음  
    "성인입니다."를 출력한다.  
문단을 실행한다.  
아니고 만약 나이가 13보다 크다 또는 나이가 13랑 같다면 다음  
    "청소년입니다."를 출력한다.  
문단을 실행한다.  
아니면 다음  
    "어린이입니다."를 출력한다.  
문단을 실행한다  

Schleifen

  • 계속 ... 인 동안 ist ähnlich wie while und führt 다음 ... 문단을 반복한다. aus.
  • ...에 있는 각 항목들을 ...로 가져와 entspricht for ... in ... und führt 다음 ... 문단을 반복한다. aus.
숫자는 0이 된다.  
계속 숫자가 5보다 작다인 동안 다음  
    숫자를 출력한다.  
    숫자는 숫자와 1을 더한 것이 된다.  
문단을 반복한다.  
  
배열은 [10 다음 20 다음 30]이 된다.  
배열에 있는 각 항목들을 숫자로 가져와 다음  
    숫자를 출력한다.  
문단을 반복한다.  

Funktionen

  • 함수 ...는 (...과 ...로) ist der Teil zur Definition einer Funktion, und 다음 ... 문단을 실행한다. ist der Ausführungsteil der Funktion.
  • Funktionen werden wie ...과/와 ...을/를 ... 로/으로 ...한다./다. aufgerufen.
함수 팩토리얼을_구한다는 가로 다음  
    만약 가가 0이랑 같다면 다음  
        결과 값은 1이 된다. 그리고 끝난다.  
    문단을 실행한다.  
    결과 값은 가와 ((가를 1로 뺀 것)으로 팩토리얼을_구한 것)을 곱한 것이 된다.   
    그리고 끝난다.  
문단을 실행한다.  
  
4로 팩토리얼을_구한 것을 출력한다.   

Strukturen

  • Strukturen sind ähnlich wie struct in C.
구조 사람은 다음  
    변수 이름이 있다.  
    변수 나이가 있다.  
값을 가진다.  
  
철수는 사람이 된다.  
철수의 이름은 "철수다"가 된다.  
철수의 이름을 출력한다.   

Klassen

  • 유형 ist die Entsprechung zu Klassen in anderen Sprachen.
유형 동물은 다음  
    변수 이름이 있다.  
    
    함수 소리를_낸다는 다음  
        동물의 이름과 "이(가) 소리를 냅니다."를 더한 것을 출력한다.  
    문단을 실행한다.  
값을 가진다.  
  
강아지는 동물이 된다.  
강아지의 이름은 "바둑이"가 된다.  
강아지 안에서 소리를_낸다.   

Was noch nicht ideal ist

  • Es ist schade, dass es unnatürliche und etwas holprige Syntax gibt, die sich auf Koreanisch nicht ganz natürlich anfühlt, etwa bei Arrays.
  • Ich habe class zwar mit 유형 übersetzt, aber ich glaube, dass es dafür vielleicht ein besseres Wort gibt. Wenn ich später eines finde, möchte ich es ändern.

Abschluss

Es ist weder besonders nützlich, noch ist der interne Code schön, weil ich ihn in weniger als zwei Wochen schnell zusammengeschrieben habe, aber ich hoffe, es ist trotzdem interessant anzusehen.
Vielen Dank fürs Lesen.

29 Kommentare

 
qlghwp123 2025-11-26

Ich finde das wirklich großartig! Ich unterstütze euch.

 
smc0478 2025-11-26

Danke.

 
rkttu 2025-11-26

Es gab auf Community-Ebene immer wieder Versuche, Koreanisch als Programmiersprache zu etablieren, und das fiel mir gerade wieder ein, deshalb lasse ich den Link hier. Haha.

https://namu.wiki/w/%EC%B0%BD%EC%A1%B0(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%20%EC%96%B8%EC%96%B4)

 
smc0478 2025-11-26

Als ich selbst etwas gebaut und recherchiert habe, habe ich gesehen, dass es viele interessante Versuche gibt.
Einer der beeindruckendsten ist der Link unten; spannend fand ich, dass sogar Zahlen auf Koreanisch ausgedrückt werden.
https://github.com/recu3125/malC_lang

 
oktroco 2025-11-26

Ich denke, das wäre auch gut für Bildungszwecke geeignet, für Menschen, die mit Englisch und Mathematik nicht vertraut sind.
Dass sich rechnerisches Denken ohne Symbole wie „if, for, while, =“ gut auf Koreanisch erklären lässt, scheint mir pädagogisch ein enormer Vorteil zu sein.
Ich finde, das ist eine wirklich großartige Idee!

 
smc0478 2025-11-26

Danke. Es stimmt, auf Koreanisch lassen sich manche Stellen anscheinend besser lesen als auf Englisch.

 
cronex 2025-11-26

Für Arrays hätte man wohl nicht unbedingt den Trenner 다음 verwenden müssen, ein Komma hätte vermutlich auch gereicht.
Außerdem würde mich interessieren, ob Arrays eine Struktur sind, die auch Strukturen/Klassen, Arrays oder Dictionaries enthalten kann.

 
smc0478 2025-11-26

Damals war das Ziel, wirklich nur Hangul zu verwenden und englische Wörter sowie Satzzeichen so weit wie möglich auszuschließen, deshalb habe ich sie nicht benutzt. Aber ein Komma einzufügen wirkt auf jeden Fall natürlicher. Ich werde versuchen, das später noch hinzuzufügen.

Außerdem habe ich Arrays als eine Struktur entworfen, die Daten aller Typen enthalten kann. Wenn das nicht funktioniert, ist es ein Bug. T_T

 
t7vonn 2025-11-26

Interessant.

 
smc0478 2025-11-26

Danke.

 
tesla52 2025-11-26

Interessant. Ich hatte gerade eine gute Idee dazu, das sollte ich als Side-Project ausprobieren.

 
smc0478 2025-11-26

Gut. Ich bin gespannt.

 
softer 2025-11-23

Oh, oh … ich drücke die Daumen.

 
smc0478 2025-11-26

Danke.

 
kornet 2025-11-22

Es ist gut, dass Sonderzeichen wie +-=$& im Vergleich zu anderen Sprachen seltener verwendet werden. Auf den Tastaturen kleiner mobiler Geräte ist die Eingabe von Sonderzeichen nämlich umständlich.

 
smc0478 2025-11-26

Oh, das ist ein solcher Vorteil. Danke.

 
nottiger 2025-11-19

Das ist großartig...

 
smc0478 2025-11-20

Danke.

 
roxie 2025-11-19

Das ist wohl eine Frage der persönlichen Präferenz, aber ich denke, „ist“ wäre besser gewesen als „funktioniert“.

 
smc0478 2025-11-19

Ursprünglich war die Variablenzuweisung am Anfang ganeun ~ ida.. Beim Entwickeln wurde jedoch "ida/da" auch für Funktionsaufrufe verwendet, wodurch das Parsen von Ausdrücken mehrdeutig wurde, daher habe ich es in "doenda" geändert. Später werde ich wahrscheinlich versuchen, es so zu machen, dass auch mit "ida" geparst werden kann.

 
roxie 2025-11-19

Stimmt, der Funktionsaufruf sollte wohl „~nda“ sein, haha

 
girr311 2025-11-19

Hat mir gut gefallen.

 
smc0478 2025-11-19

Danke.

 
ifmkl 2025-11-19

Das erinnert mich lebhaft daran, dass wir im Compiler-Unterricht an der Universität etwas Ähnliches gemacht haben.

 
smc0478 2025-11-19

Ich habe es noch nicht gelernt, aber ich freue mich darauf.

 
beoks 2025-11-19

Oh, wenn man die Dateinamen lexer und parser sieht, wirkt es so, als hätten Sie sich mit Compilerbau beschäftigt – oder nicht?

 
smc0478 2025-11-19

Ah, ich bin noch im 3. Studienjahr und habe daher noch keinen Compiler-Kurs belegt; ich habe mir das selbst beigebracht und es auch schnell fertigstellen wollen, deshalb habe ich es eher improvisiert gelernt und entwickelt.

 
futurist 2025-11-19

Ein toller Versuch!! Macht Spaß haha
Man hat den Eindruck, dass ihr euch viele Gedanken darüber gemacht habt, wie man es natürlich ausdrücken kann.

 
smc0478 2025-11-19

Danke.