19 puan yazan smc0478 2025-11-19 | 29 yorum | WhatsApp'ta paylaş

Merhaba.
Koreceyle yazılan bir programlama dili yaptım.

Yapılma nedeni

  • umjaryeong veya Aheui gibi Hangul ile yazılan programlama dillerini görüp Koreceyle doğal şekilde kod yazmayı denemek istedim.
  • İleride düzgün bir dil yapmak için bir öğrenme çalışması.

Kurulum

pip install korean-lang  

Sözdizimi türleri

Aşağıda tanıttığım türde sözdizimlerini oluşturdum.
Daha ayrıntılı bilgi için GitHub bağlantıma bakabilirsiniz.

Çıktı

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

Değişken

  • Değişken adları Hangul ( gibi olanlar olmaz), _ ve sayılardan oluşur.
  • Değişkenler tamsayı, string, dizi, dictionary gibi değerler içerebilir.
정수는 1이 된다.  
소수는 3.141592가 된다.  
이름은 "홍길동"이 된다.  
참값은 참이 된다.  
빈값은 없음이 된다.  
숫자_배열은 [1 다음 2 다음 3 다음 4]이 된다.  
사람_정보는 {"이름"은 "김철수" 또 "나이"는 25}이 된다.  

Koşul

  • 만약 ... 이면/면, 아니고 만약 ... 이면/면, 아니면 ... 이면/면 yapıları if, else if, else benzeri çalışır ve 다음 ... 문단을 실행한다. ifadesini çalıştırır.
나이는 입력한 것을 정수로_변환한 것이 된다.  
  
만약 나이가 18보다 크거나 같다면 다음  
    "성인입니다."를 출력한다.  
문단을 실행한다.  
아니고 만약 나이가 13보다 크다 또는 나이가 13랑 같다면 다음  
    "청소년입니다."를 출력한다.  
문단을 실행한다.  
아니면 다음  
    "어린이입니다."를 출력한다.  
문단을 실행한다  

Döngü

  • 계속 ... 인 동안 yapısı while benzeridir ve 다음 ... 문단을 반복한다. ifadesini çalıştırır.
  • ...에 있는 각 항목들을 ...로 가져와 yapısı for ... in ... şeklindedir ve 다음 ... 문단을 반복한다. ifadesini çalıştırır.
숫자는 0이 된다.  
계속 숫자가 5보다 작다인 동안 다음  
    숫자를 출력한다.  
    숫자는 숫자와 1을 더한 것이 된다.  
문단을 반복한다.  
  
배열은 [10 다음 20 다음 30]이 된다.  
배열에 있는 각 항목들을 숫자로 가져와 다음  
    숫자를 출력한다.  
문단을 반복한다.  

Fonksiyon

  • 함수 ...는 (...과 ...로) kısmı fonksiyon tanımıdır ve 다음 ... 문단을 실행한다. kısmı fonksiyonun çalışma bölümüdür.
  • Fonksiyonlar ...과/와 ...을/를 ... 로/으로 ...한다./다. şeklinde çağrılır.
함수 팩토리얼을_구한다는 가로 다음  
    만약 가가 0이랑 같다면 다음  
        결과 값은 1이 된다. 그리고 끝난다.  
    문단을 실행한다.  
    결과 값은 가와 ((가를 1로 뺀 것)으로 팩토리얼을_구한 것)을 곱한 것이 된다.   
    그리고 끝난다.  
문단을 실행한다.  
  
4로 팩토리얼을_구한 것을 출력한다.   

Struct

  • Struct, C dilindeki struct ile benzerdir.
구조 사람은 다음  
    변수 이름이 있다.  
    변수 나이가 있다.  
값을 가진다.  
  
철수는 사람이 된다.  
철수의 이름은 "철수다"가 된다.  
철수의 이름을 출력한다.   

Sınıf

  • 유형, diğer dillerdeki sınıfa karşılık gelir.
유형 동물은 다음  
    변수 이름이 있다.  
    
    함수 소리를_낸다는 다음  
        동물의 이름과 "이(가) 소리를 냅니다."를 더한 것을 출력한다.  
    문단을 실행한다.  
값을 가진다.  
  
강아지는 동물이 된다.  
강아지의 이름은 "바둑이"가 된다.  
강아지 안에서 소리를_낸다.   

Eksik kalan noktalar

  • Dizi örneğinde olduğu gibi, Korece açısından doğal durmayan ve kulağa garip gelen bazı sözdizimleri olduğu için içime sinmeyen yanlar var.
  • classı Koreceye 유형 olarak çevirdim ama bundan daha iyi bir kelime olabileceğini düşünüyorum; ileride daha iyi bir ifade bulursam değiştirmeyi planlıyorum.

Kapanış

Pek kullanışlı bir şey değil ve iç kodu da 2 hafta içinde hızlıca yazdığım için biraz dağınık, ama umarım keyifle bakarsınız.
Okuduğunuz için teşekkür ederim.

