kol, un lenguaje de programación escrito en coreano
(github.com/smc0478)Hola.
He creado un lenguaje de programación que se escribe en coreano.
Motivo de creación
- Después de ver lenguajes de programación escritos en hangul como Umjeng y Aheui, quise probar a programar de forma natural en coreano.
- También es parte de mi estudio para crear un lenguaje bien hecho más adelante.
Instalación
pip install korean-lang
Tipos de sintaxis
Creé la sintaxis que presento abajo.
Para más detalles, consulten el enlace de mi GitHub.
Salida
"Annyeong sesang!"eul imprime.
Variables
- Los nombres de las variables pueden estar formados por hangul (cosas como giyeok no se permiten),
_y números. - Las variables pueden contener enteros, cadenas, arreglos, diccionarios, etc.
jeongsuneun 1i doenda.
sosuneun 3.141592ga doenda.
ireumeun "Hong Gil-dong"i doenda.
chamgapseun chami doenda.
bingapseun eopseumi doenda.
sutja_baeyeoreun [1 daeum 2 daeum 3 daeum 4]i doenda.
saram_jeongboneun {"ireum"eun "Gim Cheol-su" tto "nai"neun 25}i doenda.
Condicionales
manyak ... imyeon/myeon,anigo manyak ... imyeon/myeonyanimyeon ... imyeon/myeonfuncionan de forma parecida a if, else if y else, y ejecutandaeum ... mundaneul silhaenghanda..
nai-neun ipryeokan geoseul jeongsuro_byeonhwanhan geosi doenda.
manyak nai-ga 18boda keugeona gatdamyeon daeum
"Seonginimnida."reul imprime.
mundaneul silhaenghanda.
anigo manyak nai-ga 13boda keuda ttoneun nai-ga 13rang gatdamyeon daeum
"Cheongsonyeonimnida."reul imprime.
mundaneul silhaenghanda.
animyeon daeum
"Eorinimnida."reul imprime.
mundaneul silhaenghanda
Bucles
gyesok ... in donganes parecido awhiley ejecutadaeum ... mundaneul banbokhanda.....e inneun gak hangmokdeureul ...ro gajyeowaequivale afor ... in ...y ejecutadaeum ... mundaneul banbokhanda..
sutjaneun 0i doenda.
gyesok sutjaga 5boda jakdain dongan daeum
sutjareul imprime.
sutjaneun sutjawa 1eul deohan geosi doenda.
mundaneul banbokhanda.
baeyeoreun [10 daeum 20 daeum 30]i doenda.
baeyeore inneun gak hangmokdeureul sutjaro gajyeowa daeum
sutjareul imprime.
mundaneul banbokhanda.
Funciones
hamsu ...neun (...gwa ...ro)es la parte donde se define la función, ydaeum ... mundaneul silhaenghanda.es la parte de ejecución de la función.- Las funciones se llaman como
...gwa/wa ...eul/reul ... ro/euro ...handa./da..
hamsu paektorieoreul_guhandaneun garo daeum
manyak ga-ga 0irang gatdamyeon daeum
gyeolgwa gabeun 1i doenda. geurigo kkeutnanda.
mundaneul silhaenghanda.
gyeolgwa gabeun gawa ((gareul 1ro ppaen geot)euro paektorieoreul_guhan geot)eul gophan geosi doenda.
geurigo kkeutnanda.
mundaneul silhaenghanda.
4ro paektorieoreul_guhan geoseul imprime.
Estructuras
- Una estructura es parecida al
structdel lenguaje C.
gujo sarameun daeum
byeonsu ireumi itda.
byeonsu nai-ga itda.
gapseul gajinda.
Cheol-suneun sarami doenda.
Cheol-suui ireumeun "Cheol-suda"ga doenda.
Cheol-suui ireumeul imprime.
Clases
yuhyeonges la clase en otros lenguajes.
yuhyeong dongmureun daeum
byeonsu ireumi itda.
hamsu sorireul_naendaneun daeum
dongmurui ireumgwa "i(ga) sorireul naemnida."reul deohan geoseul imprime.
mundaneul silhaenghanda.
gapseul gajinda.
Gangajineun dongmuri doenda.
Gangajiui ireumeun "Badugi"ga doenda.
Gangaji aneseo sorireul_naenda.
Puntos pendientes
- Me da algo de pena que haya sintaxis poco natural en coreano y algo forzada, como en el caso de los arreglos.
- Traducí class al coreano como
yuhyeong, pero creo que podría haber una palabra mejor, así que si más adelante encuentro una mejor, pienso cambiarla.
Cierre
No es que tenga mucha utilidad, y además el código interno está desordenado porque lo escribí rápido en dos semanas, pero espero que lo vean con gusto.
Gracias por leerlo.
29 comentarios
Realmente me parece genial. ¡Los apoyo!
Gracias.
Ha habido intentos continuos a nivel de comunidad de adoptar el coreano como lenguaje de programación, así que me acordé de esto y dejo el enlace. jaja
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)
Al intentarlo y buscar más, vi que había muchos intentos interesantes.
Uno de los que más me impresionó es el del enlace de abajo; me pareció divertido que hasta los números estuvieran expresados en coreano.
https://github.com/recu3125/malC_lang
Parece que también sería bueno con fines educativos para personas que no están familiarizadas con el inglés y las matemáticas.
Poder explicar bien el pensamiento computacional en coreano, sin símbolos como
if,for,while,=, parece una ventaja educativa enorme.¡Me parece una idea excelente!
Gracias. Definitivamente, al estar en coreano, parece que hay partes que se leen mejor que en inglés.
Parece que no era necesario usar el delimitador
다음para los arreglos y que también se podría haber usado una coma.Además, tengo curiosidad por saber si los arreglos pueden incluir estructuras/clases, otros arreglos o diccionarios.
En ese momento, la meta era realmente usar solo hangul y excluir en lo posible el inglés y la puntuación, así que no los usé, pero definitivamente creo que incluir comas se sentiría más natural. Más adelante intentaré agregarlas.
Y los arreglos fueron diseñados como una estructura que puede contener datos de cualquier tipo. Si no funciona, es un bug. T_T
Está interesante.
Gracias.
Qué interesante. Se me ocurrió una buena idea; tendré que intentarlo como proyecto paralelo.
Perfecto. Lo esperaré con interés.
Oh, oh... los apoyo.
Gracias.
Está bueno que use menos caracteres especiales como
+-=$&que otros lenguajes. En los teclados de dispositivos pequeños, ingresar caracteres especiales es complicado.Oh, esa ventaja sí existe. Gracias.
Es genial...
Gracias.
Puede ser una diferencia de preferencia personal, pero creo que hubiera sido mejor
esen lugar defunciona.Originalmente, al principio la asignación de variables era
ganeun ~ida.. Pero durante el desarrollo también usé "ida/da" para expresar llamadas a funciones, así que se volvió ambiguo al parsear expresiones y lo cambié a "doenda". Más adelante probablemente intente hacer que también se pueda parsear con "ida".Así es, parece que la llamada a la función debería ser “~nda”, jaja
Se ve bien.
Gracias.
Me trae recuerdos de cuando hacía algo parecido en la clase de compiladores de la universidad.
Todavía no lo he aprendido, pero me genera expectativa.
Vaya, al ver los nombres de los archivos
lexeryparser, parece que estudiaste compiladores, ¿o no?Ah, es que todavía estoy en tercer año de la universidad, así que no he tomado una clase de compiladores y lo hice autodidacta; además, como quería hacerlo rápido, aprendí y desarrollé de forma medio improvisada.
¡Qué buen intento! Está divertido jaja
Se siente que pensaron mucho en cómo expresarlo de forma natural.
Gracias.