Disyorkan, 2020

Pilihan Editor

Perbezaan Antara Kompilator dan Jurubahasa

Pengkompil adalah penterjemah yang mengubah bahasa sumber (bahasa peringkat tinggi) ke dalam bahasa objek (bahasa mesin). Berbeza dengan pengkompil, penerjemah adalah program yang meniru pelaksanaan program yang ditulis dalam bahasa sumber. Satu lagi perbezaan antara Kompilator dan jurubahasa adalah bahawa Compiler menukarkan keseluruhan program dalam satu arah yang lain. Interpreter menukar program dengan mengambil satu baris pada satu masa.

Jelas sekali, keupayaan manusia dan peranti elektronik seperti komputer adalah berbeza. Manusia boleh memahami apa-apa melalui bahasa semulajadi, tetapi komputer tidak. Komputer memerlukan penterjemah untuk menukarkan bahasa yang ditulis dalam bentuk yang boleh dibaca manusia kepada bentuk komputer yang boleh dibaca.

Pengkompil dan penterjemah adalah jenis penterjemah bahasa. Apakah penterjemah bahasa? Soalan ini mungkin timbul dalam fikiran anda.

Penerjemah bahasa adalah perisian yang menerjemahkan program dari bahasa sumber yang terbaca dalam bentuk bahasa yang setara ke bahasa yang sama. Bahasa sumber biasanya bahasa pengaturcaraan peringkat tinggi, dan bahasa objek biasanya merupakan bahasa mesin komputer sebenar.

Carta Perbandingan

Asas untuk perbandinganPengkompilPenterjemah
InputIa memerlukan keseluruhan program pada satu masa.
Ia mengambil satu baris kod atau arahan pada satu masa.
PengeluaranIa menghasilkan kod objek perantaraan.Ia tidak menghasilkan sebarang kod objek perantaraan.
Mekanisme kerja
Penyusunan dilakukan sebelum pelaksanaan.Penyusunan dan pelaksanaan berlaku serentak.
Kelajuan
Comparatively lebih cepatLebih perlahan
Memori
Keperluan memori lebih disebabkan oleh penciptaan kod objek.Memerlukan memori yang kurang kerana ia tidak mewujudkan kod objek perantaraan.
Kesilapan
Paparkan semua kesilapan selepas penyusunan, semua pada masa yang sama.Memaparkan kesilapan setiap baris satu demi satu.
Pengesanan ralatSukarLebih mudah berbanding
Pertuturan Bahasa Pemrograman
C, C ++, C #, Scala, menggunakan jenis compiler.Java, PHP, Perl, Python, Ruby menggunakan penterjemah.

Definisi Kompilator

Pengkompil adalah program yang membaca program yang ditulis dalam bahasa peringkat tinggi dan menukarkannya ke mesin atau bahasa tingkat rendah dan melaporkan kesilapan yang ada dalam program ini. Ia menukarkan seluruh kod sumber dalam satu perjalanan atau boleh mengambil beberapa pas untuk berbuat demikian, tetapi akhirnya, pengguna mendapat kod terkompil yang siap dilaksanakan.

Pengkomputer beroperasi pada fasa; pelbagai peringkat boleh dikumpulkan ke dalam dua bahagian iaitu:

  • Analisis Fasa pengkompil juga dirujuk sebagai ujung hadapan di mana program dibahagikan kepada bahagian-bahagian pendasar asas dan pemeriksaan tatabahasa, semantik dan sintaks kod selepas kod perantaraan dihasilkan. Fasa analisis merangkumi penganalisis leksikal, penganalisis semantik dan penganalisis sintaks.
  • Fasa sintesis pengkompil juga dikenali sebagai akhir belakang di mana kod perantaraan dioptimumkan, dan kod sasaran dihasilkan. Fasa sintesis termasuk pengoptimal kod dan penjana kod.

PHASES OF COMPILER

Sekarang mari kita fahami kerja setiap peringkat secara terperinci.

  1. Penganalisa Lexikal : Ia mengimbas kod sebagai aliran aksara, kumpulan urutan aksara ke dalam leksem dan menghasilkan urutan token dengan merujuk kepada bahasa pengaturcaraan.
  2. Penganalisis Sintaks : Dalam fasa ini, token yang dijana pada peringkat sebelumnya diperiksa terhadap tatabahasa bahasa pengaturcaraan, sama ada ekspresi itu betul-betul sintaksis atau tidak. Ia membuat pokok-pokok parse untuk berbuat demikian.
  3. Penganalisis Semantik : Ia mengesahkan sama ada ungkapan dan pernyataan yang dihasilkan dalam fasa terdahulu mengikuti peraturan bahasa pengaturcaraan atau tidak dan ia menghasilkan pokok-pokok parser yang dijelaskan.
  4. Penjana kod perantaraan : Ia menjana kod perantaraan setara kod sumber yang setara. Terdapat banyak representasi kod perantaraan, tetapi TAC (Tiga Kod Alamat) adalah yang paling banyak digunakan.
  5. Pengoptimal Kod : Ia meningkatkan keperluan masa dan ruang program. Untuk berbuat demikian, ia menghapuskan kod berlebihan yang ada dalam program ini.
  6. Penjana kod : Ini adalah fasa terakhir pengkompil di mana kod sasaran untuk mesin tertentu dihasilkan. Ia menjalankan operasi seperti pengurusan memori, tugasan Daftar, dan pengoptimuman khusus mesin.

