Apa itu Desain Kompiler? Jenis, Alat Konstruksi, Contoh

Apa itu Kompiler?

Kompiler adalah program komputer yang membantu Anda mengubah kode sumber yang ditulis dalam bahasa tingkat tinggi menjadi bahasa mesin tingkat rendah. Ini menerjemahkan kode yang ditulis dalam satu bahasa pemrograman ke bahasa lain tanpa mengubah arti kode tersebut. Kompiler juga membuat kode akhir menjadi efisien, yang dioptimalkan untuk waktu eksekusi dan ruang memori.

Proses kompilasi mencakup mekanisme penerjemahan dasar dan deteksi kesalahan. Proses kompiler melewati analisis leksikal, sintaksis, dan semantik di bagian depan dan pembuatan kode serta pengoptimalan di bagian belakang.

Penyusun

Fitur Kompiler

  • Kebenaran
  • Kecepatan kompilasi
  • Pertahankan arti kode yang benar
  • Kecepatan kode target
  • Kenali konstruksi program legal dan ilegal
  • Pelaporan/penanganan kesalahan yang baik
  • Bantuan debugging kode

Jenis Kompilator

Berikut ini adalah berbagai jenis Kompiler:

  • Kompiler Lulus Tunggal
  • Kompiler Dua Lulus
  • Kompiler Multipass

Kompiler Lulus Tunggal

Kompiler Lulus Tunggal
Kompiler Lulus Tunggal

Dalam kode sumber Kompiler single pass langsung diubah menjadi kode mesin. Misalnya bahasa Pascal.

Kompiler Dua Lulus

Kompiler Dua Lulus
Kompiler Dua Lulus

Kompiler Two Pass dibagi menjadi dua bagian, yaitu

  1. Paling depan: Ini memetakan kode hukum ke dalam Intermediate Representation (IR).
  2. Bagian belakang: Ini memetakan IR ke mesin target

Metode Two pass compiler juga menyederhanakan proses penargetan ulang. Ini juga memungkinkan banyak ujung depan.

Kompiler Multipass

Kompiler Multipass
Kompiler Multipass

Kompiler multipass memproses kode sumber atau pohon sintaksis suatu program beberapa kali. Ini membagi program besar menjadi beberapa program kecil dan memprosesnya. Ini mengembangkan beberapa kode perantara. Semua multipass ini mengambil keluaran dari fase sebelumnya sebagai masukan. Jadi itu membutuhkan lebih sedikit memori. Ia juga dikenal sebagai 'Kompiler Lebar'.

Tugas Kompiler

Tugas utama yang dilakukan oleh Compiler adalah:

  • Memecah program sumber menjadi beberapa bagian dan menerapkan struktur tata bahasa pada program tersebut
  • Memungkinkan Anda membuat program target yang diinginkan dari representasi perantara dan juga membuat tabel simbol
  • Mengkompilasi kode sumber dan mendeteksi kesalahan di dalamnya
  • Kelola penyimpanan semua variabel dan kode.
  • Dukungan untuk kompilasi terpisah
  • Membaca, menganalisis keseluruhan program, dan menerjemahkan ke dalam bahasa yang setara secara semantik
  • Menerjemahkan kode sumber ke dalam kode objek tergantung pada jenis mesinnya

Sejarah Kompiler

Landmark Penting sejarah Kompiler adalah sebagai berikut:

  • Kata “kompiler” pertama kali digunakan pada awal tahun 1950an oleh Grace Murray Hopper.
  • Kompiler pertama dibuat oleh John Backum dan kelompoknya antara tahun 1954 dan 1957 di IBM.
  • COBOL adalah yang pertama bahasa pemrograman yang dikompilasi di berbagai platform pada tahun 1960
  • Studi tentang masalah pemindaian dan penguraian dilakukan pada tahun 1960an dan 1970an untuk memberikan solusi yang lengkap.

Langkah-langkah untuk sistem pemrosesan Bahasa

Sebelum mengetahui konsep kompiler, Anda perlu terlebih dahulu memahami beberapa alat lain yang bekerja dengan kompiler.

Langkah-langkah untuk Sistem Pemrosesan Bahasa
Langkah-langkah untuk sistem pemrosesan Bahasa
  • Preprosesor: Praprosesor dianggap sebagai bagian dari Kompiler. Ini adalah alat yang menghasilkan masukan untuk Kompiler. Ini berkaitan dengan pemrosesan makro, augmentasi, ekstensi bahasa, dll.
  • Penerjemah: Interpreter seperti Compiler yang menerjemahkan bahasa tingkat tinggi ke bahasa mesin tingkat rendah. Perbedaan utama antara keduanya adalah interpreter membaca dan mengubah kode baris demi baris. Kompiler membaca seluruh kode sekaligus dan membuat kode mesin.
  • Assembler: Ini menerjemahkan kode bahasa rakitan ke dalam bahasa yang dapat dimengerti mesin. Hasil keluaran dari assembler dikenal sebagai file objek yang merupakan gabungan dari instruksi mesin serta data yang diperlukan untuk menyimpan instruksi tersebut di memori.
  • Linker: Tautan membantu Anda menautkan dan menggabungkan berbagai file objek untuk membuat file yang dapat dieksekusi. Semua file ini mungkin telah dikompilasi dengan assembler terpisah. Tugas utama linker adalah mencari modul yang dipanggil dalam suatu program dan mengetahui lokasi memori tempat semua modul disimpan.
  • Pemuat: Loader adalah bagian dari OS, yang melakukan tugas memuat file yang dapat dieksekusi ke dalam memori dan menjalankannya. Ini juga menghitung ukuran program yang menciptakan ruang memori tambahan.
  • Kompilator silang: Kompiler silang dalam desain kompiler adalah platform yang membantu Anda menghasilkan kode yang dapat dieksekusi.
  • Kompiler sumber-ke-sumber: Source to source compiler adalah istilah yang digunakan ketika kode sumber suatu bahasa pemrograman diterjemahkan ke dalam sumber bahasa lain.

