Cara Membuat Bahasa Pemrograman: 15 Langkah (dengan Gambar)

Daftar Isi:

Cara Membuat Bahasa Pemrograman: 15 Langkah (dengan Gambar)
Cara Membuat Bahasa Pemrograman: 15 Langkah (dengan Gambar)

Video: Cara Membuat Bahasa Pemrograman: 15 Langkah (dengan Gambar)

Video: Cara Membuat Bahasa Pemrograman: 15 Langkah (dengan Gambar)
Video: Tutorial Membersihkan Kipas CPU Komputer 2024, Mungkin
Anonim

Banyak orang mengalami kesulitan atau frustrasi dengan bahasa pemrograman yang mereka gunakan setiap hari. Beberapa ingin hal-hal ditangani lebih abstrak, sementara yang lain tidak suka mengimplementasikan fitur yang mereka inginkan 'standar'. Apakah Anda seorang profesional TI atau hanya penggemar, sering kali Anda mungkin ingin membuat bahasa pemrograman baru.

Langkah

Buat Bahasa Pemrograman Langkah 1
Buat Bahasa Pemrograman Langkah 1

Langkah 1. Kenali teknologinya

Anda tidak dapat membuat bahasa pemrograman jika Anda tidak tahu cara menggunakan komputer.

Buat Bahasa Pemrograman Langkah 2
Buat Bahasa Pemrograman Langkah 2

Langkah 2. Menjadi akrab dengan terminologi

Penulis kompiler sering menggunakan istilah yang tidak dikenal. Bacalah kompiler sebelum melanjutkan. Pastikan untuk mengetahui semua yang perlu Anda ketahui.

Buat Bahasa Pemrograman Langkah 3
Buat Bahasa Pemrograman Langkah 3

Langkah 3. Putuskan masalah apa yang sedang dipecahkan oleh bahasa Anda

Apakah itu mengatasi masalah khusus domain, atau apakah itu bahasa tujuan umum?

Buat Bahasa Pemrograman Langkah 4
Buat Bahasa Pemrograman Langkah 4

Langkah 4. Pikirkan tentang semantik bahasa Anda dan konsepnya

  • Apakah Anda akan mengizinkan akses penunjuk langsung atau tidak?
  • Apa tipe data bahasa Anda?
  • Apakah itu bahasa statis atau dinamis?
  • Apa model memori Anda? Apakah Anda akan menggunakan pengumpul sampah atau manajemen memori manual? (Jika Anda menggunakan pengumpul sampah, bersiaplah untuk menulisnya atau sesuaikan yang sudah ada dengan bahasa Anda.)
  • Bagaimana menangani konkurensi? Apakah Anda akan menggunakan model threading/locking sederhana atau sesuatu yang lebih kompleks seperti Linda atau model aktor? (Karena saat ini komputer memiliki banyak inti.)
  • Apakah ada fungsi primitif yang disematkan dalam bahasa atau akankah semuanya berasal dari perpustakaan?
  • Apa paradigma atau paradigma bahasa Anda? Fungsional? Berorientasi pada objek? Prototipe (seperti JavaScript)? Berorientasi pada aspek? Berorientasi pada templat? Atau sesuatu yang sama sekali baru?
  • Bagaimana bahasa Anda akan berinteraksi dengan perpustakaan dan bahasa yang ada (terutama C)? Poin ini penting jika Anda membuat bahasa khusus domain.
  • Akhirnya, beberapa jawaban atas pertanyaan-pertanyaan ini akan dijawab oleh langkah kedua dan akan membantu Anda menjawab langkah berikutnya.
Buat Bahasa Pemrograman Langkah 5
Buat Bahasa Pemrograman Langkah 5

Langkah 5. Pikirkan beberapa tugas spesifik yang ingin dilakukan seseorang dengan bahasa Anda

Misalnya, 'mereka mungkin ingin mengarahkan robot untuk mengikuti garis' atau 'mereka mungkin ingin membuat program desktop yang relatif portabel di dalamnya' atau 'mereka mungkin ingin membuat aplikasi web dengannya'.

Buat Bahasa Pemrograman Langkah 6
Buat Bahasa Pemrograman Langkah 6

Langkah 6. Bereksperimenlah dengan ide sintaks (teks bahasa) untuk contoh di atas

Berhati-hatilah untuk menjaga bahasa Anda dalam kategori bahasa bebas konteks atau sesuatu di dalamnya. Generator parser Anda dan Anda akan menghargainya nanti

Buat Bahasa Pemrograman Langkah 7
Buat Bahasa Pemrograman Langkah 7

Langkah 7. Tulis tata bahasa formal untuk sintaks

Buat Bahasa Pemrograman Langkah 8
Buat Bahasa Pemrograman Langkah 8

Langkah 8. Putuskan apakah bahasa akan diinterpretasikan atau dikompilasi

