Cara Menulis Penterjemah

Isi kandungan:

Cara Menulis Penterjemah
Cara Menulis Penterjemah

Video: Cara Menulis Penterjemah

Video: Cara Menulis Penterjemah
Video: Cara Menulis Terjemah Kitab Kuning, Tidak Perlu Capek Ngetik 2024, Mungkin
Anonim

Terdapat banyak bahasa pengaturcaraan yang mempunyai keunikan tersendiri. Tetapi agar program yang ditulis di dalamnya dapat berfungsi, anda perlu menyiarkannya. Kadang kala bahasa pengaturcaraan dikembangkan untuk keperluan mereka sendiri (sebagai contoh, sokongan untuk automasi dalam aplikasi besar) dan kemudian menjadi mustahak untuk menulis penterjemah.

Cara menulis penterjemah
Cara menulis penterjemah

Perlu

  • - tatabahasa semula jadi atau BNF bahasa sumber;
  • - alat pembangunan.

Arahan

Langkah 1

Siapkan data untuk analisis leksikal teks dalam bahasa sumber. Senaraikan semua token dalam bahasa. Pecahnya menjadi beberapa kategori (kata kunci, literal angka dan rentetan, pengecam, ruang kosong, tanda baca, dll.).

Langkah 2

Laksanakan modul atau lexer. Pada input, ia akan menerima aliran data "mentah", dan pada keluarannya akan disusun senarai elemen yang mengandungi token dan pengenal jenisnya dalam urutan di mana ia berlaku dalam teks sumber. Program penghuraian boleh menjadi agak mudah " pengimbas tahap satu. Melaksanakan pemulihan ralat tidak masuk akal. Watak yang tidak sah harus dianggap sebagai kesalahan.

Langkah 3

Sediakan data untuk dihuraikan. Berdasarkan tatabahasa semula jadi atau BNF dari bahasa sumber, buat tatabahasa LL1nya. Berdasarkan tatabahasa jenis ini, buatlah skema penghuraian dari segi kategori token yang sah dan konstruk semantik bahasa.

Langkah 4

Laksanakan modul atau penghurai. Pada input, ia harus menerima senarai token yang disiapkan pada peringkat penguraian leksikal. Kembangkan algoritma pemeriksaan sintaks rekursif menggunakan skema yang anda buat pada langkah ketiga. Sekiranya perlu, laksanakan mekanisme pemulihan ralat. Tambahkan fungsi ke algoritma penghuraian untuk membina pokok untuk mengira fungsi, kaedah kelas. Dengan struktur algoritma penghuraian yang betul, fungsi ini dapat dilaksanakan tanpa masalah. Ini mengelakkan keperluan untuk melaksanakannya sebagai modul yang berasingan. Struktur data yang dibuat harus mengandungi senarai arahan dalam bentuk urutan "rata" (ungkapan aritmetik diperluas ke bentuk postfix yang sesuai untuk pengiraan pada mesin tumpukan, gelung diubah menjadi kombinasi urutan arahan komputasi dan lompatan bersyarat atau tanpa syarat, dll.).

Langkah 5

Buat modul pengoptimuman jika diperlukan. Ia harus memproses dan mengubah struktur data yang disediakan pada langkah sebelumnya. Algoritma dan kaedah pengoptimuman sangat pelbagai.

Langkah 6

Kembangkan penjana kod. Semasa memproses struktur yang disiapkan pada langkah keempat atau kelima, ia hanya perlu mengubah urutan arahan abstrak menjadi petunjuk pelaksanaan pada platform tertentu.

Langkah 7

Buat program pengikat (linker) jika diperlukan. Ia harus membentuk modul yang dapat dilaksanakan dengan memilih lokasi segmen kod, mengira alamat label, dll.

Disyorkan: