- Korece anahtar kelimelerle yazılan, statik tipli bir derlemeli dil olup LLVM IR üzerinden yerel ikili dosyalar üretir
- Rust ile geliştirilmiş derleyici ve yorumlayıcıyı birlikte sunar;
hgl CLI ile derleme·çalıştırma·REPL·LSP işlevlerini destekler
함수, 만약, 반복, 변수 gibi tüm anahtar kelimeler Korecedir; değişken ve fonksiyon adları da Korece tanımlanabilir
- Dosya G/Ç, JSON, HTTP, düzenli ifadeler, tarih/saat, sistem çağrıları gibi pratik özellikleri yerleşik olarak sunar ve 18 örnek içerir
- Hangul'un bilimsel yapısını ve kültürel yayılımını bir programlama dili olarak somutlaştırarak, Korece öğrenimi ile kodlamayı birleştiren yeni bir deneme olarak öne çıkar
Han dili genel bakış
- Han, Korece anahtar kelimelerle yazılan statik tipli derlemeli bir dildir ve LLVM IR üzerinden yerel ikili dosyalar üretir
- Rust ile yazılmış bir derleyici araç zinciri ve ağaç gezinimli yorumlayıcı içerir
hgl komutuyla yorumlayıcıyı çalıştırma, derleme, REPL ve LSP sunucusunu başlatma mümkündür
- Tüm anahtar kelimeler Hangul ile oluşturulmuştur; örnekler:
함수, 만약, 반복, 변수, 출력
- Hangul'un bilimsel yazı sistemini bir programlama dili olarak hayata geçirerek, dilsel estetik ile teknik kesinliğin birleşimini hedefler
Başlıca özellikler
- Korece anahtar kelime ve tanımlayıcı desteği: değişken, fonksiyon ve struct adları Korece yazılabilir
- Statik tip sistemi:
정수, 실수, 문자열, 불, 없음 olmak üzere 5 temel tip sunar
- Derleme ve yorumlayıcı modu: LLVM IR → clang → ikili dosya üretimi veya anında çalıştırma
- REPL ve LSP sunucusu:
hgl repl, hgl lsp komutlarıyla etkileşimli çalışma ve kod tamamlama desteği
- Yerleşik özellikler
- Diziler, struct'lar, closure'lar, desen eşleme, istisna işleme, generic'ler
- Dosya G/Ç, JSON, HTTP, düzenli ifadeler, tarih/saat, sistem çağrıları
- Biçimlendirilmiş string'ler, hash map, yerleşik matematik fonksiyonları
- 18 örnek program içerir: Hello World, HTTP API çağrısı vb.
Kurulum ve çalıştırma
- Gerekli bileşenler: Rust(1.70+), clang
- Kurulum adımları
- VS Code eklentisi sunar: sözdizimi vurgulama ve LSP desteği
- CLI komutları
hgl interpret <file.hgl> — yorumlayıcıyı çalıştırır
hgl build <file.hgl> — yerel ikili dosya derler
hgl run <file.hgl> — derledikten sonra hemen çalıştırır
hgl repl — etkileşimli mod
hgl lsp — LSP sunucusunu çalıştırır
Mevcut uygulama durumu
- Tam çalışan özellikler
- Veri tipleri, kontrol akışı, fonksiyonlar, string'ler, diziler, hash map, struct'lar, hata işleme, tip denetimi
- JSON, HTTP, düzenli ifadeler, tarih/saat, sistem, dosya G/Ç, matematik fonksiyonları, modüller, generic'ler
- Kısmen uygulanmış özellikler
hgl build sırasında closure, string ve dizi metotları için kod üretimi tamamlanmış değil
- Henüz uygulanmamış özellikler
- Null güvenliği (
Option tipi yok), asenkron/paralel işleme, garbage collection, tail recursion optimizasyonu
Hangul ve programlama
- Hangul, fonemik yapıyı görsel olarak ifade eden bilimsel bir yazı sistemidir; Kral Sejong tarafından 1443'te oluşturulmuştur
- Han, Hangul'un bu yapısal açıklığını kod sözdizimine yansıtır
- Dünya genelinde 16 milyondan fazla kişi Korece öğrenmektedir; Han, kodlama yoluyla Hangul öğrenme aracı sunar
- Örnek anahtar kelimeler
함수(function), 만약(if), 반복(for), 반환(return), 변수(variable), 출력(print) vb.
Tasarım ve yapı
- Rust tabanlı derleyici ardışık düzeni
- Lexer → Parser → AST → Interpreter / CodeGen → LLVM IR → clang → Binary
- Proje yapısı
src/ — çekirdek derleyici ve yorumlayıcı kodu
editors/vscode/ — VS Code eklentisi
examples/, spec/, tests/ dahil
- Tasarım tercihinin nedenleri
- LLVM C API yerine metin tabanlı IR üretimi ile derleme sürecini basitleştirme
- Yorumlayıcı hızlı çalıştırma, derleyici ise performans odaklıdır
- Rust'ın desen eşleme ve bellek güvenliği, dilin uygulanması için uygundur
Testler ve lisans
cargo test ile 46 test (41 birim, 5 entegrasyon) çalıştırılır
- MIT lisansı ile yayımlanmıştır
Kültürel önemi
- Han, Hangul'un güzelliği ile programlamanın kesinliğini birleştiren deneysel bir dildir
- Korece öğrenenler ve geliştiriciler için dil ile kod arasındaki sınırları kaldıran yeni bir yaklaşım sunar
12 yorum
Bu sayede faydalı bilgiler edindim. Temel gelişmeleri seçip sunan GeekNews, her gün ziyaret etmekten keyif aldığım bir yer. Ben de şu anda Korece bir programlama dili geliştiren biri olarak, bu tür girişimlerin sürmesini son derece olumlu buluyorum.
Uzun yıllar yurt dışında yaşayıp Kore'deki değişimi izlemiş biri olarak, İngilizcenin gündelik hayata ve genel olarak sanayiye gereğinden fazla nüfuz etmiş olması bana hep üzücü geldi. Pangyo lehçesi denilen kullanım, anlaşılması güç apartman adları, MSGR gibi garip menüler ve İngilizceyle dolu tabelalar, sanki dilimizin kendi kendini besleme gücüne zarar veriyormuş gibi görünüyor. Erken eğitim sayesinde İngilizce bariyeri azalmış olsa da, ana dilin sağladığı sezgisellik yerini hiçbir şeyle dolduramaz. Nasıl ki yurt dışında Korece bir tabela bir anda göze çarpıyorsa, beynimiz de ana dili işlerken en az enerjiyi harcar.
print("Hello, world!");
çıktı "Merhaba!"
Hangisi size daha doğal ve etkileyici geliyor?
Yapay zeka dil bariyerlerini yıkıyor olabilir, ancak Korece programlama dili araştırmaları, düşünce sistemimizdeki gereksiz bir 'çeviri katmanını' kaldırarak beyin verimliliğini en üst düzeye çıkarma çalışmasıdır.
printyerineçıktının daha sezgisel gelmesi son derece doğaldır. Genel kullanım alanı ya da iş piyasasının mantığı nedeniyle hemen ana akım hâline gelmesi zor olabilir, ancak gelecekte daha olgun ve daha çeşitli Korece dillerin ortaya çıkıp ekosistemi zenginleştirmesini umuyorum.Korece yani... saçmalamayı bırakmak mümkün değil.
Tohum projesi aklıma geldi.
Yazılım geliştirmeden çok uzun süre muhasebe işi yapmış biri gibi görünüyor ama bir derleyici yapıp GitHub’da 100’ü aşkın yıldız almış...
Gerçekten yapay zeka çağı gelmiş.
async-awaityerineeşzamansız-bekleile kod yazmayı düşününce kulağa rahat geliyor.Programlama dillerinde önemli olan şey genel amaçlı kullanılabilirliktir..
Hacker News tepkisinin olumlu olması komik lol
Vay, harika görünüyor.
Merhaba, güçlü ve kuvvetli sabah!
Vay canına
Vay, bunu Hacker News'te görmek de güzel. Kral Sejong'a teşekkürler.
Hacker News yorumları
Korece programlama dilleriyle ilgileniyorsanız, işlevsel dil ‘Nuri’’yi tavsiye ederim
Nuri GitHub bağlantısı
Bu dil yalnızca anahtar kelimeleri çevirmekle kalmıyor, gerçek Korece dilbilgisi yapısını da koda yansıtabiliyor
Örneğin “10'u 5'e böl ve yazdır” diye yazarsanız sonuç olarak “2” yazdırılır
Bir diğer örnek olarak ‘Yaksok’ adlı bir dil de var. 2048 oyun örnek kodu tamamen Korece yazılmış
Bunun gerçekten harika bir fikir olduğunu düşünüyorum. Hangıl, mantıklı biçimde tasarlanmış bir yazı sistemi, bu yüzden yarım günde öğrenilebilir
Hangıl öğrenimi için StackExchange yanıtı
Hangıl’daki harf sayısı İngilizceye yakın olduğu için hızlıca öğrenilebiliyor ama kelime ezberi biraz daha zor. Bu yüzden Anki ile birlikte benim yaptığım oyunlaştırılmış öğrenme uygulamasını kullanıyorum
Korece ana dili olan biri olarak kısa bir görüş paylaşmak istiyorum
İsimler doğal biçimde çevrilebiliyor, ancak İngilizcedeki emir kipli fiiller Koreceye aktarılırken dikkat gerektiriyor. Örneğin “find”, ‘bulmak’, ‘bulma’, ‘bulunmuş’ gibi biçimlere çevrilebilir ama bağlama göre kulağa garip gelebilir
Çoğul da ayrı bir sorun. İngilizcede tekil ve çoğul net biçimde ayrılırken Korecede durum böyle değil. “kelimeler” gibi çoğulu özellikle belirtmek çoğu zaman daha da doğal olmayan bir sonuç veriyor
Sadece anahtar kelime değiştirmek yerine, İngilizce ile Korecenin yapısal farklarını hesaba katarsa çok daha güçlü bir proje olabilir
Üniversitede bilgisayar mühendisliği okurken, programlama dillerinin İngilizce temelli olmasının İngilizce konuşanlar için büyük bir avantaj olduğunu hissetmiştim
Yabancı öğrenci arkadaşlarım İngilizceye alışık olmadıkları için öğrenirken daha çok zorlanıyordu. Bu yüzden programlamanın yabancı dil kredisi sayılması gerektiği yönündeki şaka epey komikti
Asıl zor olan programlamanın kendisini öğrenmek. Ama ileri düzey konuların ve belgelerin sadece İngilizce olması, ESL öğrenenler için büyük bir engel
Korece bilmiyorum ama bu başlık sayesinde pek çok dilbilimsel içgörü edindim
Hangılın fonolojik tasarımı (bağlantı),
Korecede çoğul eklerinin özellikleri (bağlantı),
LLM tokenizer’ları ile Korecenin token sıkıştırma sorunu (bağlantı),
ve ünsüzlerle ünlülerin el yerleşimine göre ayrıldığı Hangıl klavyesinin ritmi (bağlantı) özellikle ilginçti
Bunun gibi denemelerin dil parçalanmasına (fragmentation) yol açabileceğini düşünüyorum.
Herkes kendi dilinde bir programlama dili yaparsa iş birliği ve işe alım zorlaşır, teknik bilgi paylaşımı da güçleşir
Bana göre tüm dünyanın tek bir dil kullanması savaşları ve yanlış anlamaları azaltırdı. Elbette kültürel çeşitlilik azalırdı ama iletişim verimliliği artardı
Sadece anahtar kelimeleri çevirme yaklaşımı ilginç
Örnek koddaki gibi
bu şekilde yazınca kod daha özlü olabilir. Ama büyük/küçük harf ayrımının avantajı kaybolur
Dil yoğunluğundan bağımsız olarak bilgi işleme hızının benzer olduğunu duymuştum
ilgili blog yazısı
Ama başarılı olmadı. Çünkü bilgisayar ortamlarının çoğu zaten Latin harfleriyle giriş gerektiriyor ve birkaç anahtar kelimeyi ezberlemek zor değil
LLM çağında bile eğitim verisinin çoğu İngilizce kod olduğu için İngilizce kod hâlâ daha verimli olabilir
Harika bir proje. Yaklaşık 190 yıl önce(!) Kore’de üniversite okudum ve şimdi sadece temel seviyede Korece biliyorum ama örnek koda bakınca yeni kelimeler öğreniyormuşum gibi hissediyorum
Bu projeyi gerçekten çok beğendim. Kod örneklerine bakıp hiçbir şey anlamazken, İngilizce konuşmayan geliştiricilerin İngilizce tabanlı dilleri ilk gördüklerinde ne hissetmiş olabileceklerini empatiyle kavrayabiliyorum
Lisp hâlâ parantez cenneti ama :-)
Çin’in Easy Programming Language dilini hatırlattı
EPL Vikipedi bağlantısı
Yaklaşık 15 yıl önce Çin’de birçok çocuk programlamaya ilk kez bu dille başladı