ziium - Un langage de programmation qui écrit du code selon la structure des phrases coréennes
(ziium.github.io)Un langage de programmation expérimental qui utilise les particules et les prédicats du coréen comme éléments grammaticaux.
Au lieu de traduire en hangeul les mots-clés de langages existants,
il vise une grammaire de surface plus proche du flux naturel de lecture et d’écriture des locuteurs coréens.
Implémenté en Rust, avec un playground navigateur en WebAssembly.
C’est quelque chose que j’imaginais depuis que j’ai commencé à apprendre à coder, et j’ai finalement pu le réaliser avec l’aide de Codex.
Je doute que ce soit vraiment pratique… et j’expérimente encore différentes syntaxes.
L’idée centrale n’était pas de faire une simple « substitution par des mots-clés en hangeul », mais de préserver le flux des phrases coréennes.
Par exemple, on peut écrire du code comme ceci :
이름은 "철수"이다.
나이는 20이다.
나이 > 19이면
"성인이다"를 출력한다.
아니면
"미성년자이다"를 출력한다.
Les particules ont une signification grammaticale.
은/는 sert au binding, 을/를 désigne la cible, 의 sert à l’accès aux propriétés, et 으로 correspond à un cadre de conversion.
On peut donc aussi écrire des expressions comme 합은 7 더하기 8이다 ou 결과는 5의 제곱이다.
Les fonctions aussi sont définies et appelées sous forme de phrases coréennes :
인사만들기 함수는 이름을 받아
"안녕, " + 이름 + "!"을 돌려준다.
인사문장은 "지음"으로 인사만들기이다.
Les graphismes sur canvas sont également possibles :
그림판에 { 배경색: "#f6efe2" }으로 지우기.
그림판에 { x: 120, y: 80, 색: 빨강 }으로 점찍기.
En interne, le langage utilise un modèle d’envoi de messages de style Smalltalk,
de sorte que, même si la surface est en coréen, la structure sémantique reste assez stricte.
Le projet a été réalisé en Rust, et le playground navigateur fonctionne aussi avec wasm-pack.
Il en est déjà au stade où une démo canvas des tours de Hanoï fonctionne.
Ce n’est encore qu’une v0.1, donc il manque beaucoup de choses, mais je serais reconnaissant pour tout retour.
12 commentaires
Oh...
Si l’âge > 19, ne pourrait-on pas aussi transformer cette partie en « si l’âge est supérieur à 19 » ? Si l’on interprète la partie avant le marqueur de sujet et la partie avant « plus que » respectivement comme le membre de gauche et le membre de droite, cela devrait pouvoir marcher. Pour ≥, on pourrait utiliser « si c’est supérieur ou égal » ou « si c’est au moins » (mais dans ce cas, il ne faudrait pas utiliser « plus que », donc il faudrait formuler cela comme « si l’âge est au moins 19 ». Cela dit, il faudrait alors distinguer la gauche et la droite en se basant sur le marqueur de sujet, donc la complexité de l’interprétation augmenterait un peu.)
C’est vraiment excellent !
Il y a peu, quand un langage appelé « Han » avait aussi été présenté, l’introduction de ce langage nommé Nuri avait été mentionnée.
https://github.com/suhdonghwi/nuri/
Le langage Nuri aussi suit naturellement un ordre des mots similaire à celui du coréen.
Le langage Ziium aussi utilise des phrases naturelles, ce qui le rend facile à lire. En allant un peu plus loin :
si âge > 19
affiche « c’est un adulte ».
sinon
affiche « c’est un mineur ».
=> si l’âge est de 19 ans ou plus, afficher « c’est un adulte », sinon afficher « c’est un mineur ».
Si l’on pouvait faire ainsi, ce serait un coréen parfait.
Parmi tous les langages de programmation coréens que j’ai vus jusqu’à présent, c’est de loin le plus intéressant sur le plan grammatical. C’est amusant.
C’est aussi quelque chose que j’imaginais depuis longtemps, et je suis impressionné de voir ça prendre forme de mon vivant. Je vous soutiens ! Je vais l’utiliser assidûment.
Oh, je vous soutiens !!!!! J’attendais ce genre de projet depuis longtemps~
Je trouve ça intéressant, car la syntaxe ressemble à celle d’un projet sur lequel j’avais travaillé auparavant !
Si l’on crée un prompt en reprenant exactement cette syntaxe, cela ferait une très bonne spécification.
Waouh, ça a l’air vraiment très amusant ???
Oh, ça a l’air intéressant ! La grammaire coréenne est-elle utilisée de façon stricte ? Ou y a-t-il une certaine souplesse ?
Waouh, mon premier langage de programmation, c’était Changjo... !
Waouh, c’est un projet génial...