Penerjemah bahasa dan IDE
| English | Bahasa Indonesia |
|---|---|
| compiler/kəmˈpaɪlə/ | compiler |
| source code/sɔːs kəʊd/ | kode sumber |
| translator/trænˈsleɪtə/ | penerjemah |
| machine code/məˈʃiːn kəʊd/ | kode mesin |
| assembler/əˈsemblə/ | assembler |
| assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ | bahasa assembly |
| object code/ˈɒbdʒekt kəʊd/ | kode objek |
| executable/ɪɡˈzekjʊtəbl/ | file yang dapat dieksekusi |
| interpreter/ɪnˈtɜːprɪtə/ | interpreter |
| bytecode/ˈbaɪtkəʊd/ | bytecode |
| portable/ˈpɔːtəbl/ | portabel |
| virtual machine/ˈvɜːtʃuːəl məˈʃiːn/ | mesin virtual |
| just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ | kompilasi just-in-time |
| integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/ | lingkungan pengembangan terintegrasi |
| context-sensitive prompts/ˈkɒntekst ˈsensɪtɪv prɒmpts/ | prompt peka konteks |
| auto-complete/ˈɔːtəʊ kəmˈpliːt/ | auto-complete |
| dynamic syntax checks/daɪˈnæmɪk ˈsɪntæks tʃeks/ | pengecekan sintaks dinamis |
| prettyprint/ˈpretɪprɪnt/ | penyajian rapi |
| breakpoints/ˈbreɪkpɔɪnts/ | titik henti |
| single stepping/ˈsɪŋɡl ˈstepɪŋ/ | langkah tunggal |
| report window/rɪˈpɔːt ˈwɪndəʊ/ | jendela laporan |
Tidak seorang pun percaya komputer dapat menulis programnya sendiri
- Pada tahun 1952 Grace Hopper membangun compiler pertama, sebuah program yang mengubah notasi programmer menjadi instruksi mesin. "Tidak ada yang percaya hal itu," katanya kemudian. "Saya memiliki compiler yang berfungsi dan tidak ada yang mau menyentuhnya. Mereka memberi tahu saya bahwa komputer hanya bisa melakukan aritmatika."
- Setiap bahasa yang Anda gunakan sejak itu bertumpu pada ide itu: Anda menulis kode sumber untuk manusia, dan penerjemah menghasilkan kode mesin yang dijalankan prosesor.
- Ada tiga jenis penerjemah dan satu hibrida terkenal, dan ujian menginginkan jawaban mengenai kapan dan mengapa Anda harus menggunakannya.
- Pelajaran ini membahas penerjemah, kompromi antara kompilasi dan interpretasi, campuran Java dari keduanya, serta alat yang disediakan IDE di sekitarnya.
Kode sumber, kode mesin, dan assembler
- Prosesor hanya mengeksekusi kode mesin. Penerjemah mengonversi program yang ditulis untuk manusia menjadi kode tersebut.
- Assembler menerjemahkan bahasa assembly menjadi kode mesin: setiap instruksi mnemonik,
LDD,ADD,JMP, menjadi tepat satu instruksi kode mesin, dan label serta alamat simbolis digantikan dengan alamat riil. - Assembly digunakan di mana programmer membutuhkan kontrol langsung atas perangkat keras: driver perangkat, sistem tertanam, loop terdalam dalam permainan.
Cocokkan setiap penerjemah dengan fungsinya.
Assembler: assembly→kode mesin; kompiler: sekaligus menjadi eksekutabel; interpreter: baris demi baris saat waktu eksekusi.
Kompiler
- Kompiler menerjemahkan seluruh program tingkat tinggi menjadi kode mesin, kode objek, sebelum dijalankan. Ia menghasilkan file yang dapat dieksekusi dan melaporkan semua kesalahan sintaks secara bersamaan, sebagai daftar, di akhir penerjemahan.
- Ia tidak menjalankan program. Setelah kode bersih, file yang dapat dieksekusi berjalan tanpa kompiler terpasang, sebanyak yang Anda inginkan.
- Cepat saat waktu eksekusi, karena tidak ada yang diterjemahkan saat berjalan; tetapi kode mesin terkait dengan satu prosesor dan sistem operasi.
Rute kompilasi: sumber menjadi program yang berjalan
Ikuti langkah-langkah cara kerja kompiler — menerjemahkan seluruh program sekali, sebelum dijalankan. Bandingkan dengan interpreter, yang menerjemahkan dan menjalankan baris demi baris.
Sebuah kompiler berbeda dari interpreter karena ia:
Kompiler menerjemahkan sekaligus menjadi eksekutabel yang berjalan tanpa kompiler. Interpreter berjalan baris demi baris.
Urutkan rute kompilasi dari penulisan kode hingga menjalankannya.
Kompiler menerjemahkan seluruh program sekali menjadi eksekutabel; file itu kemudian berjalan tanpa kompiler.
Interpreter
- Interpreter menerjemahkan satu pernyataan dari program tingkat tinggi sekaligus dan mengeksekusinya segera sebelum beralih ke berikutnya.
- Tidak ada file yang dapat dieksekusi yang dihasilkan. Ia berhenti pada kesalahan pertama yang ditemui dan melaporkannya, beserta nomornya, sehingga Anda memperbaikinya dan menjalankannya lagi.
- Baik kode sumber maupun interpreter harus hadir setiap kali program dijalankan, dan setiap eksekusi menerjemahkan ulang, sehingga eksekusi lebih lambat; tetapi kode sumber yang sama dapat berjalan di mana pun interpreter tersedia.

Terjemahkan sekali dan kirimkan, atau terjemahkan seiring berjalannya
Kapan interpreter melaporkan kesalahan?
Interpreter berjalan baris demi baris, sehingga ia melaporkan kesalahan pada momen ia mencapai baris tersebut — berguna selama pengembangan.
Interpreter tidak menghasilkan eksekutabel mandiri, sehingga interpreter itu sendiri harus diinstal untuk menjalankan program.
Interpreter menerjemahkan dan menjalankan baris demi baris setiap kali — tidak ada eksekutabel terpisah untuk dikirimkan, berbeda dengan kompiler.
Manfaat dan kerugian, sesuai dengan skema nilai
| kompiler | interpreter | |
|---|---|---|
| kecepatan eksekusi | cepat, sudah berupa kode mesin | lebih lambat, diterjemahkan setiap kali dijalankan |
| apa yang dibutuhkan pengguna | hanya file yang dapat dieksekusi; kode sumber tetap rahasia | kode sumber dan interpreter |
| menemukan kesalahan | semua terdaftar sekaligus setelah penerjemahan | masing-masing dilaporkan pada barisnya, seiring pengembangan |
| mengubah kode | kompilasi ulang seluruh program | edit dan jalankan kembali segera |
| portabilitas | satu platform; kompilasi ulang untuk masing-masing | berjalan di mana pun interpreter tersedia |
Anda harus memilih kompiler ketika:
Eksekutabel terkompilasi cepat dan mandiri. Interpreter cocok untuk pengembangan cepat dan skrip portabel.
Poin manakah yang mendukung penggunaan interpreter saat mengembangkan program? Pilih semua yang berlaku.
Siklus edit-jalankan cepat dan laporan kesalahan pada barisnya adalah kekuatan interpreter. Kecepatan waktu eksekusi adalah kekuatan kompiler.
Contoh kerja: interpreter saat menulis, kompiler saat selesai
- Seorang pengembang menggunakan interpreter saat menulis program dan kompiler saat selesai. Jelaskan bagaimana masing-masing digunakan. [4]
- Selama pengembangan, interpreter menjalankan program yang belum lengkap sekaligus, tanpa menunggu penerjemahan sempurna. Ketika menemui kesalahan, ia melaporkan barisnya, sehingga pengembang memperbaikinya dan menjalankannya kembali segera: siklus edit-jalankan yang cepat yang memudahkan pemecahan masalah.
- Saat program selesai, kompiler menerjemahkan seluruh program menjadi file yang dapat dieksekusi yang berjalan lebih cepat, tidak memerlukan penterjemah di komputer pengguna, dan menjaga kode sumber tetap pribadi.
- Dua poin untuk setiap alat: apa yang dilakukannya, dan mengapa hal itu sesuai dengan tahap tersebut.
Java: sebagian dikompilasi, sebagian ditafsirkan
- Sumber Java dikompilasi menjadi bytecode, bentuk antara yang ringkas dan portabel yang bukan kode mesin untuk prosesor nyata mana pun.
- Sebuah mesin virtual, JVM, kemudian menafsirkan bytecode pada mesin apa pun tempatnya berjalan, atau menggunakan kompilasi tepat-waktu (just-in-time) untuk mengubah bagian paling sibuk menjadi kode asli selama program berjalan.
- Tahap kompilasi menangkap kesalahan sintaks lebih awal; tahap interpretasi memungkinkan satu file bytecode berjalan di mana pun JVM tersedia. Java dalam mode konsol, program teks yang dijalankan dari baris perintah, adalah contoh dalam silabus.

