Perbedaan Antara Fase Dan Lulus Di Kompiler

Perbedaan Antara Fase Dan Lulus Di Kompiler
Perbedaan Antara Fase Dan Lulus Di Kompiler

Video: Perbedaan Antara Fase Dan Lulus Di Kompiler

Video: Perbedaan Antara Fase Dan Lulus Di Kompiler
Video: Terlanjur Kuliah Salah Jurusan, Harus Ngapain? (Pindah Jurusan Kuliah) 2024, Maret
Anonim

Fase vs Lulus di Kompiler

Secara umum compiler adalah program komputer yang membaca suatu program yang ditulis dalam satu bahasa, yang disebut bahasa sumber, dan menerjemahkannya ke dalam 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 Assembly. Jadi, secara umum penyusun bisa dipandang sebagai penerjemah yang menerjemahkan dari satu bahasa ke bahasa lain. Pass dan Phase adalah dua istilah yang sering digunakan dengan kompiler. Jumlah lintasan kompilator adalah berapa kali ia melewati sumber (atau beberapa bentuk representasi darinya). Kompiler dipecah menjadi beberapa bagian untuk kenyamanan konstruksi. Phase sering digunakan untuk memanggil satu bagian independen dari sebuah compiler.

Apa itu Pass di Compiler?

Cara standar untuk mengklasifikasikan kompiler adalah dengan jumlah "lintasan". Biasanya, kompilasi adalah proses yang membutuhkan banyak sumber daya dan pada awalnya komputer tidak memiliki cukup memori untuk menampung program yang melakukan pekerjaan lengkap. Karena keterbatasan sumber daya perangkat keras di komputer awal, kompiler dipecah menjadi sub program yang lebih kecil yang melakukan tugas parsial dengan memeriksa kode sumber (membuat "melewati" sumber atau bentuk lain darinya) dan melakukan analisis, transformasi dan tugas terjemahan secara terpisah. Jadi, bergantung pada klasifikasi ini, kompiler diidentifikasi sebagai kompiler satu jalur atau multi jalur.

Seperti namanya, kompiler one-pass dikompilasi dalam satu langkah. Lebih mudah untuk menulis kompiler satu jalur dan juga bekerja lebih cepat daripada kompiler multi-jalur. Oleh karena itu, bahkan pada saat Anda memiliki keterbatasan sumber daya, bahasa dirancang sedemikian rupa sehingga dapat dikompilasi dalam sekali jalan (mis. Pascal). Di sisi lain, kompilator multi-lintasan biasanya terdiri dari beberapa tahapan utama. Tahap pertama adalah pemindai (juga dikenal sebagai penganalisis leksikal). Scanner membaca program dan mengubahnya menjadi string token. Tahap kedua adalah parser. Ini mengubah string token menjadi pohon parse (atau pohon sintaks abstrak), yang menangkap struktur sintaksis program. Tahap selanjutnya adalah menafsirkan semantik dari struktur sintaksis. Tahap pengoptimalan kode dan tahap pembuatan kode akhir mengikuti ini.

Apa yang dimaksud dengan Fase dalam Kompiler?

Istilah fase sering kali muncul ketika Anda berbicara tentang konstruksi compiler. Awalnya, kompiler adalah setiap bagian sederhana dari perangkat lunak monolitik tunggal yang ditulis oleh satu orang untuk kompilasi bahasa sederhana. Tetapi ketika kode sumber dari bahasa yang akan diterjemahkan menjadi kompleks dan besar, kompilator 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 fase yang ditingkatkan atau fase tambahan (seperti pengoptimalan lebih lanjut) untuk ditambahkan ke kompiler. Proses membagi kompilasi menjadi beberapa tahap diperkenalkan oleh PQCC (Production Quality Compiler-Compiler Project) di Carnegie Melon University. Mereka memperkenalkan istilah front end, middle end dan back end. Kebanyakan kompiler memiliki setidaknya dua fase. Tetapi biasanya, ujung belakang dan ujung depan merangkum fase-fase ini.

Apa perbedaan antara Phase dan Pass di Compiler?

Phase dan Pass adalah dua istilah yang digunakan di bidang penyusun. Pass adalah satu kali kompilator melewati (melewati) kode sumber atau representasi lain darinya. Biasanya, sebagian besar kompiler memiliki setidaknya dua fase yang disebut ujung depan dan ujung belakang, sementara itu bisa berupa satu jalur atau multi-jalur. Phase digunakan untuk mengklasifikasikan compiler menurut konstruksinya, sedangkan pass digunakan untuk mengklasifikasikan compiler menurut cara operasinya.

Direkomendasikan: