kol, eine Programmiersprache zum Schreiben auf Koreanisch
(github.com/smc0478)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 wiewhileund führt다음 ... 문단을 반복한다.aus....에 있는 각 항목들을 ...로 가져와entsprichtfor ... 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
structin 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
classzwar 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
Ich finde das wirklich großartig! Ich unterstütze euch.
Danke.
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)
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
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!
Danke. Es stimmt, auf Koreanisch lassen sich manche Stellen anscheinend besser lesen als auf Englisch.
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.
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
Interessant.
Danke.
Interessant. Ich hatte gerade eine gute Idee dazu, das sollte ich als Side-Project ausprobieren.
Gut. Ich bin gespannt.
Oh, oh … ich drücke die Daumen.
Danke.
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.Oh, das ist ein solcher Vorteil. Danke.
Das ist großartig...
Danke.
Das ist wohl eine Frage der persönlichen Präferenz, aber ich denke, „ist“ wäre besser gewesen als „funktioniert“.
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.Stimmt, der Funktionsaufruf sollte wohl „~nda“ sein, haha
Hat mir gut gefallen.
Danke.
Das erinnert mich lebhaft daran, dass wir im Compiler-Unterricht an der Universität etwas Ähnliches gemacht haben.
Ich habe es noch nicht gelernt, aber ich freue mich darauf.
Oh, wenn man die Dateinamen
lexerundparsersieht, wirkt es so, als hätten Sie sich mit Compilerbau beschäftigt – oder nicht?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.
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.
Danke.