Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Bandingkan kelakuan jurubahasa dan pengkompil

Anda ingat kedua-duanya menterjemah kod, tetapi soalan tentang ralat atau kelajuan membuat keduanya bercampur.

Dalam halaman ini
  1. Mengapa program perlu diterjemah?
  2. Bagaimana kedua-duanya berkelakuan?
  3. Contoh berlangkah
  4. Kesilapan yang perlu diawasi
  5. Semak sendiri
  6. Ke mana pelajaran ini menuju seterusnya

Pengkompil (compiler) menterjemah keseluruhan program daripada bahasa aras tinggi kepada kod mesin sekali gus, sebelum program dijalankan. Jurubahasa (interpreter) menterjemah dan menjalankan program satu pernyataan pada satu masa. Soalan peperiksaan meminta anda membandingkan keduanya, selalunya melalui pelaporan ralat, kelajuan atau pengedaran.

Pelajaran ini menyusul peranan sistem pengendalian dan aplikasi dalam modul perisian dan sistem.

Mengapa program perlu diterjemah?

Pemproses hanya memahami kod mesin, iaitu arahan binari. Manusia menulis dalam bahasa aras tinggi seperti Python kerana ia mudah dibaca. Penterjemah merapatkan jurang itu.

Program yang anda tulis ialah kod sumber (source code). Apa yang dihasilkan pengkompil ialah kod objek (object code), atau fail bolehlaksana. Jurubahasa tidak menghasilkan fail berasingan.

Bagaimana kedua-duanya berkelakuan?

CiriPengkompilJurubahasa
TerjemahanKeseluruhan program sekali gusSatu pernyataan pada satu masa, semasa berjalan
OutputFail bolehlaksana berasinganTiada fail dihasilkan
RalatMenyenaraikan ralat selepas mencuba keseluruhan program; tiada apa berjalan sehingga dibetulkanBerhenti pada ralat pertama; baris sebelumnya sudah dijalankan
Menjalankan semulaMenjalankan fail bolehlaksana terus, penterjemah tidak diperlukanMenterjemah semula setiap kali
Kelajuan berjalanLebih pantasLebih perlahan
PerkongsianPengguna menerima fail bolehlaksana dan bukan kod sumberPengguna memerlukan jurubahasa dan kod sumber

Contoh berlangkah

Satu program pendek mempunyai ralat pada baris 4, kerana totl ditaip dan bukan total.

1  total ← 0
2  OUTPUT "Start"
3  total ← total + 5
4  OUTPUT totl
5  OUTPUT "Done"

Jurubahasa, dijejak:

LangkahBarisApa yang berlakuOutput skrin
11total ditetapkan kepada 0tiada
22Mencetak StartStart
33total menjadi 5tiada
44totl tidak ditakrifkan: ralat dilaporkan, larian berhentimesej ralat
55Tidak pernah sampaitiada

Pengguna melihat “Start” dan kemudian mesej ralat yang menunjuk ke baris 4.

Pengkompil: pengkompil membaca kesemua lima baris dahulu, menemui totl yang tidak ditakrifkan pada baris 4, dan melaporkannya. Tiada fail bolehlaksana dihasilkan, jadi tiada apa pun berjalan dan “Start” tidak pernah dipaparkan. Selepas anda membetulkan baris 4 dan mengkompil semula, fail bolehlaksana berjalan dan memaparkan Start, kemudian 5, kemudian Done.

Kesilapan yang perlu diawasi

Jawapan yang salah: “Pengkompil menterjemah program baris demi baris dan berhenti apabila menemui ralat.”

Itu menerangkan jurubahasa. Pengkompil bekerja pada keseluruhan program dan biasanya melaporkan ralatnya bersama, supaya anda boleh membetulkan beberapa sekali gus. Semak jawapan dengan satu soalan: adakah kod dijalankan semasa diterjemah? Jika ya, itu jurubahasa.

