Bahasa pemrograman kol yang ditulis dalam bahasa Korea
(github.com/smc0478)Halo.
Saya membuat bahasa pemrograman yang ditulis dalam bahasa Korea.
Alasan pembuatan
- Setelah melihat bahasa pemrograman yang ditulis dengan Hangul seperti Umjeng dan Aheui, saya ingin mencoba coding secara alami dalam bahasa Korea.
- Ini adalah pembelajaran untuk nantinya membuat bahasa yang benar-benar matang.
Instalasi
pip install korean-lang
Jenis sintaks
Saya membuat sintaks yang diperkenalkan di bawah ini.
Untuk detail lebih lengkap, silakan lihat tautan GitHub saya.
Output
"annyeong sesang!"을 출력한다.
Variabel
- Nama variabel terdiri dari huruf Korea (hal seperti giyeok tidak diperbolehkan),
_, dan angka. - Variabel dapat berisi bilangan bulat, string, array, dictionary, dan sebagainya.
jeongsuneun 1i doenda.
sosuneun 3.141592ga doenda.
ireumeun "Hong Gildong"i doenda.
chamgapseun chami doenda.
bingapseun eopseumi doenda.
sutja_baeyeoreun [1 daeum 2 daeum 3 daeum 4]i doenda.
saram_jeongboneun {"ireum"eun "Kim Cheolsu" tto "nai"neun 25}i doenda.
Kondisional
manyak ... imyeon/myeon,anigo manyak ... imyeon/myeon,animyeon ... imyeon/myeonbekerja mirip dengan if, else if, else dan menjalankandaeum ... mundaneul silhaenghanda..
nai-neun ipryeokhan geoseul jeongsuro_byeonhwanhan geosi doenda.
manyak naiga 18boda keugeona gatdamyeon daeum
"seonginimnida."reul chulryeokhanda.
mundaneul silhaenghanda.
anigo manyak naiga 13boda keuda tto-neun naiga 13rang gatdamyeon daeum
"cheongsonyeonimnida."reul chulryeokhanda.
mundaneul silhaenghanda.
animyeon daeum
"eoriniimnida."reul chulryeokhanda.
mundaneul silhaenghanda
Perulangan
gyesok ... in donganmirip denganwhiledan menjalankandaeum ... mundaneul banbokhanda.....e inneun gak hangmokdeureul ...ro gajyeowaadalahfor ... in ...dan menjalankandaeum ... mundaneul banbokhanda..
sutjaneun 0i doenda.
gyesok sutjaga 5boda jakdain dongan daeum
sutjareul chulryeokhanda.
sutjaneun sutjawa 1eul deohan geosi doenda.
mundaneul banbokhanda.
baeyeoreun [10 daeum 20 daeum 30]i doenda.
baeyeore inneun gak hangmokdeureul sutjaro gajyeowa daeum
sutjareul chulryeokhanda.
mundaneul banbokhanda.
Fungsi
hamsu ...neun (...gwa ...ro)adalah bagian untuk mendefinisikan fungsi, dandaeum ... mundaneul silhaenghanda.adalah bagian eksekusinya.- Fungsi dipanggil dalam bentuk seperti
...gwa/wa ...eul/reul ... ro/euro ...handa./da..
hamsu paektorieoreul_guhandaneun garo daeum
manyak gaga 0irang gatdamyeon daeum
gyeolgwa gapseun 1i doenda. geurigo kkeutnanda.
mundaneul silhaenghanda.
gyeolgwa gapseun gawa ((gareul 1ro ppaen geot)euro paektorieoreul_guhan geot)eul gophan geosi doenda.
geurigo kkeutnanda.
mundaneul silhaenghanda.
4ro paektorieoreul_guhan geoseul chulryeokhanda.
Struct
- Struct mirip dengan
structdi bahasa C.
gujo sarameun daeum
byeonsu ireumi itda.
byeonsu naiga itda.
gapseul gajinda.
Cheolsuneun sarami doenda.
Cheolsuui ireumeun "Cheolsuda"ga doenda.
Cheolsuui ireumeul chulryeokhanda.
Kelas
yuhyeongadalah kelas di bahasa lain.
yuhyeong dongmureun daeum
byeonsu ireumi itda.
hamsu sorireul_naendaneun daeum
dongmurui ireumgwa "i(ga) sorireul naemnida."reul deohan geoseul chulryeokhanda.
mundaneul silhaenghanda.
gapseul gajinda.
gangajineun dongmuri doenda.
gangajiui ireumeun "Badugi"ga doenda.
gangaji aneseo sorireul_naenda.
Hal yang disayangkan
- Saya merasa sayang karena ada sintaks yang terasa canggung dan tidak natural dalam bahasa Korea, seperti pada array.
- Saya menerjemahkan class ke dalam bahasa Korea sebagai
yuhyeong, tetapi rasanya mungkin ada kata yang lebih baik, jadi jika nanti menemukannya saya ingin menggantinya.
Penutup
Ini tidak terlalu berguna, dan kode internalnya juga berantakan karena saya menulisnya dengan cepat dalam waktu dua minggu, tetapi semoga Anda menikmatinya.
Terima kasih sudah melihatnya.
29 komentar
Benar-benar terlihat sangat keren! Semangat.
Terima kasih.
Upaya untuk mengadopsi bahasa Korea sebagai bahasa pemrograman terus bermunculan di tingkat komunitas, dan ini mengingatkan saya pada hal itu jadi saya lampirkan tautannya. 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%B8%EC%96%B4)
Ternyata setelah dibuat dan dicari-cari, ada banyak percobaan yang menarik.
Salah satu yang paling berkesan adalah tautan di bawah ini; angka pun diekspresikan dalam Hangul, jadi terasa menarik.
https://github.com/recu3125/malC_lang
Sepertinya ini juga akan bagus sebagai alat pendidikan bagi orang-orang yang tidak terbiasa dengan bahasa Inggris dan matematika.
Mampu menjelaskan pemikiran komputasional dengan baik dalam Hangul tanpa simbol seperti "if, for, while, =" tampaknya merupakan keunggulan pendidikan yang sangat besar.
Menurut saya ini ide yang sangat bagus!
Terima kasih. Memang, saat menggunakan bahasa Korea, sepertinya ada bagian-bagian yang lebih mudah dibaca dibandingkan bahasa Inggris.
Sepertinya untuk array sebenarnya tidak perlu menggunakan delimiter
berikutnya, dan bisa saja memakai koma. Selain itu, saya penasaran apakah array dirancang sebagai struktur yang juga bisa mencakup struct/class, array lain, atau dictionary.Saat itu tujuannya benar-benar hanya memakai Hangul dan sebisa mungkin menghindari bahasa Inggris serta tanda baca, jadi memang tidak dipakai, tetapi memang terasa akan lebih alami jika koma dimasukkan. Nanti akan saya coba tambahkan.
Dan array dirancang sebagai struktur yang bisa menampung data dari semua tipe. Kalau tidak bisa, itu bug. hiks hiks
Menarik.
Terima kasih.
Menarik. Saya jadi mendapat inspirasi bagus; sepertinya harus saya coba sebagai side project.
Baik. Saya menantikannya.
Wow .. saya mendukungnya
Terima kasih.
Bagus juga karena memakai karakter khusus seperti
+-=$&lebih sedikit dibanding bahasa lain. Soalnya, di keyboard perangkat genggam kecil, memasukkan karakter khusus itu sulit.Oh, itu memang kelebihan yang bagus. Terima kasih.
Sangat bagus...
Terima kasih.
Mungkin ini soal preferensi pribadi, tetapi saya rasa
이다akan lebih baik daripada된다Awalnya, penugasan variabel adalah
ganeun ~ida.. Namun saat pengembangan, karena "ida/da" juga digunakan untuk pemanggilan fungsi sehingga parsing ekspresi menjadi ambigu, itu diubah menjadi "doenda". Nanti sepertinya saya akan mencoba agar bisa diparse dengan "ida".Benar juga, sepertinya pemanggilan fungsinya harus berupa “~nda” ya wkwk
Menarik.
Terima kasih.
Saya jadi teringat masa-masa dulu saat sering membuat hal serupa di kelas compiler di universitas.
Saya belum mempelajarinya, tapi saya menantikannya.
Oh, melihat nama file lexer dan parser, sepertinya Anda pernah belajar tentang compiler, bukan?
Ah, saya masih mahasiswa tingkat 3 jadi belum mengambil mata kuliah compiler, dan ini juga saya buat sambil belajar sendiri. Selain itu, karena ingin cepat selesai, saya belajar dan mengembangkannya dengan cara yang agak asal.
Percobaan yang keren!! Menarik sekali hehe
Rasanya Anda benar-benar banyak memikirkan cara agar ekspresinya terdengar alami.
Terima kasih.