19 puntos por smc0478 2025-11-19 | 29 comentarios | Compartir por WhatsApp

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/myeon y animyeon ... imyeon/myeon funcionan de forma parecida a if, else if y else, y ejecutan daeum ... 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 dongan es parecido a while y ejecuta daeum ... mundaneul banbokhanda..
  • ...e inneun gak hangmokdeureul ...ro gajyeowa equivale a for ... in ... y ejecuta daeum ... 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, y daeum ... 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 struct del 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

  • yuhyeong es 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

 
qlghwp123 2025-11-26

Realmente me parece genial. ¡Los apoyo!

 
smc0478 2025-11-26

Gracias.

 
rkttu 2025-11-26

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)

 
smc0478 2025-11-26

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

 
oktroco 2025-11-26

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!

 
smc0478 2025-11-26

Gracias. Definitivamente, al estar en coreano, parece que hay partes que se leen mejor que en inglés.

 
cronex 2025-11-26

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.

 
smc0478 2025-11-26

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

 
t7vonn 2025-11-26

Está interesante.

 
smc0478 2025-11-26

Gracias.

 
tesla52 2025-11-26

Qué interesante. Se me ocurrió una buena idea; tendré que intentarlo como proyecto paralelo.

 
smc0478 2025-11-26

Perfecto. Lo esperaré con interés.

 
softer 2025-11-23

Oh, oh... los apoyo.

 
smc0478 2025-11-26

Gracias.

 
kornet 2025-11-22

Está bueno que use menos caracteres especiales como +-=$& que otros lenguajes. En los teclados de dispositivos pequeños, ingresar caracteres especiales es complicado.

 
smc0478 2025-11-26

Oh, esa ventaja sí existe. Gracias.

 
nottiger 2025-11-19

Es genial...

 
smc0478 2025-11-20

Gracias.

 
roxie 2025-11-19

Puede ser una diferencia de preferencia personal, pero creo que hubiera sido mejor es en lugar de funciona.

 
smc0478 2025-11-19

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".

 
roxie 2025-11-19

Así es, parece que la llamada a la función debería ser “~nda”, jaja

 
girr311 2025-11-19

Se ve bien.

 
smc0478 2025-11-19

Gracias.

 
ifmkl 2025-11-19

Me trae recuerdos de cuando hacía algo parecido en la clase de compiladores de la universidad.

 
smc0478 2025-11-19

Todavía no lo he aprendido, pero me genera expectativa.

 
beoks 2025-11-19

Vaya, al ver los nombres de los archivos lexer y parser, parece que estudiaste compiladores, ¿o no?

 
smc0478 2025-11-19

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.

 
futurist 2025-11-19

¡Qué buen intento! Está divertido jaja
Se siente que pensaron mucho en cómo expresarlo de forma natural.

 
smc0478 2025-11-19

Gracias.