Artinya, di dunia yang ditafsirkan, pengguna Anda biasanya akan mengedit program Anda di editor, dan menjalankannya langsung di penerjemah; sementara di dunia yang dikompilasi, pengguna Anda akan mengedit program Anda, mengompilasinya, menyimpan hasil yang dapat dieksekusi di suatu tempat dan menjalankannya.

Buat Bahasa Pemrograman Langkah 9
Buat Bahasa Pemrograman Langkah 9

Langkah 9. Tulis pemindai dan pengurai ujung depan atau temukan alat yang membantu Anda dalam hal ini

Juga, pikirkan tentang bagaimana kompiler/penerjemah Anda akan memperingatkan pengguna Anda tentang program yang salah dan kesalahan sintaksis

Buat Bahasa Pemrograman Langkah 10
Buat Bahasa Pemrograman Langkah 10

Langkah 10. Gunakan informasi parser untuk menulis kode objek atau representasi perantara

Minta parser membuat AST, lalu buat kode objek Anda dari AST menggunakan tiga kode alamat atau kakaknya SSA, lalu buat tabel simbol untuk mendefinisikan fungsi, variabel global, dll.

Juga, tergantung pada bahasa Anda, Anda mungkin juga ingin membuat tabel penunjuk virtual atau tabel informasi untuk kelas Anda (untuk mendukung refleksi atau RTTI)

Buat Bahasa Pemrograman Langkah 11
Buat Bahasa Pemrograman Langkah 11

Langkah 11. Tulis eksekutor atau pembuat kode yang akan mengikat semuanya bersama-sama

Buat Bahasa Pemrograman Langkah 12
Buat Bahasa Pemrograman Langkah 12

Langkah 12. Tulis banyak program pengujian untuk menguji bahasa

Anda ingin membuat program yang menekankan beban tata bahasa formal Anda untuk melihat bahwa kompiler Anda menerima semua yang ada di dalam definisi Anda dan menolak semua yang ada di luarnya

Buat Bahasa Pemrograman Langkah 13
Buat Bahasa Pemrograman Langkah 13

Langkah 13. Pertimbangkan bagaimana pengguna akan men-debug program mereka sendiri

Buat Bahasa Pemrograman Langkah 14
Buat Bahasa Pemrograman Langkah 14

Langkah 14. Jika bahasa Anda menggunakan pustaka standar, Anda akan ingin menulisnya

Bersama dengan pengumpul sampah atau fitur runtime lainnya jika Anda membutuhkannya.

Khususnya, jika Anda menulis kompiler, Anda akan memerlukan kode yang akan dijalankan oleh sistem operasi untuk mulai menjalankan kode pengguna (misalnya, mengalokasikan semua variabel global)

Buat Bahasa Pemrograman Langkah 15
Buat Bahasa Pemrograman Langkah 15

Langkah 15. Publikasikan bahasa Anda, beserta spesifikasinya dan beberapa contoh apa yang dapat Anda lakukan di dalamnya

Jangan lupa untuk mendokumentasikan bagaimana Anda dapat berintegrasi dengan pustaka, bahasa, dan cara menggunakan fitur runtime dan/atau pustaka standar yang ada

Video - Dengan menggunakan layanan ini, beberapa informasi dapat dibagikan dengan YouTube

Tips

  • Mulailah dengan mendesain bahasa Anda dan jangan menulis kode apa pun, sampai Anda puas dan telah menjawab semua (atau sebagian besar) pertanyaan atau masalah yang terkait dengan desain Anda karena lebih mudah untuk mengubah desain lebih awal daripada nanti.
  • Ketahui platform target Anda (sistem operasi dan pustaka) untuk kompiler/penerjemah Anda, lagi pula, Anda akan menggunakannya dan memanipulasinya.

Peringatan

  • Pikirkan apakah Anda benar-benar membutuhkan bahasa baru, dan bahasa baru apa yang tidak dimiliki bahasa lain (Mungkin kombinasi fitur atau fitur tunggal).
  • Menulis bahasa itu sulit jika Anda tidak tahu apa yang Anda lakukan. Butuh banyak latihan juga.
  • Bersiaplah untuk meluangkan waktu dalam desain bahasa, karena Anda tidak akan memiliki kesempatan untuk mengubah bahasa Anda setelah Anda menulis kompiler dan melewati titik desain.
  • Jangan mencoba mendasarkan fitur Anda ke dalam gabungan beberapa bahasa, seperti mengatakan bahwa bahasa Anda akan menjadi gabungan bahasa X, bahasa Y, dan bahasa Z. Sejarah telah menunjukkan kepada kita bahwa bahasa yang dibuat sedemikian rupa tidak akan pernah berhasil, atau semua orang akan memprogram PL/1 alih-alih sesuatu berdasarkan C.

Direkomendasikan: