Ziium - Un lenguaje de programación para escribir código con la estructura de las oraciones en coreano
(ziium.github.io)Un lenguaje de programación experimental que utiliza las partículas gramaticales y los predicados del coreano como elementos de la gramática.
No se trata de traducir las palabras clave de lenguajes existentes al hangul,
sino de apuntar a una gramática superficial más cercana al flujo con el que una persona coreanohablante lee y escribe.
Implementado en Rust, incluye un playground en el navegador con WebAssembly.
Es algo que me había imaginado desde que empecé a aprender a programar, y con ayuda de Codex pude hacerlo realidad así.
Probablemente no tenga utilidad práctica... estoy experimentando con distintos tipos de sintaxis.
La idea central no era una "sustitución de palabras clave en hangul", sino conservar el flujo de las oraciones en coreano.
Por ejemplo, se puede escribir código como este:
이름은 "철수"이다.
나이는 20이다.
나이 > 19이면
"성인이다"를 출력한다.
아니면
"미성년자이다"를 출력한다.
Las partículas tienen significado gramatical.
은/는 indica binding, 을/를 indica el objeto, 의 acceso a propiedades y 으로 el marco de conversión.
Por eso también se pueden escribir cosas como 합은 7 더하기 8이다 o 결과는 5의 제곱이다.
Las funciones también se definen y se llaman con forma de oración coreana:
인사만들기 함수는 이름을 받아
"안녕, " + 이름 + "!"을 돌려준다.
인사문장은 "지음"으로 인사만들기이다.
También soporta gráficos en canvas:
그림판에 { 배경색: "#f6efe2" }으로 지우기.
그림판에 { x: 120, y: 80, 색: 빨강 }으로 점찍기.
Internamente usa un modelo de envío de mensajes al estilo Smalltalk,
así que la superficie está en coreano, pero la estructura semántica es bastante estricta.
Está hecho en Rust y también corre un playground en el navegador con wasm-pack.
Ya funciona incluso una demo de la Torre de Hanói en canvas.
Todavía está en v0.1 y le faltan muchas cosas, pero agradecería cualquier feedback.
12 comentarios
Oh...
Si
edad > 19, ¿no se podría hacer también comosi la edad es mayor que 19? Si se interpreta la parte anterior a이/가y la parte anterior a보다como el lado izquierdo y el lado derecho, respectivamente, parece que podría funcionar. En el caso de ≥, seríasi es mayor o igual queosi es al menos(aunque en este caso no se usaría보다; es decir, habría que expresarlo comosi la edad es al menos 19. Entonces habría que distinguir la izquierda y la derecha con base en이/가, así que la complejidad al interpretarlo subiría un poco).¡Está realmente muy bien!
Hace poco, cuando también apareció un lenguaje llamado 'Han', se mencionó la presentación de este lenguaje llamado Nuri.
https://github.com/suhdonghwi/nuri/
Parece que el lenguaje Nuri también sigue de forma natural el mismo orden de palabras que el coreano.
El lenguaje Ziium también usa oraciones naturales, así que es fácil de leer. Yendo un poco más allá:
si edad > 19
imprime "Es adulto".
si no
imprime "Es menor de edad".
=> Si la edad es de 19 años o más, imprime 'Es adulto'; si no, imprime 'Es menor de edad'.
Si se pudiera hacer así, sería un coreano perfecto.
De todos los lenguajes de programación en coreano que he visto hasta ahora, este es el más interesante en términos de sintaxis. Está divertido.
Yo también era algo que solo había imaginado desde hace mucho tiempo, y ahora me toca ver que se hizo realidad en vida. ¡Los apoyo! Voy a usarlo mucho.
¡Oh, los apoyo!!!!! Estaba esperando un proyecto así~
¡Me parece interesante porque es similar a la sintaxis de un proyecto que hice antes!
Si haces un prompt con esa sintaxis tal cual, saldría una especificación muy buena.
Guau, se ve demasiado interesante ???
¡Oh, se ve interesante! ¿La gramática coreana se usa de forma estricta? ¿O hay cierto grado de flexibilidad?
Vaya, mi primer lenguaje de programación fue Changjo...!
Vaya, es un proyecto genial...