Perbezaan Antara Fasa Dan Lulus Dalam Penyusun

Perbezaan Antara Fasa Dan Lulus Dalam Penyusun
Perbezaan Antara Fasa Dan Lulus Dalam Penyusun

Video: Perbezaan Antara Fasa Dan Lulus Dalam Penyusun

Video: Perbezaan Antara Fasa Dan Lulus Dalam Penyusun
Video: Perbedaan: Skripsi, Tesis dan Disertasi || Eps. 1 2024, November
Anonim

Fasa vs Lulus dalam Penyusun

Secara umum, penyusun adalah program komputer yang membaca program yang ditulis dalam satu bahasa, yang disebut bahasa sumber, dan menerjemahkannya ke bahasa lain, yang disebut bahasa sasaran. Secara tradisinya, bahasa sumber adalah bahasa peringkat tinggi seperti C ++ dan bahasa sasaran adalah bahasa tahap rendah seperti bahasa Perhimpunan. Jadi, secara umum penyusun dapat dilihat sebagai penterjemah yang menterjemahkan dari satu bahasa ke bahasa lain. Lulus dan Fasa adalah dua istilah yang sering digunakan dengan penyusun. Bilangan hantaran penyusun adalah berapa kali ia melewati sumber (atau beberapa bentuk perwakilannya). Penyusun dipecah menjadi beberapa bahagian untuk kemudahan pembinaan. Fasa sering digunakan untuk memanggil bahagian bebas tunggal penyusun.

Apakah Pas dalam Kompiler?

Kaedah standard untuk mengklasifikasikan penyusun adalah dengan bilangan "hantaran". Biasanya, penyusunan adalah proses yang intensif sumber daya dan pada mulanya komputer tidak mempunyai cukup memori untuk mengadakan program seperti itu yang melakukan tugas yang lengkap. Oleh kerana keterbatasan sumber perkakasan ini pada komputer awal, penyusun dipecah menjadi sub program yang lebih kecil yang menjalankan tugasnya dengan menyebarkan kod sumber (membuat "lulus" ke atas sumber atau bentuk lain) dan melakukan analisis, transformasi dan tugas terjemahan secara berasingan. Oleh itu, bergantung pada klasifikasi ini, penyusun diidentifikasi sebagai penyusun satu lulus atau berbilang lulus.

Seperti namanya, penyusun satu hantaran menyusun dalam satu hantaran. Lebih mudah menulis penyusun satu lulus dan mereka juga berkinerja lebih pantas daripada penyusun berbilang lulus. Oleh itu, walaupun pada masa anda mempunyai batasan sumber daya, bahasa dirancang supaya ia dapat disusun dalam satu hantaran (misalnya Pascal). Sebaliknya, penyusun berbilang lulus khas terdiri daripada beberapa tahap utama. Peringkat pertama adalah pengimbas (juga dikenali sebagai penganalisis leksikal). Pengimbas membaca program dan menukarnya menjadi rentetan token. Tahap kedua adalah penghurai. Ia menukar rentetan token menjadi pohon parse (atau pohon sintaks abstrak), yang menangkap struktur sintaksis program. Tahap seterusnya adalah yang menafsirkan semantik struktur sintaksis. Tahap pengoptimuman kod dan tahap penghasilan kod akhir mengikuti ini.

Apakah Fasa dalam Penyusun?

Fasa istilah sering muncul ketika anda bercakap mengenai pembinaan penyusun. Pada mulanya, penyusun adalah setiap kepingan perisian tunggal, monolitik yang ditulis oleh satu orang untuk penyusunan bahasa yang mudah. Tetapi apabila kod sumber bahasa yang akan diterjemahkan menjadi kompleks dan besar, penyusunnya dipecah menjadi beberapa fasa (relatif bebas). Kelebihan mempunyai fasa yang berbeza adalah bahawa pengembangan penyusun dapat diedarkan di antara pasukan pemaju. Selanjutnya, ia meningkatkan modulariti dan penggunaan semula dengan membiarkan fasa diganti dengan yang lebih baik atau fasa tambahan (seperti pengoptimuman lebih lanjut) ditambahkan ke penyusun. Proses membagi kompilasi menjadi fasa diperkenalkan oleh PQCC (Project Quality Compiler-Compiler Project) di Carnegie Melon University. Mereka memperkenalkan istilah front end, mid end dan back end. Sebilangan besar penyusun mempunyai sekurang-kurangnya dua fasa. Tetapi biasanya, hujung belakang dan hujung depan merangkumi fasa-fasa ini.

Apakah perbezaan antara Fasa dan Lulus dalam Kompiler?

Fasa dan Lulus adalah dua istilah yang digunakan dalam bidang penyusun. Pas adalah satu kali pengkompil melewati (melalui) kod sumber atau perwakilan lain dari itu. Lazimnya, kebanyakan penyusun mempunyai sekurang-kurangnya dua fasa yang disebut front-end dan back end, sementara mereka boleh menjadi satu-lulus atau multi-hantaran. Fasa digunakan untuk mengklasifikasikan penyusun mengikut pembinaannya, sementara lulus digunakan untuk mengklasifikasikan penyusun mengikut cara mereka beroperasi.

Disyorkan: