19 pontos por smc0478 2025-11-19 | 29 comentários | Compartilhar no WhatsApp

Olá.
Criei uma linguagem de programação escrita em coreano.

Motivo da criação

  • Vi linguagens de programação escritas em hangul, como Umjureong e Aheui, e quis experimentar programar de forma natural em coreano.
  • Também é um estudo para, no futuro, criar uma linguagem de verdade.

Instalação

pip install korean-lang  

Tipos de sintaxe

Criei as sintaxes apresentadas abaixo.
Para mais detalhes, consulte o link do meu GitHub.

Saída

"안녕 세상!"을 출력한다.  
Publicidade

Variáveis

  • Os nomes das variáveis podem ser formados por letras coreanas (coisas como não são permitidas), _ e números.
  • As variáveis podem armazenar inteiros, strings, arrays, dicionários etc.
정수는 1이 된다.  
소수는 3.141592가 된다.  
이름은 "홍길동"이 된다.  
참값은 참이 된다.  
빈값은 없음이 된다.  
숫자_배열은 [1 다음 2 다음 3 다음 4]이 된다.  
사람_정보는 {"이름"은 "김철수" 또 "나이"는 25}이 된다.  

Condicionais

  • 만약 ... 이면/면, 아니고 만약 ... 이면/면, 아니면 ... 이면/면 funcionam de forma parecida com if, else if e else, e executam 다음 ... 문단을 실행한다..
나이는 입력한 것을 정수로_변환한 것이 된다.  
  
만약 나이가 18보다 크거나 같다면 다음  
    "성인입니다."를 출력한다.  
문단을 실행한다.  
아니고 만약 나이가 13보다 크다 또는 나이가 13랑 같다면 다음  
    "청소년입니다."를 출력한다.  
문단을 실행한다.  
아니면 다음  
    "어린이입니다."를 출력한다.  
문단을 실행한다  

Laços de repetição

  • 계속 ... 인 동안 é parecido com while e executa 다음 ... 문단을 반복한다..
  • ...에 있는 각 항목들을 ...로 가져와 é for ... in ... e executa 다음 ... 문단을 반복한다..
Publicidade
숫자는 0이 된다.  
계속 숫자가 5보다 작다인 동안 다음  
    숫자를 출력한다.  
    숫자는 숫자와 1을 더한 것이 된다.  
문단을 반복한다.  
  
배열은 [10 다음 20 다음 30]이 된다.  
배열에 있는 각 항목들을 숫자로 가져와 다음  
    숫자를 출력한다.  
문단을 반복한다.  

Funções

  • 함수 ...는 (...과 ...로) é a parte que define a função, e 다음 ... 문단을 실행한다. é a parte de execução da função.
  • A função é chamada no formato ...과/와 ...을/를 ... 로/으로 ...한다./다..
함수 팩토리얼을_구한다는 가로 다음  
    만약 가가 0이랑 같다면 다음  
        결과 값은 1이 된다. 그리고 끝난다.  
    문단을 실행한다.  
    결과 값은 가와 ((가를 1로 뺀 것)으로 팩토리얼을_구한 것)을 곱한 것이 된다.   
    그리고 끝난다.  
문단을 실행한다.  
  
4로 팩토리얼을_구한 것을 출력한다.   

Structs

  • Uma struct é parecida com a struct da linguagem C.
Publicidade
구조 사람은 다음  
    변수 이름이 있다.  
    변수 나이가 있다.  
값을 가진다.  
  
철수는 사람이 된다.  
철수의 이름은 "철수다"가 된다.  
철수의 이름을 출력한다.   

Classes

  • 유형 corresponde à classe de outras linguagens.
유형 동물은 다음  
    변수 이름이 있다.  
    
    함수 소리를_낸다는 다음  
        동물의 이름과 "이(가) 소리를 냅니다."를 더한 것을 출력한다.  
    문단을 실행한다.  
값을 가진다.  
  
강아지는 동물이 된다.  
강아지의 이름은 "바둑이"가 된다.  
강아지 안에서 소리를_낸다.   

Pontos que ficaram aquém

  • É uma pena que existam sintaxes estranhas que não soam naturais em coreano, como no caso dos arrays.
  • Traduzi class para 유형 em coreano, mas acho que pode haver uma palavra melhor; se eu descobrir depois, pretendo trocar.

Encerrando

Não é particularmente útil, e o código interno ficou meio bagunçado porque escrevi tudo às pressas em duas semanas, mas espero que achem interessante.
Obrigado por lerem.

29 comentários

 
qlghwp123 2025-11-26

Parece realmente muito legal! Estou torcendo por vocês.

 
smc0478 2025-11-26

Obrigado.

 
oktroco 2025-11-26

Parece que também seria ótimo para fins educacionais, para pessoas que não estão familiarizadas com inglês e matemática.
O fato de conseguir explicar muito bem o pensamento computacional em coreano, sem símbolos como if, for, while, =, parece ser uma enorme vantagem educacional.
Parece uma ideia muito boa!

 
smc0478 2025-11-26

Obrigado. Com certeza, por estar em coreano, parece que há partes que acabam sendo mais fáceis de ler do que em inglês.

 
cronex 2025-11-26

Parece que, no caso de arrays, daria para usar vírgulas sem necessariamente precisar do delimitador 다음.
E também fiquei curioso se a estrutura dos arrays pode incluir structs/classes, outros arrays ou dicionários.

 
smc0478 2025-11-26

Na época, o objetivo era realmente usar só coreano e excluir ao máximo inglês e pontuação, então eu não usei, mas com certeza parece que colocar vírgulas seria mais natural. Vou tentar adicionar isso depois.

Além disso, os arrays foram projetados como uma estrutura que pode armazenar dados de todos os tipos. Se não funcionar, é bug. T_T

 
t7vonn 2025-11-26

Interessante.

 
smc0478 2025-11-26

Obrigado.

 
tesla52 2025-11-26

Interessante. Tive uma boa ideia; acho que vou tentar isso como projeto paralelo.

 
smc0478 2025-11-26

Ótimo. Ficarei no aguardo.

 
softer 2025-11-23

Ooh.. estou torcendo por vocês

 
smc0478 2025-11-26

Obrigado.

 
kornet 2025-11-22

É bom que use menos caracteres especiais como +-=$& do que outras linguagens. Em teclados de dispositivos móveis pequenos, é difícil digitar caracteres especiais.

 
smc0478 2025-11-26

Oh, que vantagem interessante. Obrigado.

 
nottiger 2025-11-19

Muito bom...

 
smc0478 2025-11-20

Obrigado.

 
roxie 2025-11-19

Talvez seja uma questão de preferência pessoal, mas acho que é teria sido melhor do que funciona.

 
smc0478 2025-11-19

Originalmente, no início, a atribuição de variáveis era ganeun ~ ida. Mas, durante o desenvolvimento, como também se usava "ida/da" em chamadas de função, a análise de expressões ficou ambígua, então mudei para "doenda". Mais tarde, acho que vou tentar fazer com que seja possível analisar com "ida".

 
roxie 2025-11-19

É verdade, parece que a chamada de função deve ser “~n-da”, haha

 
girr311 2025-11-19

Gostei de ler.

 
smc0478 2025-11-19

Obrigado.

 
ifmkl 2025-11-19

Isso me traz muitas lembranças de quando fazíamos algo parecido nas aulas de compiladores na universidade.

 
smc0478 2025-11-19

Ainda não aprendi, mas estou animado.

 
beoks 2025-11-19

Ué, pelos nomes dos arquivos do lexer e do parser, parece que você estudou compiladores, não foi?

 
smc0478 2025-11-19

Ah, é que eu ainda estou no 3º ano da faculdade, então não fiz uma disciplina de compiladores e acabei fazendo isso estudando por conta própria; além disso, como queria terminar rápido, aprendi e desenvolvi meio na gambiarra.

 
futurist 2025-11-19

Que tentativa bacana!! Ficou divertido hehe
Dá para sentir que vocês pensaram bastante em como expressar isso de forma natural.

 
smc0478 2025-11-19

Obrigado.

 
rkttu 2025-11-26

Já houve continuamente, em nível de comunidade, tentativas de adotar o coreano como linguagem de programação, e isso me fez lembrar deste link, então estou compartilhando. 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)

 
smc0478 2025-11-26

Ao criar e pesquisar, vi que há muitas tentativas interessantes.
Um dos que mais me impressionou foi o link abaixo; achei interessante que até os números são expressos em hangul.
https://github.com/recu3125/malC_lang