Fase-fase proses sebuah kompilasi

dokumen-dokumen yang mirip
TEKNIK KOMPILASI. Alamat untuk tugas: Informasi: DADANG MULYANA. dadang mulyana 2013

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 1

BAHASA SUMBER. DEFINISI bahasa sumber

KOMPILASI. Assembler Bahasa Rakitan Bahasa Mesin Compiler (Kompilator) Bahasa Tingkat Tinggi Bahasa tingkat rendah

Pendahuluan. Kuliah online : Tekkom [2013/VI]

Teknik Kompilasi II TEKNIK KOMPILASI. Ernastuti & Sulistyo P 1/52. Ernastuti & Sulistyo

Teori Komputasi 10/15/2015. Bab 1: Pendahuluan. Teori Komputasi dan Teknik Kompilasi. Teori Komputasi dan Teknik Kompilasi

Pendahuluan. Tujuan Pembelajaran :

SEMANTIK. Sintak mendifinisikan suatu bentuk program yang benar dari suatu bahasa.

Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis. Menggunakan simbol persegi panjang untuk non terminal

SEMANTIK. Int vector[10];

TEKNIK KOMPILASI. Muhamad Nursalman Ilmu Komputer FPMIPA - UPI

Bab III Semantik. Konsep Semantik Bahasa Pemrograman (Semantik Analisis)

PENGANTAR TEKNIK KOMPILASI

MK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 COMPILER. Jurusan Sistem Komputer S1 Universitas Gunadarma

BAB II ANALISA LEKSIKAL (SCANNER)

TEORI BAHASA & OTOMATA (PENGENALAN KOMPILASI) PERTEMUAN VI Y A N I S U G I Y A N I

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

Perjalanan sebuah intruksi

ALGORITMA PEMROGRAMAN 1C SEMANTIKS

TEKNIK KOMPILASI (TEKKOM) ISTIQOMAH, S.KOM /SEMESTER VI

SEMANTIK Syntax mendefinisikan suatu bentuk program yang benar dari suatu bahasa.

MODEL KOMPILATOR FUNGSI UMUM BAGIAN KOMPILATOR. Dosen Pengampu: Utami Dewi Widianti,S.Kom

TEKNIK KOMPILASI. Firrar Utdirartatmo

BAB II SINTAKS 2.1. SINTAKS

Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah komponen terkecil kalimat yang tidak bisa dipisahkan lagi.

LANGUAGES AND TRANSLATOR

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

UNIVERSITAS GUNADARMA

1. Algoritma & Pemrograman

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

TUGAS MATA KULIAH TEKNIK KOMPILASI

BAB V ANALISA SEMANTIK

Kesalahan Program dapat berupa

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 16

BAB VI CARA PENANGANAN KESALAHAN

TEKNIK KOMPILASI PERTEMUAN Ke 4 dan 5 Abdul Muis Mappalotteng ANALISIS SEMANTIK

SMA SANTO PAULUS PONTIANAK

Syntax, Semantic & Grammar. Konsep Bahasa Pemrograman Materi 3 Yudianto Sujana, M.Kom

Kesalahan Program Penanganan Kesalahan Reaksi Compiler Pada kesalahan Error Recovery Error repair

Compiler & Interpreter

ALGORITMA PEMROGRAMAN 1C SINTAKS

TEKNIK KOMPILASI. Dosen : Dwi Retno Wahyuningsih, S. Kom. Jurusan : Teknik Informatika Semester Genap 2007/2008

2.4. Struktur Branching

Aplikasi Rekursif dalam Analisis Sintaks Program

Algoritma dan Struktur Data

Algoritma dan Struktur Data

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom

Kuliah Online : TEKKOM [2013/VI]

TEKNIK KOMPILASI. Oleh. Hartono

TEORI BAHASA DAN AUTOMATA

Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

TEKNIK OPTIMASI. Dependensi Optimasi. Optimasi Lokal. Menghasilkan kode program dengan ukuran yang lebih kecil, sehingga lebih cepat eksekusinya.

Web Site :

LAPORAN PRAKTIKUM 1 TEKNIK KOMPILASI

Start. Baris Program. Baris Program. Baris Program. Selesai. Contoh Program Struktur berurutan menghitung luas empat persegi panjang

BAHASA PEMROGRAMAN. Merupakan prosedur/tata cara penulisan program.

TEKNIK KOMPILASI. Dosen : Dwi Retno Wahyuningsih, S. Kom. Jurusan : Teknik Informatika Semester Genap 2007/2008