Jadual simbol agak struktur data yang menguruskan pengenalpasti bersama dengan jenis data yang relevan yang disimpannya. Kesilapan Pengendali mengesan, melaporkan, membetulkan kesilapan yang berlaku di antara fasa-fasa yang berbeza dari pengkompil.

Takrif Jurubahasa

Interpreter adalah alternatif untuk melaksanakan bahasa pengaturcaraan dan melakukan kerja yang sama sebagai pengkompil. Interpreter melakukan lexing, parsing dan jenis pemeriksaan yang serupa dengan pengkompil. Tetapi penerjemah memproses pokok sintaks secara langsung untuk mengakses ungkapan dan melaksanakan pernyataan daripada menghasilkan kod dari pohon sintaks.

Seorang jurubahasa mungkin memerlukan pemprosesan sintaks yang sama lebih daripada satu kali sebab itulah sebabnya tafsirannya agak perlahan daripada melaksanakan program yang disusun.

Penyusunan dan tafsiran mungkin digabungkan untuk melaksanakan bahasa pengaturcaraan. Di mana pengkompil menjana kod tahap pertengahan maka kod tersebut ditafsirkan dan bukan dikompilasi dengan kod mesin.

Menggunakan jurubahasa adalah berfaedah semasa pembangunan program, di mana bahagian yang paling penting adalah untuk dapat menguji pengubahsuaian program dengan cepat dan bukannya menjalankan program dengan cekap.

Perbezaan Utama Antara Penyusun dan Jurubahasa

Mari lihat perbezaan utama di antara Compiler dan Interpreter.

  1. Pengkompil mengambil program secara keseluruhan dan menerjemahkannya, tetapi penerjemah menerjemahkan pernyataan program melalui pernyataan.
  2. Kod persimpangan atau kod sasaran dijana dalam kes pengkompil. Sebaliknya terhadap penterjemah tidak mencipta kod perantaraan.
  3. Pengkompil adalah lebih cepat berbanding Jurubahasa kerana pengkomputer mengambil seluruh program pada satu masa manakala jurubahasa menyusun setiap baris kod selepas yang lain.
  4. Pengkompil memerlukan lebih banyak memori berbanding jurubahasa kerana penjanaan kod objek.
  5. Kompilator membentangkan semua kesilapan pada masa yang sama, dan sukar untuk mengesan kesilapan dalam kesilapan paparan penterjemah kesilapan setiap pernyataan satu demi satu, dan lebih mudah untuk mengesan ralat.
  6. Dalam pengkompil apabila ralat berlaku dalam program, ia menghentikan terjemahannya dan setelah menghapus kesilapan keseluruhan program diterjemahkan lagi. Sebaliknya, apabila ralat berlaku dalam jurubahasa, ia menghalang terjemahannya dan selepas mengeluarkan ralat, terjemahan diteruskan.
  7. Dalam pengkompil, proses ini memerlukan dua langkah di mana kod sumber pertama diterjemahkan ke program sasaran kemudian dilaksanakan. Semasa dalam Interpreter Ini adalah satu langkah proses di mana kod Sumber dikompilasi dan dilaksanakan pada masa yang sama.
  8. Pengkompil digunakan dalam bahasa pengaturcaraan seperti C, C ++, C #, Scala, dan lain-lain. Pada Interpreter yang lain digunakan dalam bahasa seperti Java, PHP, Ruby, Python, dll.

Kesimpulannya

Pengkompil dan penterjemah kedua-duanya bertujuan untuk melakukan kerja yang sama tetapi berbeza dalam prosedur operasi, Kompilator mengambil kod sumber dengan cara yang agregat sedangkan Interpreter mengambil bahagian konstituen kod sumber, iaitu pernyataan oleh pernyataan.

Walaupun kedua-dua pengkompil dan jurubahasa mempunyai kelebihan dan kekurangan tertentu seperti bahasa yang ditafsirkan dianggap sebagai merentas platform, iaitu, kod itu mudah alih. Ia juga tidak perlu menyusun arahan sebelum ini tidak seperti penyusun yang menjimatkan masa. Bahasa yang disusun lebih cepat mengenai proses penyusunan.

Top