Kompilator VB.Net melakukan kompilasi kode sumber Visual Basic menjadi Bahasa Antara Microsoft (Intermediate Language) yang disimpan dalam berkas assembly. Berkas assembly ini kemudian dijalankan oleh Common Language Runtime untuk mengubah Bahasa Antara menjadi kode mesin yang dapat dijalankan oleh sistem operasi. Kompilator melakukan analisis leksikal, sintaktik, dan semantik untuk mendeteksi kesalahan serta menangani berbagai jenis kesalahan sepert
Dokumen tersebut membahas tentang teknik kompilasi yang meliputi proses kompilasi mulai dari analisis leksikal, sintaks, semantik, pembangkitan kode antara, optimalisasi kode, dan pembangkitan kode mesin. Juga membahas perbedaan antara compiler dan interpreter serta contoh proses kompilasi dari source program ke kode mesin.
Dokumen ini membahas tentang pendahuluan pembuatan compiler, meliputi tujuan pembelajaran seperti memahami cara kerja compiler, konsep pembuatan compiler, dan bagaimana bahasa pemrograman diterjemahkan oleh mesin. Juga dibahas proses compiler, jenis-jenis translator seperti interpreter dan compiler, serta cara pembuatan compiler menggunakan berbagai bahasa pemrograman.
Bahasa pemrograman C pertama kali dikembangkan pada tahun 1970-an dan menjadi dasar bagi banyak bahasa pemrograman lainnya. C memiliki kelebihan seperti kecepatan eksekusi tinggi dan fleksibilitas namun juga kelemahan seperti kompleksitas penulisan kode.
Dokumen tersebut membahas tentang proses kompilasi bahasa pemrograman, yang terdiri dari empat tahap utama yaitu analisis leksikal, analisis sintaktik, analisis semantik, dan sintesis. Analisis leksikal berfungsi untuk mengubah program sumber menjadi token, analisis sintaktik mengidentifikasi struktur program, analisis semantik memeriksa kesesuaian struktur, dan sintesis membentuk kode yang dapat dijalankan.
Dokumen tersebut membahas tentang teknik kompilasi, meliputi:
1. Pendahuluan tentang proses kompilasi dan fase-fasenya
2. Penganalisa leksikal (scanner) yang membaca program sumber dan mengubahnya menjadi token
3. Penganalisa sintaks (parser) yang memeriksa kesesuaian token dengan aturan sintaks
Dokumen tersebut membahas tentang teknik kompilasi yang meliputi proses kompilasi mulai dari analisis leksikal, sintaks, semantik, pembangkitan kode antara, optimalisasi kode, dan pembangkitan kode mesin. Juga membahas perbedaan antara compiler dan interpreter serta contoh proses kompilasi dari source program ke kode mesin.
Dokumen ini membahas tentang pendahuluan pembuatan compiler, meliputi tujuan pembelajaran seperti memahami cara kerja compiler, konsep pembuatan compiler, dan bagaimana bahasa pemrograman diterjemahkan oleh mesin. Juga dibahas proses compiler, jenis-jenis translator seperti interpreter dan compiler, serta cara pembuatan compiler menggunakan berbagai bahasa pemrograman.
Bahasa pemrograman C pertama kali dikembangkan pada tahun 1970-an dan menjadi dasar bagi banyak bahasa pemrograman lainnya. C memiliki kelebihan seperti kecepatan eksekusi tinggi dan fleksibilitas namun juga kelemahan seperti kompleksitas penulisan kode.
Dokumen tersebut membahas tentang proses kompilasi bahasa pemrograman, yang terdiri dari empat tahap utama yaitu analisis leksikal, analisis sintaktik, analisis semantik, dan sintesis. Analisis leksikal berfungsi untuk mengubah program sumber menjadi token, analisis sintaktik mengidentifikasi struktur program, analisis semantik memeriksa kesesuaian struktur, dan sintesis membentuk kode yang dapat dijalankan.
Dokumen tersebut membahas tentang teknik kompilasi, meliputi:
1. Pendahuluan tentang proses kompilasi dan fase-fasenya
2. Penganalisa leksikal (scanner) yang membaca program sumber dan mengubahnya menjadi token
3. Penganalisa sintaks (parser) yang memeriksa kesesuaian token dengan aturan sintaks
Dokumen tersebut membahas tentang bahasa pemrograman mikroprosesor Z80, meliputi tujuan perkuliahan, pengertian bahasa assembly dan mesin, contoh program transfer data, dan penjelasan tentang menjalankan program.
Teknik kompilasi melibatkan proses penerjemahan program yang ditulis dalam bahasa sumber ke dalam bahasa sasaran. Proses ini dilakukan oleh kompilator dan terdiri atas dua tahap utama yaitu analisis dan sintesis. Pada tahap analisis, program akan dipecah menjadi token dan disusun menjadi pohon sintaks, sedangkan pada tahap sintesis akan dihasilkan kode eksekusi dalam bahasa sasaran.
Dokumen ini membahas tentang teknik kompilasi. Ia menjelaskan tujuan pembelajaran tentang memahami proses kompilasi dan pembuatan compiler. Dokumen ini juga menjelaskan proses kompilasi meliputi analisis leksikal, sintaks, semantik, dan sintesis untuk menghasilkan kode objek dari kode sumber. Metode pembuatan compiler juga dijelaskan meliputi menggunakan bahasa mesin, assembly, bahasa tingkat tinggi lain
Dokumen tersebut membahas konsep dasar pemrograman komputer meliputi pengertian bahasa pemrograman, perkembangan bahasa pemrograman, dan contoh kode program sederhana dalam bahasa C.
Modul 2 teknik pemrograman mengenal bahasa c dan compilerBeny Abd
Mengenal bahasa C sebagai salah satu bahasa pemrograman. Mengidentifikasi struktur penulisan program bahasa C. Software yang digunakan sebagai compiler, cara instalasi dan penggunaan Compiler.
Dokumen tersebut membahas tentang pengertian dasar pemrograman meliputi paradigma pemrograman, algoritma, pseudocode, dan contoh-contohnya. Dokumen tersebut juga menjelaskan tujuan dan sistem perkuliahan mata kuliah Dasar Pemrograman.
1. Dokumen tersebut membahas tentang dasar-dasar algoritma dan pemrograman komputer, meliputi pengertian algoritma, langkah-langkah pembuatan program komputer, dan jenis-jenis bahasa pemrograman.
Dokumen tersebut membahas tentang konsep dasar pemrograman komputer mulai dari definisi pemrograman, konsep IPO, logika dasar pemrograman seperti aritmatika, perbandingan, boolean, serta generasi bahasa pemrograman dan tingkatan bahasa pemrograman."
Teks tersebut membahas tentang proses kompilasi pada umumnya, termasuk analisis leksikal, sintaktik, dan semantik. Analisis leksikal memecah program sumber menjadi token, analisis sintaktik menyusun token menjadi struktur pohon, dan analisis semantik memeriksa kesesuaian struktur tersebut.
Dokumen tersebut membahas tentang compiler, meliputi proses kompilasi, jenis-jenis translator seperti interpreter dan compiler, serta cara pembuatan compiler menggunakan bahasa pemrograman tingkat tinggi.
Dokumen tersebut membahas tentang bahasa pemrograman mikroprosesor Z80, meliputi tujuan perkuliahan, pengertian bahasa assembly dan mesin, contoh program transfer data, dan penjelasan tentang menjalankan program.
Teknik kompilasi melibatkan proses penerjemahan program yang ditulis dalam bahasa sumber ke dalam bahasa sasaran. Proses ini dilakukan oleh kompilator dan terdiri atas dua tahap utama yaitu analisis dan sintesis. Pada tahap analisis, program akan dipecah menjadi token dan disusun menjadi pohon sintaks, sedangkan pada tahap sintesis akan dihasilkan kode eksekusi dalam bahasa sasaran.
Dokumen ini membahas tentang teknik kompilasi. Ia menjelaskan tujuan pembelajaran tentang memahami proses kompilasi dan pembuatan compiler. Dokumen ini juga menjelaskan proses kompilasi meliputi analisis leksikal, sintaks, semantik, dan sintesis untuk menghasilkan kode objek dari kode sumber. Metode pembuatan compiler juga dijelaskan meliputi menggunakan bahasa mesin, assembly, bahasa tingkat tinggi lain
Dokumen tersebut membahas konsep dasar pemrograman komputer meliputi pengertian bahasa pemrograman, perkembangan bahasa pemrograman, dan contoh kode program sederhana dalam bahasa C.
Modul 2 teknik pemrograman mengenal bahasa c dan compilerBeny Abd
Mengenal bahasa C sebagai salah satu bahasa pemrograman. Mengidentifikasi struktur penulisan program bahasa C. Software yang digunakan sebagai compiler, cara instalasi dan penggunaan Compiler.
Dokumen tersebut membahas tentang pengertian dasar pemrograman meliputi paradigma pemrograman, algoritma, pseudocode, dan contoh-contohnya. Dokumen tersebut juga menjelaskan tujuan dan sistem perkuliahan mata kuliah Dasar Pemrograman.
1. Dokumen tersebut membahas tentang dasar-dasar algoritma dan pemrograman komputer, meliputi pengertian algoritma, langkah-langkah pembuatan program komputer, dan jenis-jenis bahasa pemrograman.
Dokumen tersebut membahas tentang konsep dasar pemrograman komputer mulai dari definisi pemrograman, konsep IPO, logika dasar pemrograman seperti aritmatika, perbandingan, boolean, serta generasi bahasa pemrograman dan tingkatan bahasa pemrograman."
Teks tersebut membahas tentang proses kompilasi pada umumnya, termasuk analisis leksikal, sintaktik, dan semantik. Analisis leksikal memecah program sumber menjadi token, analisis sintaktik menyusun token menjadi struktur pohon, dan analisis semantik memeriksa kesesuaian struktur tersebut.
Dokumen tersebut membahas tentang compiler, meliputi proses kompilasi, jenis-jenis translator seperti interpreter dan compiler, serta cara pembuatan compiler menggunakan bahasa pemrograman tingkat tinggi.
Teks tersebut membahas tentang bahasa pemrograman C, meliputi sejarah, kelebihan, kekurangan, proses kompilasi, struktur penulisan program, dan fungsi-fungsi dasar dalam bahasa C seperti fungsi main(), printf(), dan penggunaan preprocessor #include.
Dokumen tersebut membahas tentang komponen dasar dari komputer meliputi sistem komputer, komponen fisik komputer, program dan bahasa pemrograman, serta kualitas program.
1. Dokumen tersebut membahas tentang dasar-dasar algoritma dan pemrograman komputer, meliputi pengertian algoritma, langkah-langkah pembuatan program komputer, dan jenis-jenis bahasa pemrograman.
Dokumen tersebut membahas dasar-dasar pemrograman komputer, meliputi pengertian program dan bahasa pemrograman, jenis-jenis bahasa pemrograman, langkah-langkah pembuatan program, serta prinsip-prinsip pemrograman terstruktur.
Dokumen tersebut membahas tentang algoritma pemrograman dan penjelasannya. Terdapat pengertian algoritma, struktur algoritma, cara penulisan algoritma seperti pseudocode dan flowchart, serta jenis-jenis bahasa pemrograman.
Dokumen tersebut membahas tahapan pemrograman komputer mulai dari algoritma, bahasa pemrograman, pengujian program, dan dokumentasi. Terdapat 3 tahap utama dalam membangun program yaitu memahami masalah, merancang solusi, dan mengimplementasikan rancangan dalam bentuk program. Bahasa pemrograman dibedakan menjadi tingkat tinggi dan rendah, serta perlu dilakukan pengujian dan dokumentasi untuk memastikan program berjalan dengan baik
Dokumen tersebut berisi daftar 13 pertanyaan essay tentang hukum pajak yang harus dijawab oleh mahasiswa. Pertanyaan-pertanyaan tersebut meliputi definisi pajak dan unsur-unsurnya, fungsi pajak, teori pemungutan pajak di Indonesia, tarif pajak di Indonesia, timbul dan berakhirnya utang pajak, perbedaan zakat dan pajak, tahap reformasi pajak di Indonesia, definisi hukum pajak internasional, tata cara pendaft
This document provides guidance on writing review articles. It discusses reasons for writing review articles such as sharing knowledge and advancing one's field. It also discusses typical sections of a review article such as the introduction, methods, and conclusion. The document provides examples of different types of review articles and notes that review articles are important for keeping up with developments in a field given the large volume of existing literature. It also provides tips for selecting topics, writing titles, referencing, and searching for source materials to include.
Format laporan Tutor Universitas Terbuka 2014Ratzman III
Dokumen tersebut berisi format-format dan pedoman pelaksanaan tutorial, yang mencakup tanda terima perlengkapan tutor, rancangan aktivitas tutorial, satuan aktivitas tutorial, rekap nilai tugas tutorial, format tugas wajib tutorial, format penilaian tugas tutorial, daftar hadir mahasiswa, kisi-kisi tugas tutorial, catatan pertemuan tutorial, dan tanda terima tugas mahasiswa.
Arduino Ch3 : Tilt Sensing Servo Motor Controller Ratzman III
Sensors allow us to operate industrial and consumer products that use physical stimuli such as touch, sound, and motion. In this chapter, we will build a device to detect the orientation of an object using a tilt control switch to control the servo motor.
Arduino - Ch 2: Sunrise-Sunset Light SwitchRatzman III
The document describes how to build a Sunrise-Sunset Light Switch using an Arduino microcontroller. The circuit uses a photocell to detect light instead of a pushbutton. When light is detected, a red LED turns on. After a few seconds determined by an RC timing circuit, the red LED turns off and a green LED turns on. The circuit diagram and code are provided to build the project. Modifications to the code allow status messages to display on the serial monitor.
The document describes how to build a "Trick Switch" circuit using an Arduino, pushbutton, LED, capacitor, and resistors. When the pushbutton is pressed, the LED turns on. After releasing the button, the capacitor stores energy from the power supply, keeping the LED on for a few extra seconds until the capacitor discharges. The circuit is modified to add an indicator LED to show when the timing cycle finishes. Schematics and code are provided to build and program the circuit.
Dokumen ini membahas tentang kalkulus relasional dan bahasa query SQL dan QBE. Kalkulus relasional menggunakan variabel untuk nilai domain atribut, bukan nilai tupel. SQL dibangun berdasarkan aljabar relasional dan memberikan bahasa query tingkat tinggi dengan struktur sederhana. SQL dan QBE merupakan dua bahasa query komersial yang tersedia berdasarkan model relasional.
Dokumen tersebut membahas tentang bahasa query formal basis data relasional yaitu SQL dan aljabar relasional. Aljabar relasional merupakan kumpulan operasi yang diterapkan pada relasi untuk menghasilkan relasi baru, meliputi seleksi, proyeksi, produk kartesian, penyatuan, perbedaan himpunan, penamaan ulang, irisan himpunan, join, outer join, dan pembagian.
Dokumen ini membahas tentang RDBMS (Relational Database Management System) dan notasi Chen untuk merancang basis data relasional. RDBMS mengelola basis data yang terdiri dari tabel-tabel yang saling berhubungan. Notasi Chen digunakan untuk merepresentasikan entitas, hubungan, dan atribut dalam basis data secara grafis.
Kisi-kisi soal ujian tengah semester mata kuliah Sistem Basis Data meliputi 11 pertanyaan essay dan 1 pertanyaan penjelasan tentang model data. Pertanyaan-pertanyaan tersebut mencakup pengertian basis data sebagai gambaran operasional perusahaan, properti yang tersimpan, keamanan basis data, perbedaan sistem pengarsipan manual dan basis data, tujuan pembangunan basis data, elemen pendefinisian basis data, keuntungan pendekatan abstraksi data, tingkat e
Dokumen ini berisi kriteria penilaian untuk tugas kelompok mata kuliah Basis Data. Tugas ini meliputi penjelasan fungsi submenu di situs E-learning, pembuatan struktur basis data dari submenu tersebut, dan presentasi hasil analisis di depan kelas. Penilaian tugas mencakup penguasaan materi, wawasan pengetahuan, kelengkapan materi, originalitas, dan kerapihan penulisan dengan total skor 100.
1. TUGAS MANDIRI
TEKNIK KOMPILASI
Soal :
Silahkan anda menganalisa Model Kompilator VB.Net dan Model Kompilator di bawah ini
Bagan Pokok Proses Kompilasi
Presentasi Ernastuti & Sulistyo (Universitas Gunadarma)
Termasuk :
1. Penanganan Kesalahan
2. Error recovery
3. Error Repair
2. Definisi Compiler
1. Kompilator (Inggris: compiler) adalah sebuah program komputer yang berguna untuk
menerjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi
program yang ditulis dalam bahasa pemrograman lain. 1
2. Compiler adalah suatu program yang melakukan proses translasi dari HLL ke dalam bahasa
mesin di komputer. Disamping program translasi, compiler juga mempunyai beberapa fungsi
penting, seperti diagnostik, contohnya kemampuan pendeteksian error/kesalahan.
Pelannggaran spesifikasi HLL akan terdeteksi dan dilaporkan kepada programmer oleh
compiler agar segera diperbaiki hingga mempermudah pembentukan machine language
equivalent.2
3. “…interpret sequences of particular instructions, but not program texts. Therefore, the
program text must be translated into a suitable instruction sequence before it can be
processed by a computer. This translation can be automated, which implies that it can be
formulated as a program itself…” 3
Dari kedua definisi di atas dapat disimpulkan bahwa Compiler adalah sebuah perangkat lunak komputer
yang digunakan sebagai alat bantu dalam melakukan proses penterjemahan intruksi dan kode secara
otomatis ke dalam bahasa mesin (assembler) tertentu sebagai perantara dan juga memiliki fungsi sebagai
alat deteksi kesalahan dan memperbaiki hingga mempermudah pembentukan machine language
equivalent.
Gambar 1 – Proses Penterjemahan
1
http://id.wikipedia.org/wiki/Kompilator
2
Bahan Ajar, karmila.staff.gunadarma.ac.id/
3
Niklaus Wirth, Compiler Construction, ISBN 0-201-40353-6, Addison-Wesley, 1996
3. Dari penjelasan di atas terlihat bahwa tugas dari Compiler adalah :
Melakukan translasi dari HLL program sebagai input (source program) ke dalam
equivalent machine language program.
Menghasilkan pesan hasil diagnostik kepada programmer bila terjadi penyimpangan
spesifikasi HLL(source language).
Arsitektur kompilator modern biasanya bukan lagi merupakan program tunggal namun merupakan
rangkaian komunikasi antar program dengan tugas spesifik masing-masing.
1. Compilator itu sendiri, yang menerima kode sumber dan menghasilkan bahasa tingkat rendah
(assembly)
2. Assembler, yang menerima keluaran kompilator dan menghasilkan berkas objek dalam bahasa mesin
3. Linker, yang menerima berkas objek keluaran assembler untuk kemudian digabungkan dengan
pustaka-pustaka yang diperlukan dan menghasilkan program yang dapat dieksekusi (executable)
Proses Pokok Model Kompilator
Dalam ilmu komputer, kode sumber (Inggris: source code) atau kode program adalah suatu
rangkaian pernyataan atau deklarasi yang ditulis dalam bahasa pemrograman komputer yang
terbaca manusia. Kode sumber yang menyusun suatu program biasanya disimpan dalam satu
atau lebih berkas teks, dan dapat pula ditampilkan dalam bentuk cuplikan kode (code snippet)
yang dicetak pada buku atau media lainnya. Kode sumber sebelum dikonversikan menjadi
bentuk berkas yang dapat dieksekusi komputer harus melalui proses kompilasi terlebih dahulu.
Konversi ini bisa dilakukan oleh suatu kompilator, atau langsung dari bentuk terbaca manusia
dengan bantuan interpreter.4
Gambar 2 - Bagan Pokok Proses Kompilasi
Presentasi Ernastuti & Sulistyo (Universitas Gunadarma)
4
http://id.wikipedia.org/wiki/Kode_sumber
4. Tahap Analysis
Analisa Leksikal (Scanner) merupakan antarmuka antara kode program sumber dan analisa
sintaktik (Parser). Scanner melakukan pemeriksaan karakter per karakter pada teks masukan,
memecah sumber program menjadi bagian-bagian disebut Token.5
Dua aspek penting pembuatan Analisa Leksikal adalah :
Menentukan token-token bahasa.
Mengenali token-token bahasa dari program sumber.
Tugas – tugas analisa leksikal antara lain :
a. Melakukan pembacaan kode sumber dengan merunut karakter demi karakter.
b. Mengenali besaran leksik (identifier, keywords, dan konstanta).
c. Mentransformasi menjadi sebuah token dan menentukan jenis tokennya.
d. Mengirimkan token.
e. Membuang atau mengabaikan white-space dan komentar dalam program.
f. Menangani kesalahan.
g. Menangani tabel simbol.
Proses Analisa Sintaks (Parsing) dilakukan terhadap descriptor dari analisa leksikal untuk
menentukan struktur sintaks dari input statement. Proses tersebut dikenal dengan nama
“Parsing”. Output dari Parsing adalah representasi dari struktur sintaks suatu statement. Analisa
semantik memanfaatkan pohon sintaks yang dihasilkan pada proses parsing (analisa sintaks).
Fungsi dari analisa semantik adalah untuk menentukan makna dari serangkaian instruksi yang
terdapat dalam program sumber. Untuk mengetahui makna, maka rutin analisa semantik akan
memeriksa :
• Apakah variabel yang ada telah didefinisikan sebelumnya,
• Apakah variable-variabel tersebut tipenya sama,
• Apakah operan yang akan dioperasikan tersebut ada nilainya dan seterusnya.
Untuk dapat menjalankan fungsi tersebut dengan baik, semantic analyzer seringkali
menggunakan tabel simbol. Pemeriksaan bisa dilakukan pada tabel identifier, tabel display dan
tabel blok, misal pada field link. Pengecekan yang dilakukan oleh analisis semantik adalah :
1. Memeriksa keberlakuan nama – nama meliputi pemeriksaan :
Duplikasi, pengecekan apakah sebuah nama terjadi pendefinisian lebih dari dua kali.
Pengecekan dilakukan pada bagian pengelola blok.
Terdefinisi, pengecekan apakah sebuah nama yang dipakai pada tubuh program sudah
terdefinisi atau belum. Pengecekan dilakukan pada semua tempat kecuali blok.
2. Memeriksa tipe
Melakukan pemeriksaan terhadap kesesuaian tipe dalam statement – statement yang ada.
Misal : Bila ada operasi antara dua operan, maka tipe operan pertama harus bisa dioperasikan
dengan operan kedua.
5
Iwan Binanto, 2005, Konsep Bahasa Pemrograman : Penerbit Andi dari Rizki Pramudiningtyas,
http://rizkistitek.blogspot.com/2012/03/tahap-analisa-fase-analysis.html
5. Kode Antara (Intermediate Code) merupakan hasil dari tahapan analisis, yang dibuat oleh
kompilator pada saat mentranslasikan program dari bahasa tingkat tinggi. Kegunaan dari Kode
Antara/intermediate code :
Untuk memperkecil usaha dalam membangun kompilator dari sejumlah bahasa ke sejumlah
mesin
Proses optimasi lebih mudah (dibandingkan pada program sumber atau kode assembly dan
kode mesin).
Bisa melihat program internal yang gampang dimengerti.
Tahap Sintesa
Tahapan akhir suatu tranlasi terfokus pada pembangunan program yang executable dari output
yang dihasilkan oleh semantic analyzer6
. Tahap ini melibatkan penghasil kode (code generation)
jika dibutuhkan dan melibatkan juga optimisasi pada program yang sudah dihasilkan. Jika
subprogram ditranslasikan secara terpisah atau jika pustaka subprogram digunakan maka tahapan
final linking dan loading dibutuhkan untuk menghasilkan suatu program lengkap yang siap
dieksekusi.
a. Pembentukan/Pembangkitan Kode
Dalam tahap ini bentuk antara dari bahasa sumber yang berupa suatu pohon sintaks
diterjemahkan ke dalam suatu bahasa assembli atau bahasa mesin. Tahap ini membangkitkan
kode antara (intermediate code) berdasarkan pohon parsing. Pohon parsing selanjutnya
diterjemahkan oleh suatu penerjemah, misalnya penerjemah berdasarkan sintaks (syntax-
directed translator). Hasil penerjemahan ini biasanya merupaka perintah tiga alamat (three-
address code) yang merupakan representasi program untuk suatu mesin abstrak. Bahasa
mesin yang dihasilkan adalah bahasa assembli yang merupakan suatu perintah 1 alamat, 1
akumulator. Perintah tiga alamat bisa berbentuk quadruples (op, arg1, arg2, result), triples
(op, arg1, arg2). Ekspresi dengan satu argumen dinyatakan dengan menetapkan arg2 dengan –
(strip, dash).
b. Optimalisasi Kode
Hasil pembentukan kode yang diperoleh kemudian dibuat lebih kompak lagi dengan
melakukan beberapa teknik optimasi supaya dapat diperoleh program yang lebih efisien.
Dalam hal ini dilakukan beberapa hal seperti pendeteksian suatu ekspresi yang sering terjadi,
sehingga pengulangan tidak perlu terjadi dan lain sebagainya. Pada tahap ini melakukan
optimasi (peghematan space dan waktu komputasi) jika mungkin terhadap kode antara.
Semantic analyzer biasanya menghasilkan suatu output program executable yang sudah
ditranslasi yang berbentuk intermediate code, yang kadangkala merupakan kode yang buruk
atau tidak efisien.
6
Bahan Ajar, octa_bl.staff.gunadarma.ac.id/
6. c. Penghasil Kode
Setelah program yang ditranslasi dan representasi internalnya dioptimalisasi maka harus
dibentuk sebagai statemen bahasa assembly, kode mesin, atau program objek yang lainnya
yang menjadi output dari translasi. Kode output ini mungkin dapat langsung dieksekusi, atau
membutuhkan langkah translasi berikutnya, yaitu Linking dan Loading.
d. Linking dan Loading
Tahapan akhir yang bersifat opsional adalah menggabungkan potongan-potongan kode yang
dihasilkan dari translasi terpisah suatu subprogram ke dalam suatu program final executable
yang utuh. Hal ini dapat terjadi karena potongan-potongan kode tersebut mempunyai loader
tables yang dihasilkan oleh translator. Loader tables inilah yang digunakan oleh linking loader
untuk menggabungkan potongan-potongan kode tersebut di memori sehingga menghasilkan
program final executable yang siap untuk dieksekusi.
Pada tahap Analys dan Sintesa seluruh sumber input dan output berada pada Table, dimana
fungsi Table itu sendiri adalah untuk menyimpan semua informasi yang berhubungan dengan
proses kompilasi.
Program Sasaran dapat berupa bahasa pemrograman lain atau bahasa mesin pada suatu
computer.
Kompilator dalam VB.Net
Informasi dalam berkas ditentukan oleh pembuatnya7
. Ada banyak beragam jenis informasi yang
dapat disimpan dalam berkas. Hal ini disebabkan oleh struktur tertentu yang dimiliki oleh berkas,
sesuai dengan jenisnya masing-masing. Contohnya :
• Text file; yaitu urutan karakter yang disusun ke dalam baris-baris
• Source file; yaitu urutan subroutine dan fungsi yang nantinya akan dideklarasikan
• Object file; merupakan urutan byte yang diatur ke dalam blok-blok yang dikenali oleh linker
dari system
• Executable file; adalah rangkaian code section yang dapat dibawa loader ke dalam memori
dan dieksekusi
Compiler dan Assemblers membuat file objek yang berisi kode biner dan data yang
dihasilkan untuk file sumber. Linker menggabungkan beberapa file menjadi satu objek, loader
mengambil objek file dan memasukannya ke dalam memori. (Dalam lingkungan pemrograman
terpadu, kompiler, perakit, dan linker dijalankan secara implisit ketika pengguna akan membuat
program.
Dalam pemrograman komputer, Runtime Library adalah Application Programming
Interface yang digunakan oleh compiler untuk memanggil beberapa pola dari sistem runtime.
Sistem runtime mengimplementasikan model pelaksanaan dan pola yang mendasar dari bahasa
pemrograman. Runtime Library dapat mengimplementasikan sebagian dari pola sistem runtime,
tetapi jika panggilan membaca kode baru tersedia yang dibalut dalam informasi pake dan
7
Bahan Ajar, saefudin.staff.jak-stik.ac.id/
7. mengirimkannya ke sistem runtime. Namun, terkadang Runtime Library dimaksudkan untuk
menyertakan kode dari sistem runtime itu sendiri, meskipun banyak kode yang tidak dapat
terhubung secara langsung melalui library.
Gambar 3 - Model Kompilator dalam VB.Net8
Linker adalah suatu program yang menterjemahkan program objek (bereksention OBJ) ke
bentuk program eksekusi (berekstension EXE atau COM). Sedangkan untuk membuat file object
ke bentuk file yang dapat dieksekusi (berekstension .COM atau .EXE) bisa anda gunakan file
TLINK.EXE.
Gambar 4 – Visual Basic Compiled and Run9
8
http://www.webopedia.com/FIG/COMPILE.gif
8. Pada Gambar 4 menunjukkan bagaimana sebuah program Visual Basic dikompilasi dan
dijalankan. Untuk memulai, Anda menggunakan Visual Studio untuk membuat sebuah proyek,
yang terdiri dari file sumber yang berisi pernyataan (statement). Sebuah proyek pemrograman
juga dalam Visual Basic dapat berisi jenis file lainnya, seperti suara, gambar atau teks file.
Setelah Anda memasukkan kode Visual Basic untuk sebuah proyek, Compiler Visual Basic
dalam Visual Studio akan membangun atau mengkompilasi kode sumber Visual Basic ke dalam
Microsoft Intermediate Language.
Intermediate Language disimpan pada disk dalam sebuah file yang disebut assembly.
Selain Intermediate Language, dalam assembly sudah termasuk referensi kelas yang dibutuhkan
oleh aplikasi. Assembly dapat dijalankan pada setiap PC yang telah memiliki Common
Language Runtime. Ketika assembly dijalankan, Common Language Runtime mengubah
Intermediate Language ke kode asli yang dapat dijalankan oleh sistem operasi Windows.
Standar Operasi
1. Programmer menggunakan Visual Studio untuk membuat proyek yang mencakup Visual
Basic file source. Dalam beberapa kasus, proyek juga akan berisi jenis file lainnya, seperti
gambar grafis atau file suara.
2. Compiler Visual Basic menerjemahkan Visual Basic source code proyek ke dalam Microsoft
Intermediate Language. Bahasa ini disimpan pada disk dalam sebuah assembly yang juga
berisi referensi kelas yang dibutuhkan. Assembly adalah file executable yang memiliki exe.
Atau ekstensi dll.
3. Assembly ini dijalankan oleh Common Language Runtime NET. Framework. The Common
Language Runtime mengelola semua aspek bagaimana perakitan dijalankan, termasuk
mengubah Intermediate Language ke kode asli yang dapat dijalankan oleh sistem operasi,
pengelolaan memori untuk assembly, dan keamanannya.
Error Handling
Error Handling atau yang biasa disebut dengan penanganan kesalahan, terdiri atas beberapa
mekanisme, yaitu :
Jenis Kesalahan Contoh Kesalahan Langkah Penyelesaian
Kesalahan leksikal Kesalahan dalam mengetik Mendeteksi kesalahan
Melaporkan kesalahan
Tindak lanjut perbaikan
Kesalahan Sintaks Kesalahan dalam menuliskan
symbol operasi aritmatika
Kesalahan Semantics Tipe data yang salah
Variable belum didefinisikan
9
http://centurion2.com/VBHomework/VB1/vb1.php
9. Reaksi Compiler Pada kesalahan
Ada beberapa reaksi compiler menangani kesalahan :
Reaksi-reaksi yang tidak dapat
diterima
Compilator crash: Berhenti atau hang
Looping : compilator tidak bisa berhenti
(infinite/onbounded loop)
Menghasilkan Obyek program yang salah : berbahaya,
bisa diketahui/muncul setelah program dieksekusi
Reaksi yang benar, tapi kurang
dapat diterima dan kurang
bermanfaat
Compilator menemukan kesalahan pertama,
melaporkannya, lalu berhenti (halt)
Pemrogram membuang waktu untuk melakukan
pengulangan compilasi untuk setiap kali terdapat
sebuah error
Reaksi yang sudah dapat dilakukan Compilator melaporkan Error dan melakukan Recovery
atau Repair
Reaksi yang belum dapat dilakukan Compiler mengkoreksi kesalahan
Menghasilkan obyek program sesuai yang diinginkan
pemrogram
Compiler memiliki kemampuan untuk mengetahui
maksud dari pemrogram
Belum diimplementasikan pada program (sekarang ini)
Error Recovery
Bertujuan mengembalikan parser ke kondisi stabil agar supaya dapat melanjutkan proses parsing
ke posisi selanjutnya.
Mekanisme Ad Hoc Recovery yang dilakukan tergantung dari si pembuat
compiler
Tidak terikat pada suatu aturan tertentu
Syntax directed Recovery Menyisipkan atau membuang symbol terminal yang
dianggap menyebabkan error
Secod Error Recovery Melokalisir kesalahan
Context Sensitive Recovery Biasanya berkaitan dengan semantic
Error Repair
Memperbaiki kesalahan dan membuat source program valid dengan memodifikasi.
Mekanisme Ad Hoc Tergantung si pembut compiler
Syntax Directed Repair Menyisipkan atau membuang symbol terminal yang
dianggap menyebabkan error
Context Sensitive Repair Biasanya berkaitan dengan semantic
Bila kesalahan identifier, maka compilator akan
memperbaiki kesalahan dengan membuat identifier baru.