29 yorum

 
qlghwp123 2025-11-26

Gerçekten çok harika görünüyor! Destekliyorum.

 
smc0478 2025-11-26

Teşekkür ederim.

 
oktroco 2025-11-26

İngilizceye ve matematiğe aşina olmayan kişiler için eğitim amaçlı olarak da iyi olacağını düşünüyorum.
if, for, while, = gibi semboller olmadan hesaplamalı düşünmeyi Koreceyle iyi anlatabilmesi, eğitim açısından çok büyük bir avantaj gibi görünüyor.
Bence gerçekten harika bir fikir!

 
smc0478 2025-11-26

Teşekkürler. Gerçekten de Korece olunca, İngilizceye göre daha rahat okunan kısımlar var gibi görünüyor.

 
cronex 2025-11-26

Dizilerde ille de 다음 ayırıcısını kullanmak yerine virgül kullanılsa da olurmuş gibi görünüyor.
Ayrıca dizilerin struct/class, dizi ya da dictionary de içerebilen bir yapı olup olmadığını merak ediyorum.

 
smc0478 2025-11-26

O dönemde hedef gerçekten yalnızca Korece kullanmak ve mümkün olduğunca İngilizce ile noktalama işaretlerini dışarıda bırakmaktı, bu yüzden kullanmadım; ama kesinlikle virgül eklemek daha doğal görünüyor. Daha sonra eklemeyi deneyeceğim.

Ayrıca diziler, her türden veriyi tutabilen bir yapı olarak tasarlandı. Olmuyorsa bu bir hatadır. T_T

 
t7vonn 2025-11-26

İlginçmiş.

 
smc0478 2025-11-26

Teşekkür ederim.

 
tesla52 2025-11-26

İlginç görünüyor. Aklıma güzel bir fikir geldi; bunu bir yan proje olarak denemem gerekecek.

 
smc0478 2025-11-26

Güzel. Bekliyor olacağım.

 
softer 2025-11-23

Ooo .. destekliyorum

 
smc0478 2025-11-26

Teşekkür ederim.

 
kornet 2025-11-22

+-=$& gibi özel karakterlerin diğer dillere göre daha az kullanılması güzel. Küçük taşınabilir cihazların klavyelerinde özel karakter girmek zor oluyor.

 
smc0478 2025-11-26

Aa, böyle bir avantajı varmış. Teşekkürler.

 
nottiger 2025-11-19

Çok güzel...

 
smc0478 2025-11-20

Teşekkür ederim.

 
roxie 2025-11-19

Kişisel bir tercih farkı olabilir ama “olur” yerine “olur”dan ziyade “-dır”ın daha iyi olacağını düşünüyorum.

 
smc0478 2025-11-19

Aslında başlangıçta değişken ataması 가는 ~이다. idi. Ancak geliştirme sırasında ifade ayrıştırması belirsiz hale geldi, çünkü fonksiyon çağrılarında da 이다/다 kullanıyorduk; bu yüzden bunu 된다 olarak değiştirdik. Daha sonra 이다 ile ayrıştırılabilecek hale getirmeyi denemeyi düşünüyorum.

 
roxie 2025-11-19

Evet, öyle görünüyor; fonksiyon çağrısının “~nda” olması gerekiyor sanırım haha

 
girr311 2025-11-19

Güzelce okudum.

 
smc0478 2025-11-19

Teşekkür ederim.

 
ifmkl 2025-11-19

Üniversitedeki derleyici derslerinde buna benzer şeyler yaptığımız günleri yeniden hatırladım.

 
smc0478 2025-11-19

Henüz öğrenmedim ama umut verici görünüyor.

 
beoks 2025-11-19

Hmm, lexer ve parser dosya adlarına bakınca derleyici çalışmışsınız gibi görünüyor, öyle değil mi?

 
smc0478 2025-11-19

Ah, ben hâlâ üniversite 3. sınıf öğrencisiyim; derleyici dersi de almadım, kendi kendime öğrenerek yaptığım bir şey bu. Bir de hızlı yapmak için biraz doğaçlama şekilde öğrenip geliştirdim, o yüzden böyle.

 
futurist 2025-11-19

Harika bir deneme olmuş!! Çok eğlenceli haha
Daha doğal ifade etmek için epey düşündüğünüz hissini veriyor.

 
smc0478 2025-11-19

Teşekkür ederim.

 
rkttu 2025-11-26

Koreceyi bir programlama dili olarak benimsemeye yönelik girişimler topluluk düzeyinde sürekli oldu; bu aklıma gelince bağlantıyı bırakıyorum. 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

Yapıp biraz araştırınca eğlenceli pek çok deneme olduğunu gördüm.
Etkileyici bulduklarımdan biri aşağıdaki bağlantıydı; sayılar da Kore alfabesiyle ifade edildiği için ilginçti.
https://github.com/recu3125/malC_lang