Unduh PDFUnduh PDF

Banyak orang yang mengalami kesulitan merasa frustasi dengan bahasa pemrograman yang mereka gunakan setiap hari. Beberapa ingin agar persoalan diatasi secara lebih abstrak, sedangkan yang lainnya tidak menyukai fitur yang mereka harapkan bisa lebih 'standar'. Apakah Anda seorang profesional di bidang IT atau hanya sekadar hobi, sering kali Anda merasakan keinginan untuk membuat bahasa pemrograman yang baru.

Langkah

Unduh PDF
  1. 1
    Kenali terminologi yang digunakan. Penulis kompiler sering menggunakan terminologi yang tidak umum. Baca semua kompiler sebelum melanjutkan ke tahap selanjutnya. Pastikan Anda telah mengetahui semua yang Anda perlukan.
  2. 2
    Putuskan apa permasalahan yang akan bahasa Anda atasi? Apakah bahasa Anda akan difokuskan pada masalah domain, ataukah bahasa pemrograman umum?
  3. 3
    Pikirkan tentang semantik yang akan dipakai oleh bahasa Anda dan konsep penggunaannya.
    • Apakah Anda mengizinkan penggunaan akses pointer langsung atau tidak?
    • Apa tipe data yang akan bahasa Anda gunakan?
    • Apakah bahasa tersebut akan berbentuk bahasa statis atau dinamis?
    • Apa model memori yang akan digunakan? Apakah Anda akan menggunakan pengumpul data otomatis (garbage collector) atau penyusun data manual? (Kalau Anda menggunakan garbage collector, siapkan contoh atau sesuaikan garbage collector yang sudah ada dengan bahasa pemrograman Anda).
    • Bagaimana mengatasi masalah konkurensi? Apakah Anda akan menggunakan metode threading sederhana/model locking atau sesuatu yang lebih kompleks seperti Linda atau Actor Model? (Karena komputer zaman sekarang sudah dilengkapi dengan multiple cores).
    • Apakah akan ada fungsi lama yang digunakan dalam bahasa pemrograman ini atau semuanya hanya akan berasal dari pustaka yang tersedia? (pustaka = kumpulan data, dokumentasi, template, kode awal, dll yang biasa digunakan sebagai pendukung dalam menulis kode pemrograman).
    • Apa paradigma yang akan dipakai oleh bahasa Anda? Fungsional? Berorientasi objek? Prototype (seperti JavaScript)? Beroritentasi Aspek? Berorientasi template atau sesuatu yang benar-benar baru?.
    • Bagaimana bahasa Anda akan berinteraksi dengan pustaka yang sudah ada dan dengan bahasa pemrograman lain (khususnya C)? Poin ini sangat penting jika Anda sedang membangun bahasa pemrograman yang berfokus pada domain.
    • Pada akhirnya, beberapa jawaban dari pertanyaan di atas akan dijawab oleh langkah kedua dan akan membantu Anda menjawab langkah selanjutnya.
  4. 4
    Pikirkan tentang hal yang diharapkan dapat diatasi dengan bahasa Anda. Contohnya, "Mereka ingin membuat sebuah robot mengikuti sebuah dialog" atau "Mereka ingin menciptakan sebuah program yang relatif portabel dalam sebuah desktop" atau "Mereka ingin menciptakan sebuah aplikasi web dengan bahasa pemrograman ini".
  5. 5
    Bereksperimen dengan sintaks (teks dalam bahasa pemrograman) untuk contoh-contoh diatas.
    • Berhati-hatilah supaya bahasa Anda tetap berada dalam kategori bahasa bebas konteks atau sejenisnya. Ciptakan program parsing dan Anda akan menghargainya dikemudian hari.
  6. 6
    Pakai tata bahasa yang formal untuk sintaks.
  7. 7
    Tentukan apakah bahasa tersebut akan diinterpretasi atau dikompilasi. Dengan metode interpretasi, pengguna Anda akan mengetik program Anda dalam sebuah editor dan menjalankannya secara langsung dengan interpreter, sedangkan dalam metode kompilasi, pengguna Anda akan mengedit program Anda, mengompilasinya dan menyimpan hasil yang bisa dieksekusi secara langsung dalam sebuah tempat dan menggunakannya.
  8. 8
    Buat scanner front-end dan program parsing atau cari tools yang akan membantumu dengan hal ini.
    • Dan pikirkan juga bagaimana kompiler/interpreternya dapat memberikan pesan kesalahan pada pengguna bila terjadi eror dalam program dan kesalahan pada sintaks.
  9. 9
    Gunakan informasi dari parser untuk menulis kode objek atau sebuah IR (Intermediate Representation: program yang menjadi penghubung antara sumber dan target bahasa pemrograman). Minta parser untuk menciptakan AST, kemudian ciptakan kode objek dari AST menggunakan TAC (Three Address Code) atau saudara tertuanya SSA, kemudian ciptakan tabel simbol untuk mendefenisikan fungsi-fungsi yang ada, variabel global, dll.
    • Dan juga, bergantung pada bahasa yang Anda buat, Anda juga mungkin ingin menciptakan tabel pointer virtual atau tabel informasi untuk kelas Anda (untuk mendukung refleksi atau RTTI).
  10. 10
    Buatlah sebuah eksekutor atau generator kode yang akan menyatukan semuanya.
  11. 11
    Buatlah banyak program percobaan untuk menguji coba bahasa pemrograman Anda.
    • Yang Anda inginkan adalah program yang menekankan beban tata bahasa formal Anda untuk melihat apakah kompiler Anda menerima apa yang ada dalam definisi Anda dan menolak semua yang di luar definisi.
  12. 12
    Pertimbangkan bagaimana pengguna dapat mendeteksi kesalahan pada program mereka sendiri.
  13. 13
    Jika bahasa pemrograman Anda menggunakan pustaka standar, Anda pasti ingin membuatnya. Beserta sebuah Garbage Collector atau fitur runtime lainnya jika diperlukan.
    • Khususnya, jika Anda menulis sebuah kompiler, Anda pasti akan memerlukan kode yang akan dieksekusi oleh sistem operasi untuk mulai menulis kode pengguna (contohnya, mengalokasikan semua variabel global).
  14. 14
    Publikasikan bahasa Anda, beserta spesifikasinya dan beberapa contoh dari apa yang bisa dilakukan dengan bahasa tersebut.
    • Jangan lupa untuk mendokumentasikan bagaimana kita bisa berintegrasi dengan pustaka yang telah ada sebelumnya, bahasa pemrograman lain dan bagaimana fitur runtime dan/atau pustaka standar.
    Iklan

Tips

  • Mulailah dengan merancang bahasa pemrograman Anda dan jangan menuliskan kode apa pun, sampai Anda puas dengan hasilnya dan telah mendapatkan jawaban dari semua (atau sebagian besar) pertanyaan atau permasalahan yang berkaitan dengan desain Anda, karena lebih mudah untuk mengubah desain jika kita berada di tahap awal daripada tahap lanjutan.
  • Bagaimanapun, ketahui target platform Anda (sistem operasi dan pustaka) untuk kompiler / interpreter, Anda akan menggunakan dan memanipulasinya.
Iklan

Peringatan

  • Pikirkan apakah Anda benar-benar memerlukan bahasa pemrograman yang baru, dan apakah bahasa Anda mempunyai sesuatu yang baru yang tidak dimiliki oleh bahasa lainnya (bisa berupa kombinasi fitur atau sebuah fitur saja).
  • Membuat sebuah bahasa itu adalah sesuatu yang sulit kalau Anda tidak ahli di bidang ini. Hal ini juga memerlukan banyak latihan.
  • Habiskan waktu yang cukup untuk perancangan desain, karena kamu tidak akan mempunyai kesempatan untuk merubah bahasanya begitu Anda mulai membuat kompiler dan melewati poin perancangan design.
  • Jangan mencoba untuk menjadikan penggabungan beberapa bahasa sebagai dasar dari fitur Anda, seperti mengatakan bahwa bahasa Anda akan menjadi penggabungan dari bahasa C, bahasa Y dan bahasa Z. Sejarah telah membuktikan pada kita bahwa bahasa yang dibuat berdasarkan hal seperti ini tidak pernah mencapai kesuksesan, atau semua orang akan menggunakan pemrograman PL/1 daripada sesuatu yang berbasis bahasa pemrograman C.
Iklan

Hal yang Anda Butuhkan

  • Kesabaran.
  • Pengetahuan tentang fitur dan desain bahasa (Anda mungkin ingin membaca Konsep Desain Bahasa Pemrograman oleh David A. Watt).
  • Pengetahuan tentang teori compiler (karena Anda akan membuat compiler / interpreter untuk bahasa Anda dan pengimplementasiannya akan menjadi referensi untuk imprementasi).
  • Kegunaan bahasa Anda (ingat bahwa beberapa bahasa yang paling banyak digunakan seperti C atau Lisp diciptakan untuk melakukan sesuatu yang spesifik seperti menciptakan Unix atau melakukan komputasi simbolik).

Tentang How.com.vn ini

How.com.vn adalah suatu "wiki", yang berarti ada banyak artikel kami yang disusun oleh lebih dari satu orang. Untuk membuat artikel ini, 29 penyusun, beberapa di antaranya anonim, menyunting dan memperbaiki dari waktu ke waktu. Artikel ini telah dilihat 11.132 kali.
Daftar kategori: Perangkat Lunak
Halaman ini telah diakses sebanyak 11.132 kali.

Apakah artikel ini membantu Anda?

⚠️ Disclaimer:

Content from Wiki How Bahasa Indonesia language website. Text is available under the Creative Commons Attribution-Share Alike License; additional terms may apply.
Wiki How does not encourage the violation of any laws, and cannot be responsible for any violations of such laws, should you link to this domain, or use, reproduce, or republish the information contained herein.

Notices:
  • - A few of these subjects are frequently censored by educational, governmental, corporate, parental and other filtering schemes.
  • - Some articles may contain names, images, artworks or descriptions of events that some cultures restrict access to
  • - Please note: Wiki How does not give you opinion about the law, or advice about medical. If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.
  • - Readers should not judge the importance of topics based on their coverage on Wiki How, nor think a topic is important just because it is the subject of a Wiki article.

Iklan