Tulis sekali, jalankan di mana saja: satu file bytecode, satu JVM per platform
Java mengompilasi ke bytecode yang berjalan di atas JVM. Manfaat utamanya adalah:
Bytecode bersifat tak bergantung pada platform; JVM apa pun dapat menjalankannya (dengan JIT memberikan kecepatan hampir-native untuk kode intensif).
Kompiler Java menghasilkan ____ tak bergantung platform, yang kemudian ditafsirkan oleh mesin virtual.
Bytecode adalah bentuk perantara: dikompilasi sekali, lalu dijalankan oleh JVM di platform apa pun. Itulah yang membuat Java sebagian dikompilasi dan sebagian ditafsirkan.
Contoh kerja: mengapa mengompilasi ke bytecode lalu menafsirkannya?
- Jelaskan mengapa Java dikompilasi ke bytecode alih-alih langsung ke kode mesin.
- Kompiler menghasilkan kode mesin untuk satu prosesor dan sistem operasi, sehingga program yang dikompilasi di satu mesin tidak akan berjalan di mesin lain.
- Kompiler Java menargetkan mesin virtual alih-alih, sehingga bytecode identik di mana saja. Setiap platform menyediakan JVM-nya sendiri untuk menafsirkannya.
- Biayanya adalah kecepatan: menafsirkan bytecode lebih lambat daripada menjalankan kode asli, itulah sebabnya JVM menambahkan kompilasi tepat-waktu untuk bagian-bagian yang intensif.
IDE dan empat kelompok fiturnya
- Lingkungan pengembangan terintegrasi (IDE) adalah satu aplikasi untuk menulis, menerjemahkan, menjalankan, dan memecahkan masalah program. Silabus mengelompokkan fiturnya menjadi empat.
- Untuk pemrograman: prompt peka konteks muncul menampilkan pengenal, kata kunci, atau parameter yang sesuai pada titik itu; auto-complete menyelesaikan nama.
- Untuk deteksi kesalahan awal: pemeriksaan sintaks dinamis memberi garis bawah pada kesalahan saat Anda mengetik, sebelum penerjemahan. Untuk presentasi: prettyprint menampilkan kata kunci, pengenal, string, dan komentar dalam warna berbeda dengan indentasi konsisten; perluas dan lipatkan menyembunyikan badan blok agar Anda melihat kerangka utamanya.
- Untuk pemecahan masalah: titik henti menghentikan program di baris yang ditandai; langkah tunggal menjalankan satu baris sekaligus; jendela menampilkan nilai variabel dan ekspresi; jendela laporan mencantumkan kesalahan, peringatan, dan output.

Pemrograman, deteksi kesalahan, presentasi, pemecahan masalah
Fitur manakah yang merupakan bagian dari debugger IDE?
Debugger memungkinkan Anda menetapkan titik jeda, melangkah melalui kode baris demi baris, dan memeriksa nilai variabel.
Cocokkan setiap fitur IDE dengan kelompok silabusnya.
Pemrograman, deteksi kesalahan awal, presentasi, debugging: empat kelompok yang dinamakan silabus, satu fitur masing-masing di sini.
Contoh kerja: menemukan bug di Calculate()
- Fungsi
Calculate()mengembalikan nilai yang tidak diharapkan. Jelaskan bagaimana fitur pemecahan masalah IDE membantu menemukan penyebabnya. [4] - Tetapkan titik henti pada baris pertama
Calculate(), agar program berhenti di sana alih-alih melanjutkan eksekusi. - Langkah tunggal melalui fungsi tersebut satu baris sekaligus. Setelah setiap langkah, baca nilai variabel dan ekspresi apa pun yang telah Anda minta untuk dipantau oleh IDE, dan bandingkan dengan yang Anda harapkan.
- Baris pertama setelah nilai menjadi salah adalah tempat terjadinya kesalahan logika. Jendela laporan menampilkan pesan kesalahan waktu berjalan dan output sepanjang proses.

Jeda, langkah demi langkah, periksa
Urutkan langkah-langkah menemukan kesalahan logika dengan debugger.
Hentikan, langkah, periksa, bandingkan, temukan. Masing-masing adalah salah satu fitur debugging yang terdaftar dalam silabus.
⟦⟧ Nilai yang sering terlewat
- Kompilator tidak menjalankan program. Ia menerjemahkan seluruhnya dan menghasilkan file eksekusi.
- Interpreter berhenti pada kesalahan pertama; kompilator mencantumkan semuanya. Jangan menukar keduanya.
- "Lebih cepat" memerlukan "saat waktu jalannya", dan "portabel" memerlukan "sumber yang sama dapat dijalankan di mana pun interpreter tersedia".
- Kelompokkan fitur IDE ke dalam empat kelompok silabus: breakpoint adalah debugging, prettyprint adalah presentasi, dan prompt kontekstual adalah pengkodean. Bytecode bukan kode mesin.
Anda telah memahaminya
- assembler: satu instruksi assembly menjadi satu instruksi kode mesin · compiler: seluruh program, sebelum dijalankan, menjadi file eksekusi, semua kesalahan dicatat · interpreter: satu pernyataan pada satu waktu, dieksekusi secara langsung, berhenti saat kesalahan pertama, tidak menghasilkan file eksekusi
- compiler untuk kecepatan, distribusi, dan kerahasiaan sumber; interpreter untuk siklus edit-lari yang cepat, portabilitas, dan pemula
- Java mengompilasi ke bytecode yang dapat dibacanya di berbagai platform yang kemudian diinterpretasikan atau dikompilasi JIT oleh JVM: sebagian terkompilasi, sebagian diinterpretasikan
- Fitur IDE dalam empat kelompok: pengkodean (prompt kontekstual), deteksi awal error (pemeriksaan sintaks dinamis), presentasi (prettyprint, perluas dan lipatkan), debugging (breakpoints, langkah tunggal, variabel, jendela laporan)