Han – Bahasa pemrograman terkompilasi berbasis bahasa Korea yang ditulis dengan Rust
(github.com/xodn348)- Bahasa terkompilasi bertipe statis yang ditulis dengan kata kunci Hangul, menghasilkan biner native melalui LLVM IR
- Menyediakan kompiler dan interpreter yang sama-sama diimplementasikan dengan Rust, serta mendukung build, eksekusi, REPL, dan LSP melalui CLI
hgl - Semua kata kunci menggunakan bahasa Korea seperti
함수,만약,반복,변수, dan nama variabel maupun fungsi juga dapat didefinisikan dalam Hangul - Memiliki fitur praktis bawaan seperti I/O file, JSON, HTTP, regex, tanggal/waktu, dan system call, serta menyertakan 18 contoh
- Mengimplementasikan struktur ilmiah dan penyebaran budaya Hangul ke dalam bahasa pemrograman, sehingga mendapat perhatian sebagai upaya baru yang menggabungkan pembelajaran bahasa Korea dan coding
Gambaran umum bahasa Han
- Han adalah bahasa terkompilasi bertipe statis yang ditulis dengan kata kunci bahasa Korea, dan menghasilkan biner native melalui LLVM IR
- Mencakup toolchain kompiler dan tree-walking interpreter yang ditulis dengan Rust
- Perintah
hgldapat digunakan untuk menjalankan interpreter, build, REPL, dan server LSP
- Semua kata kunci terdiri dari Hangul, misalnya:
함수,만약,반복,변수,출력, dan lain-lain - Dengan menerapkan sistem aksara ilmiah Hangul ke dalam bahasa pemrograman, proyek ini bertujuan menggabungkan keindahan linguistik dan presisi teknis
Fitur utama
- Dukungan kata kunci dan identifier Hangul: nama variabel, fungsi, struct, dan lainnya dapat ditulis dalam Hangul
- Sistem tipe statis: menyediakan 5 tipe dasar yaitu
정수,실수,문자열,불,없음 - Mode kompilasi dan interpreter: LLVM IR → clang → pembuatan biner atau eksekusi langsung
- REPL dan server LSP: mendukung eksekusi interaktif dan code completion melalui perintah
hgl repl,hgl lsp - Fitur bawaan
- Array, struct, closure, pattern matching, exception handling, generic
- File I/O, JSON, HTTP, regex, tanggal/waktu, system call
- String berformat, hash map, fungsi matematika bawaan
- Menyertakan 18 program contoh: Hello World, pemanggilan HTTP API, dan lainnya
Instalasi dan eksekusi
- Komponen wajib: Rust(1.70+), clang
- Langkah instalasi
git clone https://github.com/xodn348/han.gitcd han && cargo install --path .
- Menyediakan ekstensi VS Code: syntax highlighting dan dukungan LSP
- Perintah CLI
hgl interpret <file.hgl>— menjalankan interpreterhgl build <file.hgl>— mengompilasi biner nativehgl run <file.hgl>— langsung menjalankan setelah kompilasihgl repl— mode interaktifhgl lsp— menjalankan server LSP
Status implementasi saat ini
- Fitur yang berfungsi penuh
- Tipe data, alur kontrol, fungsi, string, array, hash map, struct, penanganan error, pemeriksaan tipe
- JSON, HTTP, regex, tanggal/waktu, sistem, file I/O, fungsi matematika, modul, generic
- Fitur yang diimplementasikan sebagian
- Saat
hgl build, code generation untuk closure, string, dan method array masih belum selesai
- Saat
- Fitur yang belum diimplementasikan
- Null safety (tidak ada tipe
Option), pemrosesan asinkron/paralel, garbage collection, optimisasi tail recursion
- Null safety (tidak ada tipe
Hangul dan pemrograman
- Hangul adalah sistem aksara ilmiah yang merepresentasikan struktur fonologis secara visual, diciptakan oleh Raja Sejong pada tahun 1443
- Han merefleksikan kejernihan struktural Hangul tersebut ke dalam sintaks kode
- Secara global, lebih dari 16 juta orang sedang mempelajari bahasa Korea, dan Han menyediakan sarana belajar Hangul melalui coding
- Contoh kata kunci
함수(function),만약(if),반복(for),반환(return),변수(variable),출력(print), dan lain-lain
Desain dan struktur
- Pipeline kompiler berbasis Rust
- Lexer → Parser → AST → Interpreter / CodeGen → LLVM IR → clang → Binary
- Struktur proyek
src/— kode inti kompiler dan interpretereditors/vscode/— ekstensi VS Code- Mencakup
examples/,spec/,tests/
- Alasan pemilihan desain
- Menggunakan pembuatan IR berbasis teks alih-alih LLVM C API untuk menyederhanakan build
- Interpreter berfokus pada eksekusi cepat, kompiler berfokus pada performa
- Pattern matching dan memory safety Rust cocok untuk implementasi bahasa
Pengujian dan lisensi
- Menjalankan 46 pengujian dengan
cargo test(41 unit, 5 integrasi) - Dirilis dengan lisensi MIT
Makna kultural
- Han adalah bahasa eksperimental yang menggabungkan keindahan Hangul dan presisi pemrograman
- Menawarkan pendekatan baru yang meruntuhkan batas antara bahasa dan kode bagi pembelajar bahasa Korea maupun developer
12 komentar
Berkat ini saya mendapat informasi yang bermanfaat. GeekNews yang memilihkan kabar-kabar penting adalah kesenangan yang membuat saya berkunjung setiap hari. Saya sendiri saat ini sedang mengembangkan bahasa pemrograman berbahasa Korea, jadi saya memandang sangat positif upaya seperti ini terus berlanjut.
Sebagai seseorang yang telah lama tinggal di luar negeri sambil menyaksikan perubahan di Korea, saya selalu merasa prihatin melihat bahasa Inggris meresap secara berlebihan ke dalam kehidupan sehari-hari dan industri secara umum. Dialek Pangyo, nama apartemen yang sulit dipahami, menu ganjil seperti MSGR, dan papan toko yang dipenuhi bahasa Inggris tampak seperti menggerus daya hidup alami bahasa kita. Walaupun pendidikan dini telah menurunkan hambatan terhadap bahasa Inggris, sifat intuitif yang diberikan bahasa ibu tidak tergantikan. Seperti halnya papan beraksara Korea langsung mencolok di mata saat berada di luar negeri, otak kita menghabiskan energi paling sedikit saat memproses bahasa ibu.
print("Hello, world!");
keluarkan "Halo!"
Yang mana terasa lebih langsung tertangkap oleh mata?
AI memang sedang meruntuhkan hambatan bahasa, tetapi penelitian bahasa pemrograman berbahasa Korea adalah upaya untuk menghapus 'lapisan terjemahan' yang tidak perlu dari sistem berpikir kita demi memaksimalkan efisiensi otak. Wajar saja jika
keluarkanterasa lebih intuitif daripadaprint. Karena logika universalitas atau pasar kerja, memang sulit untuk segera menjadi arus utama, tetapi saya berharap di masa depan akan lahir lebih banyak bahasa Korea yang semakin matang dan beragam untuk memperkaya ekosistem.Dalam Hangul, ya... saya tak bisa menghentikan hasrat untuk merusaknya.
Ini mengingatkan saya pada proyek Seed.
Sepertinya beliau sudah lama berkecimpung di pekerjaan akuntansi, bukan pengembangan, tapi bisa membuat compiler dan menerima lebih dari 100 bintang di GitHub..
Benar-benar sudah datang era AI.
Memikirkan menulis kode dengan
비동기-대기alih-alih async-await memang terasa lebih nyaman.Yang penting untuk bahasa pemrograman itu adalah sifat serbagunanya..
Lucu juga ya, reaksi Hacker News cukup ramah wkwk
Wah, keren sekali
Halo, pagi yang kuat dan bersemangat!
Wow
Wah, senang juga melihat hal seperti ini di Hacker News. Terima kasih, Raja Sejong.
Komentar Hacker News
Jika tertarik dengan bahasa pemrograman berbahasa Korea, saya merekomendasikan bahasa fungsional ‘Nuri’
Tautan GitHub Nuri
Ini bukan sekadar menerjemahkan kata kunci, tetapi benar-benar bisa mencerminkan struktur tata bahasa Korea ke dalam kode
Misalnya, jika menulis “membagi 10 dengan 5 lalu mencetaknya”, hasilnya akan menampilkan “2”
Ada juga bahasa lain bernama ‘Yaksok’. Contoh kode permainan 2048 seluruhnya ditulis dalam bahasa Korea
Menurut saya ini ide yang sangat keren. Hangul adalah sistem tulisan yang dirancang secara logis, jadi bisa dipelajari dalam setengah hari
Jawaban StackExchange untuk belajar Hangul
Hangul jumlah hurufnya mirip dengan alfabet Inggris sehingga cepat dipelajari, tetapi menghafal kosakatanya sedikit lebih sulit. Karena itu saya memakai Anki bersama aplikasi belajar bergaya gim yang saya buat sendiri
Sebagai penutur asli bahasa Korea, saya ingin berbagi pendapat singkat
Kata benda diterjemahkan dengan alami, tetapi kata kerja imperatif dalam bahasa Inggris perlu perhatian saat dipindahkan ke bahasa Korea. Misalnya “find” bisa diubah menjadi ‘chatda’, ‘chatgi’, ‘chajeum’, dan sebagainya, tetapi bisa terasa janggal tergantung konteks
Bentuk jamak juga menjadi masalah. Bahasa Inggris membedakan tunggal dan jamak dengan jelas, tetapi bahasa Korea tidak. Jika jamak dinyatakan secara eksplisit seperti “kata-kata”, justru sering terdengar tidak alami
Jika bukan sekadar mengganti kata kunci, melainkan juga mempertimbangkan perbedaan struktural antara bahasa Inggris dan Korea, proyek ini tampaknya bisa menjadi jauh lebih kuat
Saat kuliah dan belajar ilmu komputer, saya merasa fakta bahwa bahasa pemrograman berbasis bahasa Inggris merupakan keuntungan besar bagi penutur bahasa Inggris
Teman-teman mahasiswa internasional saya kesulitan lebih besar untuk belajar karena tidak terbiasa dengan bahasa Inggris. Karena itu candaan bahwa pemrograman seharusnya dihitung sebagai kredit bahasa asing terasa cukup lucu
Yang benar-benar sulit adalah mempelajari pemrogramannya sendiri. Namun, fakta bahwa topik tingkat lanjut dan dokumentasi hanya tersedia dalam bahasa Inggris memang menjadi hambatan besar bagi pelajar ESL
Saya tidak tahu bahasa Korea, tetapi berkat utas ini saya belajar banyak wawasan linguistik
Rancangan fonologis Hangul (tautan),
karakteristik bentuk jamak dalam bahasa Korea (tautan),
masalah kompresi token bahasa Korea pada tokenizer LLM (tautan),
dan ritme tata letak keyboard Hangul yang memisahkan konsonan dan vokal menurut susunan tangan (tautan) terasa sangat menarik
Saya rasa upaya seperti ini bisa menyebabkan fragmentasi bahasa.
Jika semua orang membuat bahasa pemrograman dalam bahasanya masing-masing, kolaborasi atau perekrutan akan menjadi lebih sulit, dan berbagi teknologi juga akan susah
Secara pribadi saya merasa jika seluruh dunia memakai satu bahasa, perang dan kesalahpahaman akan berkurang. Tentu keberagaman budaya akan berkurang, tetapi efisiensi komunikasi akan meningkat
Pendekatan yang sekadar menerjemahkan kata kunci terasa menarik
Seperti dalam contoh kode
Jika ditulis seperti ini, kode bisa menjadi lebih ringkas. Namun, kelebihan pembedaan huruf besar-kecil akan hilang
Saya pernah mendengar bahwa terlepas dari kepadatan bahasa, kecepatan pemrosesan informasi kurang lebih serupa
Tulisan blog terkait
Namun tidak berhasil. Sebab kebanyakan lingkungan komputer sudah menuntut input huruf Latin, dan menghafal beberapa kata kunci juga tidak sulit
Bahkan di era LLM, karena sebagian besar data pelatihan tetap berupa kode berbahasa Inggris, kemungkinan besar kode berbahasa Inggris masih akan lebih efisien
Proyek yang keren. Saya pernah kuliah di universitas Korea sekitar 190 tahun yang lalu(!), dan sekarang hanya bisa bahasa Korea dasar, tetapi saat melihat contoh kodenya saya merasa seperti mempelajari kata-kata baru
Saya sangat menyukai proyek ini. Saat melihat sampel kode dan tidak memahami apa pun, saya jadi bisa berempati dengan seperti apa rasanya bagi pengembang non-Inggris ketika pertama kali melihat bahasa berbasis bahasa Inggris
Lisp tetap saja negeri tanda kurung :-)
Ini mengingatkan saya pada Easy Programming Language dari Tiongkok
Tautan wiki EPL
Sekitar 15 tahun lalu, banyak anak di Tiongkok pertama kali belajar pemrograman lewat bahasa ini