Alat Konstruksi Penyusun

Alat-alat pembuat kompiler diperkenalkan seiring dengan tersebarnya teknologi-teknologi yang berhubungan dengan komputer di seluruh dunia. Alat-alat ini juga dikenal sebagai kompiler-kompiler, kompiler-generator, atau penerjemah.

Alat-alat ini menggunakan bahasa atau algoritma tertentu untuk menentukan dan mengimplementasikan komponen penyusun. Berikut ini adalah contoh alat penyusun penyusun.

  • Generator pemindai: Alat ini mengambil ekspresi reguler sebagai masukan. Misalnya LEX untuk Unix OperaSistem.
  • Mesin terjemahan yang diarahkan sintaksis: Ini perangkat lunak alat menawarkan kode perantara dengan menggunakan pohon parse. Tujuannya adalah untuk mengasosiasikan satu atau lebih terjemahan dengan setiap node dari pohon parse.
  • Generator parser: Generator parser mengambil tata bahasa sebagai masukan dan secara otomatis menghasilkan kode sumber yang dapat mengurai aliran karakter dengan bantuan tata bahasa.
  • Generator kode otomatis: Mengambil kode perantara dan mengubahnya menjadi Bahasa Mesin.
  • Mesin aliran data: Alat ini berguna untuk pengoptimalan kode. Di sini, informasi disediakan oleh pengguna, dan kode perantara dibandingkan untuk menganalisis hubungan apa pun. Ini juga dikenal sebagai analisis aliran data. Ini membantu Anda mengetahui bagaimana nilai-nilai ditransmisikan dari satu bagian program ke bagian lain.

Mengapa menggunakan Kompiler?

  • Kompiler memverifikasi seluruh program, sehingga tidak ada kesalahan sintaksis atau semantik.
  • File yang dapat dieksekusi dioptimalkan oleh kompiler, sehingga dieksekusi lebih cepat.
  • Memungkinkan Anda membuat struktur internal dalam memori.
  • Tidak perlu menjalankan program pada mesin yang sama dengan yang dibuatnya.
  • Terjemahkan seluruh program dalam bahasa lain.
  • Hasilkan file di disk.
  • Tautkan file ke dalam format yang dapat dieksekusi.
  • Periksa kesalahan sintaksis dan tipe data.
  • Membantu Anda meningkatkan pemahaman Anda tentang semantik bahasa.
  • Membantu menangani masalah kinerja bahasa.
  • Peluang untuk proyek pemrograman non-sepele.
  • Teknik yang digunakan untuk membuat kompiler dapat berguna untuk tujuan lain juga.

Penerapan Kompiler

  • Desain kompiler membantu implementasi penuh Bahasa Pemrograman Tingkat Tinggi.
  • Dukungan optimasi untuk Komputer ArchiParalelisme tekstur.
  • Perancangan Hirarki Memori Mesin yang Baru.
  • Banyak digunakan untuk Menerjemahkan Program.
  • Digunakan dengan Alat Produktivitas Perangkat Lunak lainnya.

Kesimpulan

  • Kompiler adalah program komputer yang membantu Anda mengubah kode sumber yang ditulis dalam bahasa tingkat tinggi menjadi bahasa mesin tingkat rendah.
  • Kebenaran, kecepatan kompilasi, menjaga kebenaran arti kode adalah beberapa fitur penting dari desain kompiler.
  • Kompiler dibagi menjadi tiga bagian 1) Kompiler Single Pass 2) Kompiler Dua Pass, dan 3) Kompiler Multipass.
  • “Compiler” adalah kata yang pertama kali digunakan pada awal tahun 1950an oleh Grace Murray Hopper.
  • Langkah-langkah sistem pemrosesan Bahasa adalah: Preprocessor, Interpreter, Assembler, Linker/Loader.
  • Alat konstruksi kompiler yang penting adalah 1) Generator pemindai, 2) Mesin penerjemahan terarah sintaksis, 3) Generator parser, 4) Generator kode otomatis.
  • Tugas utama compiler adalah memverifikasi keseluruhan program, sehingga tidak ada kesalahan sintaksis atau semantik.