Kesilapan kedua ialah menyatakan “jurubahasa lebih pantas kerana ia berjalan serta-merta”. Ia bermula lebih awal, tetapi setiap larian lebih perlahan, kerana terjemahan diulang.

Semak sendiri

1. Sebuah syarikat mahu menjual permainannya tanpa membenarkan pembeli melihat kod sumber. Penterjemah yang manakah sesuai, dan mengapa?

Tunjukkan jawapan

Pengkompil. Ia menghasilkan fail bolehlaksana yang terdiri daripada kod mesin, jadi syarikat boleh mengedarkan fail itu dan merahsiakan kod sumber.

2. Seorang pelajar sedang belajar atur cara dan mahu menguji satu baris pada satu masa semasa menulis. Penterjemah yang manakah sesuai, dan mengapa?

Tunjukkan jawapan

Jurubahasa. Ia menjalankan setiap pernyataan serta-merta dan berhenti pada ralat pertama, jadi pelajar melihat serta-merta baris mana yang salah.

3. Menggunakan program di atas dengan kesalahan taip dibetulkan (OUTPUT total), apakah yang dipaparkan?

Tunjukkan jawapan

Baris 2 mencetak Start. Baris 3 menjadikan total sama dengan 0 + 5 = 5. Baris 4 mencetak 5. Baris 5 mencetak Done. Output: Start, 5, Done.

Ke mana pelajaran ini menuju seterusnya

Seterusnya, lihat bagaimana pemproses bertindak balas terhadap peristiwa semasa program berjalan, dalam terangkan sela menggunakan senario. Jika anda mahu menonton jejak gelung langkah demi langkah, cuba pelatih jejak pseudokod terhad.

Soalan perbandingan memberi ganjaran kepada perkataan kontras yang tepat seperti “keseluruhan program” dan “satu pernyataan pada satu masa”. Guru dalam tuisyen Computer Science dalam talian satu dengan satu boleh membantu anda memperkemas frasa itu.

Soalan lazim

Adakah pengkompil menjalankan program?

Tidak. Pengkompil menterjemah keseluruhan kod sumber kepada kod mesin dan menghasilkan fail bolehlaksana yang berasingan. Program dijalankan kemudian, dan pengkompil tidak perlu ada. Jurubahasa melakukan kedua-dua tugas serentak, menterjemah dan menjalankan satu pernyataan pada satu masa.

Mengapa jurubahasa berguna semasa menulis program?

Jurubahasa menjalankan kod serta-merta dan berhenti pada ralat pertama, jadi pengaturcara melihat baris yang salah dengan cepat dan boleh membetulkannya. Tidak perlu menunggu terjemahan penuh. Ini sesuai untuk menguji dan belajar, walaupun program berjalan lebih perlahan setiap kali.

Yang manakah memberi pelaksanaan lebih pantas?

Kod yang dikompil biasanya berjalan lebih pantas, kerana terjemahan sudah dibuat dan pemproses melaksanakan kod mesin terus. Kod yang ditafsir diterjemah semula setiap kali ia dijalankan. Nyatakan ini sebagai perbandingan kelajuan berjalan, bukan kelajuan memulakan ujian.

Dikemas kini:

Langkah seterusnya

Jika jawapan tentang pengkompil dan jurubahasa masih kedengaran sama di atas kertas, guru satu dengan satu boleh meminta anda menerangkan setiap satu dalam senario baharu sehingga perbezaannya menjadi automatik.

Kelas percubaan berbayar satu jam pada kadar guru yang disahkan, bermula RM80. Yuran lain, jadual dan susunan seterusnya disahkan terus bersama guru selepas kelas percubaan.

Tuisyen diatur bersama ibu bapa atau penjaga. Hantar halaman ini kepada mereka melalui WhatsApp supaya mereka boleh bertanya bagi pihak anda.

Ibu bapa atau penjaga? Tanya di sini

9,000+ pelajar telah dibantu melalui perkhidmatan kami