Teknik Kompiler 12. oleh: antonius rachmat c, s.kom

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

Tujuan. Pengenalan. Pengenalan Pemrograman Komputer. Komponen Dasar pada Komputer : Hardware. Komponen Dasar pada Komputer : Hardware

COMPILER Aspek Kompilasi

KONSEP DASAR BAHASA PASCAL

PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL

Pengenalan Algoritma & Pemrograman

Program. Instruksi-instruksi yang diberikan kepada komputer agar dapat melaksanakan tugas-tugas tertentu

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

Teknik optimasi. Teknik optimasi kode program Tujuan: menghasilkan kode program yang berukuran lebih kecil dan lebih cepat pada saat dieksekusi.

BAB I PENGENALAN TEKNIK KOMPILASI

PERKEMBANGAN PASCAL. Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

BAB I PENDAHULUAN 1.1 Latar Belakang

PENGENALAN DASAR PEMROGRAMAN

Learning Outcomes. akan mampu : (C3) perancangan compiler yang paling optimal (C4)

MODUL PRAKTIKUM PEMROGRAMAN PASCAL. Fight #1 PENGENALAN PASCAL, VARIABEL, TIPE DAN KONSTANTA.

MK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 ASSEMBLER. Jurusan Sistem Komputer-S1 Universitas Gunadarma

Fungsi Bahasa pemrograman adalah sebagai media untuk menyusun dan memahami serta sebagai alat komunikasi antara pemrogram dengan computer.

Pengenalan Pemrograman

PENGENALAN ALGORITMA & PEMROGRAMAN P E N G A N T A R T E K N O L O G I I N F O R M A S I ( T I F )

Kualitas bahasa pemrograman: Ekspresivitas : secara jelas menggambarkan algoritma yang dibuat oleh programmer

Gambar 1. Blok Utama Komputer

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom

Tahap pengembangan program

BAB-2 : TIPE DATA, VARIABEL DAN OPERATOR

BAB I PENGANTAR Pendahuluan Penyajian 1.1 Latar Belakang 1.2 Algoritma dan Struktur Data

TEORI BAHASA DAN OTOMATA [TBO]

Pemrograman Komputer Pendahuluan

SOAL DAN JAWABAN UTS PEMROGRAMAN DASAR KELAS X

Bahasa Pemograman Modul XI

BAB II DASAR TEORI. 2.1 Kompilator

Dasar Komputer & Pemrograman 2A

Konstruksi Dasar Algoritma

dengan menyebutkan judul prosedurnya. dalam bentuk prosedur-prosedur. diperlukan.

PENGENALAN PHP DASAR

SUMBER BELAJAR PENUNJANG PLPG

Belajar itu, Tidak harus menunggu materi dari guru Inisiatif Mencari itulah BELAJAR.

Teknik Optimasi. Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

Konsep Dasar Pemrograman

ORGANISASI KOMPUTER. Pertemuan II KONSEP DASAR KOMPUTER - SOFTWARE -

Transkripsi:

Fase-fase proses sebuah kompilasi

Penganalisa Leksikal membaca program sumber, karakter demi karakter. Sederetan (satu atau lebih) karakter dikelompokkan menjadi satu kesatuan mengacu kepada pola kesatuan kelompok karakter (token) yang ditentukan dalam bahasa sumber. Kelompok karakter yang membentuk sebuah token dinamakan lexeme untuk token tersebut. Setiap token yang dihasilkan disimpan di dalam tabel simbol. Sederetan karakter yang tidak mengikuti pola token akan dilaporkan sebagai token tak dikenal (unidentified token)

Penganalisa Sintaks memeriksa kesesuaian pola deretan token dengan aturan sintaks yang ditentukan dalam bahasa sumber. Sederetan token yang tidak mengikuti aturan sintaks akan dilaporkan sebagai kesalahan sintaks (sintax error). Secara logika deretan token yang bersesuaian dengan sintaks tertentu akan dinyatakan sebagai pohon parsing (parse tree)

Penganalisa Semantik memeriksa token dan ekspresi dari batasanbatasan yang ditetapkan. Batasan-batasan tersebut misalnya : a. panjang maksimum token identifier adalah 8 karakter, b. panjang maksimum ekspresi tunggal adalah 80 karakter, c. nilai bilangan bulat adalah -32768 s/d 32767, d. operasi aritmatika harus melibatkan operanoperan yang bertipe sama

Pembangkit Kode Antara membangkitkan kode antara (intermediate code) berdasarkan pohon parsing. Pohon parse selanjutnya diterjemahkan oleh suatu penerjemah yang dinamakan penerjemah berdasarkan sintak (syntax-directed translator). Hasil penerjemahan ini biasanya merupakan perintah tiga alamat (three-address code) yang merupakan representasi program untuk suatu mesin abstrak. Perintah tiga alamat bisa berbentuk quadruples (op, arg1, arg2, result), tripels (op, arg1, arg2). Ekspresi dengan satu argumen dinyatakan dengan menetapkan arg2 dengan - (strip, dash)

Pengoptimal kode melakukan optimasi (penghematan space dan waktu komputasi), jika mungkin, terhadap kode antara

Pembangkit Kode Mesin membangkitkan kode dalam bahasa target tertentu (misalnya bahasa mesin)

Contoh Kompilasi

View dari programmer

Pembuatan compiler Bahasa mesin Sangat sukar dan sangat sedikit kemungkinannya untuk membuat compiler dengan bahasa ini, karena manusia susah mempelajari bahasa mesin, Sangat tergantung pada mesin, Bahasa Mesin kemungkinan digunakan pada saat pembuatan Assembler

Pembuatan compiler Assembly Hasil dari program mempunyai Ukuran yang relatif kecil Sulit dimengerti karena statement/perintahnya singkat-singkat, butuh usaha yang besar untuk membuat Fasilitas yang dimiliki terbatas

Pembuatan compiler Bahasa Tingkat Tinggi (high level language) Lebih mudah dipelajari Fasilitas yang dimiliki lebih baik (banyak) Memiliki ukuran yang relatif besar, misal membuat compiler pascal dengan menggunakan bahasa C Untuk mesin yang berbeda perlu dikembangkan tahapantahapan tambahan. Misal membuat compiler C pada Dos bedasarkan compiler C pada unix

Pembuatan compiler BootStrap Untuk membangun sesuatu yang besar, dibangun/dibuat dulu bagian intinya (niklaus Wirth - saat membuat pascal compiler)

BootStrap P2 P1 Po PO dibuat dengan assembly, P1 dibuat dari P0, dan P2 dibuat dari P1, jadi compiler untuk bahasa P dapat dibuat tidak harus dengan menggunakan assembly secara keseluruhan

Contoh dari source program ke dalam kode mesin Source code Assembly Language Machine language IF COUNT =10 Compare A to B Compare 3477 2883 GOTO DONE If equal go to C If = go to 23883 ELSE Go to D Go to 23343 GOTO AGAIN ENDIF Actual machine code 10010101001010001010100 10101010010101001001010 10100101010001010010010

BAHASA SUMBER

DEFINISI bahasa sumber Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah unit terkecil komponen bahasa yang tidak bisa dipisah-pisahkan lagi. Kalimat-kalimat : Seekor kucing memakan seekor tikus. dan Budi menendang sebuah bola. adalah dua contoh kalimat lengkap Bahasa Indonesia. A cat eats a mouse dan Budi kick a ball. adalah dua contoh kalimat lengkap Bahasa Inggeris. if a2 < 9.0 then b2 := a2+a3; dan for i := start to finish do A[i] := B[i]*sin(i*pi/16.0). adalah dua contoh kalimat lengkap dalam Bahasa Pemrograman Pascal. Dalam bahasa pemrograman kalimat lebih dikenal sebagai ekspresi sedangkan kata sebagai token

Bahasa Tingkat Tinggi (Pemrograman ) Bahasa yang lebih dikenal oleh manusia, maksudnya adalah statement yang digunakan menggunakan bahasa yang dipakai oleh manusia (inggris), Bahasa pemrograman didefinisikan dengan menentukan bentuk programnya (sintak) dan arti programnya (semantik) Memberikan fasilitas yang lebih banyak, seperti struktur kontrol program yang terstruktur, blok-blok serta prosedur dan fungsifungsi Progam mudah untuk di koreksi (debug) Tidak tergantung pada salah satu mesin Kontrol struktur seperti : kondisi (if.. Then.. Else ), perulangan (For, while ), Struktur blok (begin.. End {.. } )

Tingkatan Bahasa Pemrograman

Sumber perancangan bahasa Konstruksi yang diturunkan dari bahasa alami, karena bahasa alami dapat digunakan sebagai panduan untuk perancangan sintaks Matematika, misal untuk perancangan operasi aritmatika Bahasa pemrograman yang sudah ada.