kol, un langage de programmation écrit en coréen
(github.com/smc0478)Bonjour.
J’ai créé un langage de programmation qui s’écrit en coréen.
Pourquoi l’avoir créé
- En voyant des langages de programmation écrits en hangeul comme Umjeng ou Aheui, j’ai eu envie d’essayer de coder naturellement en coréen.
- C’est aussi un apprentissage en vue de créer plus tard un vrai langage bien abouti.
Installation
pip install korean-lang
Types de syntaxe
J’ai créé les syntaxes présentées ci-dessous.
Pour plus de détails, veuillez consulter le lien vers mon GitHub.
Affichage
"안녕 세상!"을 출력한다.
Variables
- Les noms de variables sont composés de lettres coréennes (pas des caractères isolés comme giyeok), de
_et de chiffres. - Les variables peuvent contenir des entiers, des chaînes, des tableaux, des dictionnaires, etc.
정수는 1이 된다.
소수는 3.141592가 된다.
이름은 "홍길동"이 된다.
참값은 참이 된다.
빈값은 없음이 된다.
숫자_배열은 [1 다음 2 다음 3 다음 4]이 된다.
사람_정보는 {"이름"은 "김철수" 또 "나이"는 25}이 된다.
Conditions
만약 ... 이면/면,아니고 만약 ... 이면/면,아니면 ... 이면/면fonctionnent de manière similaire à if, else if et else, et exécutent다음 ... 문단을 실행한다..
나이는 입력한 것을 정수로_변환한 것이 된다.
만약 나이가 18보다 크거나 같다면 다음
"성인입니다."를 출력한다.
문단을 실행한다.
아니고 만약 나이가 13보다 크다 또는 나이가 13랑 같다면 다음
"청소년입니다."를 출력한다.
문단을 실행한다.
아니면 다음
"어린이입니다."를 출력한다.
문단을 실행한다
Boucles
계속 ... 인 동안est similaire àwhileet exécute다음 ... 문단을 반복한다.....에 있는 각 항목들을 ...로 가져와correspond àfor ... in ...et exécute다음 ... 문단을 반복한다..
숫자는 0이 된다.
계속 숫자가 5보다 작다인 동안 다음
숫자를 출력한다.
숫자는 숫자와 1을 더한 것이 된다.
문단을 반복한다.
배열은 [10 다음 20 다음 30]이 된다.
배열에 있는 각 항목들을 숫자로 가져와 다음
숫자를 출력한다.
문단을 반복한다.
Fonctions
함수 ...는 (...과 ...로)est la partie qui définit une fonction, et다음 ... 문단을 실행한다.est la partie exécutée par la fonction.- Une fonction s’appelle sous la forme
...과/와 ...을/를 ... 로/으로 ...한다./다..
함수 팩토리얼을_구한다는 가로 다음
만약 가가 0이랑 같다면 다음
결과 값은 1이 된다. 그리고 끝난다.
문단을 실행한다.
결과 값은 가와 ((가를 1로 뺀 것)으로 팩토리얼을_구한 것)을 곱한 것이 된다.
그리고 끝난다.
문단을 실행한다.
4로 팩토리얼을_구한 것을 출력한다.
Structures
- Les structures sont similaires aux
structdu langage C.
구조 사람은 다음
변수 이름이 있다.
변수 나이가 있다.
값을 가진다.
철수는 사람이 된다.
철수의 이름은 "철수다"가 된다.
철수의 이름을 출력한다.
Classes
유형correspond aux classes dans les autres langages.
유형 동물은 다음
변수 이름이 있다.
함수 소리를_낸다는 다음
동물의 이름과 "이(가) 소리를 냅니다."를 더한 것을 출력한다.
문단을 실행한다.
값을 가진다.
강아지는 동물이 된다.
강아지의 이름은 "바둑이"가 된다.
강아지 안에서 소리를_낸다.
Points regrettables
- Je trouve dommage qu’il y ait des syntaxes un peu maladroites et peu naturelles en coréen, comme pour les tableaux.
- J’ai traduit class par
유형en coréen, mais je pense qu’il existe peut-être un meilleur mot, donc je le changerai si j’en trouve un plus tard.
Mot de la fin
Ce n’est pas vraiment utile, et le code interne est assez sale parce que je l’ai écrit rapidement en moins de deux semaines, mais j’espère que vous trouverez ça amusant.
Merci de l’avoir regardé.
29 commentaires
Je trouve ça vraiment génial ! Je vous soutiens.
Merci.
Les tentatives d’adopter le coréen comme langage de programmation se sont poursuivies au niveau de la communauté, alors j’y ai pensé et je vous mets le lien. 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)
En en créant un, je me suis rendu compte qu’il y avait beaucoup de tentatives amusantes. Parmi celles qui m’ont le plus marqué, il y a le lien ci-dessous ; j’ai trouvé amusant que même les nombres soient exprimés en hangeul. https://github.com/recu3125/malC_lang
Cela semble aussi très adapté à un usage éducatif pour les personnes peu familières avec l’anglais et les mathématiques.
Pouvoir bien expliquer la pensée computationnelle en coréen, sans symboles comme
if, for, while, =, me paraît être un énorme avantage pédagogique.Je trouve que c’est une excellente idée !
Merci. C’est vrai qu’en coréen, certains passages semblent aussi plus faciles à lire qu’en anglais.
Il me semble qu’on aurait très bien pu utiliser des virgules pour les tableaux, sans forcément employer le délimiteur
다음. Et je me demande aussi si les tableaux peuvent contenir des structures/classes, d’autres tableaux ou encore des dictionnaires.À l’époque, l’objectif était vraiment d’utiliser uniquement le hangul et d’exclure autant que possible l’anglais et la ponctuation, donc je ne les ai pas utilisés, mais je pense effectivement qu’ajouter des virgules serait plus naturel. J’essaierai de les ajouter plus tard.
Et les tableaux ont été conçus comme une structure pouvant contenir des données de tous types. Si ce n’est pas le cas, c’est un bug. T_T
C'est sympa.
Merci.
C’est intéressant. J’ai eu une bonne inspiration, il faut que j’en fasse un side project.
Très bien. J’attends cela avec intérêt.
Oh oh... je vous soutiens.
Merci.
C’est bien d’utiliser moins de caractères spéciaux comme
+-=$&que dans d’autres langages. Sur le clavier de petits appareils mobiles, saisir des caractères spéciaux est difficile.Oh, c’est un avantage intéressant. Merci.
C’est vraiment super...
Merci.
C’est peut-être une question de préférence personnelle, mais je pense que « est » aurait été préférable à « fonctionne ».
À l’origine, l’affectation de variables s’écrivait
ganeun ~ida.. Mais pendant le développement, comme on utilisait aussi "ida/da" pour les appels de fonction, l’analyse des expressions devenait ambiguë, donc je l’ai remplacé par "doenda". Plus tard, j’essaierai probablement de faire en sorte que ce soit analysable avec "ida".C’est vrai, on dirait que l’appel de fonction devrait être en « ~nda » lol
Très bien lu.
Merci.
Cela me rappelle avec nostalgie qu’on faisait quelque chose de similaire pendant les cours de compilation à l’université.
Je ne l’ai pas encore appris, mais j’ai hâte.
Oh, en voyant les noms des fichiers
lexeretparser, on dirait que vous avez étudié les compilateurs, non ?Ah, comme je suis encore en troisième année d’université, je n’ai pas suivi de cours sur les compilateurs et je l’ai fait en autodidacte, et comme je voulais le créer rapidement, j’ai appris et développé ça un peu à l’arrache.
C’est une belle tentative !! C’est amusant haha
On sent que vous avez beaucoup réfléchi à la manière de l’exprimer naturellement.
Merci.