Fase vs lulus dalam kompiler
Secara umum, Compiler adalah program komputer yang membaca program yang ditulis dalam satu bahasa, yang disebut bahasa sumber, dan menerjemahkannya ke bahasa lain, yang disebut bahasa target. Secara tradisional, bahasa sumber adalah bahasa tingkat tinggi seperti C ++ dan bahasa target adalah bahasa tingkat rendah seperti bahasa perakitan. Jadi, secara umum kompiler dapat dilihat sebagai penerjemah yang diterjemahkan dari satu bahasa ke bahasa lain. Lulus dan fase adalah dua istilah yang sering digunakan dengan kompiler. Jumlah umpan dari kompiler adalah berapa kali melewati sumber (atau beberapa bentuk representasi). Kompiler dipecah menjadi bagian -bagian untuk kenyamanan konstruksi. Fase sering digunakan untuk menyebut bagian independen tunggal dari kompiler.
Apa itu lulus dalam kompiler?
Cara standar untuk mengklasifikasikan kompiler adalah dengan jumlah "operan". Biasanya, kompilasi adalah proses intensif sumber daya yang relatif dan awalnya komputer tidak memiliki cukup memori untuk memegang program seperti itu yang melakukan pekerjaan lengkap. Karena keterbatasan sumber daya perangkat keras ini di komputer awal, kompiler dipecah menjadi program sub yang lebih kecil yang melakukan pekerjaan parsial dengan memeriksa kode sumber (membuat "lulus" di atas sumber atau bentuk lainnya) dan melakukan analisis melakukan , transformasi dan tugas terjemahan secara terpisah. Jadi, tergantung pada klasifikasi ini, kompiler diidentifikasi sebagai kompiler satu-pass atau multi-pass.
Seperti namanya, kompiler satu-pass mengkompilasi dalam satu umpan. Lebih mudah untuk menulis kompiler satu-pass dan juga berkinerja lebih cepat daripada kompiler multi-pass. Oleh karena itu, bahkan pada saat Anda memiliki keterbatasan sumber daya, bahasa dirancang sehingga mereka dapat dikompilasi dalam satu-pass (e.G. Pascal). Di sisi lain, kompiler multi-pass khas terdiri dari beberapa tahap utama. Tahap pertama adalah pemindai (juga dikenal sebagai Lexical Analyzer). Pemindai membaca program dan mengubahnya menjadi serangkaian token. Tahap kedua adalah parser. Itu mengubah string token ke dalam pohon parse (atau pohon sintaks abstrak), yang menangkap struktur sintaksis program. Tahap berikutnya adalah yang menafsirkan semantik struktur sintaksis. Tahap optimisasi kode dan tahap pembuatan kode akhir mengikuti ini.
Apa fase dalam kompiler?
Istilah fase sering muncul saat Anda berbicara tentang konstruksi kompiler. Awalnya, kompiler adalah setiap bagian sederhana dari perangkat lunak monolitik tunggal yang ditulis oleh satu orang untuk kompilasi bahasa sederhana. Tetapi ketika kode sumber bahasa yang akan diterjemahkan menjadi kompleks dan besar, kompiler dipecah menjadi beberapa fase (relatif independen). Keuntungan memiliki fase yang berbeda adalah bahwa pengembangan kompiler dapat didistribusikan di antara tim pengembang. Selain itu, ini meningkatkan modularitas dan penggunaan kembali dengan memungkinkan fase diganti dengan yang ditingkatkan atau fase tambahan (seperti optimasi lebih lanjut) ditambahkan ke kompiler. Proses membagi kompilasi dengan fase diperkenalkan oleh PQCC (Proyek Kompiler Kompiler Kualitas Produksi) di Carnegie Melon University. Mereka memperkenalkan istilah ujung depan, ujung tengah dan belakang. Sebagian besar kompiler memiliki setidaknya dua fase. Tetapi biasanya, ujung belakang dan ujung depan merangkum fase -fase ini.
Apa perbedaan antara fase dan lulus dalam kompiler?
Fase dan lulus adalah dua istilah yang digunakan di bidang kompiler. Lulus adalah satu kali kompiler melewati (melewati) kode sumber atau representasi lainnya. Biasanya, sebagian besar kompiler memiliki setidaknya dua fase yang disebut ujung depan dan belakang, sementara mereka bisa berupa satu-pass atau multi-pass. Fase digunakan untuk mengklasifikasikan kompiler sesuai dengan konstruksi, sementara pass digunakan untuk mengklasifikasikan kompiler sesuai dengan bagaimana mereka beroperasi.