BAB V ANALISA SEMANTIK

dokumen-dokumen yang mirip
TEKNIK KOMPILASI PERTEMUAN Ke 4 dan 5 Abdul Muis Mappalotteng ANALISIS SEMANTIK

SEMANTIK. Int vector[10];

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

ALGORITMA PEMROGRAMAN 1C SEMANTIKS

TEKNIK KOMPILASI. Muhamad Nursalman Ilmu Komputer FPMIPA - UPI

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

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

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

BAB 1 PENDAHULUAN KOMPILASI. Pendahuluan

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

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

TEKNIK KOMPILASI. Firrar Utdirartatmo

UNIVERSITAS GUNADARMA

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

Fase-fase proses sebuah kompilasi

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

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

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

Pendahuluan. Kuliah online : Tekkom [2013/VI]

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

PENGANTAR TEKNIK KOMPILASI

Perjalanan sebuah intruksi

Jumlah maksimum operand dalam suatu computer menunjukkan organisasi prosessor mesin tersebut.

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

Pendahuluan. Tujuan Pembelajaran :

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

BAB II SINTAKS 2.1. SINTAKS

Diktat Kuliah Teknik Kompilasi BAB 1 PENDAHULUAN

BAHASA PEMOGRAMAN AT89S/Cxx (assembly)

INTRUKSI-INTRUKSI BAHASA PEMROGRAMAN ASSEMBLY

TEKNIK KOMPILASI. Alamat untuk tugas: Informasi: DADANG MULYANA. dadang mulyana 2013

BAB III ANALISIS DAN PERANCANGAN

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

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

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

BAB VI CARA PENANGANAN KESALAHAN

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan

Organisasi & Arsitektur Komputer

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

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

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

ALGORITMA PEMROGRAMAN 1C SINTAKS

Algoritma dan Struktur Data

Compiler & Interpreter

Aplikasi Rekursif dalam Analisis Sintaks Program

TUGAS MATA KULIAH TEKNIK KOMPILASI

Pengayaan Software/Hardware dan Pengantarmukaan

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

Web Site :

LAPORAN PRAKTIKUM 1 TEKNIK KOMPILASI

IKI20210 Pengantar Organisasi Komputer Kuliah Minggu ke-3: Bahasa Rakitan AVR

BAB I PENGENALAN TEKNIK KOMPILASI

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

STATEMEN GO TO DAN IF-THEN. Pertemuan IX

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

BAB II STACK (TUMPUKAN)

Simple As Possible (SAP) - 2. Abdul Syukur

PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

Struktur Pemilihan Ema Utami STMIK AMIKOM Yogyakarta

BAB 3 PENYELESAIAN KONDISI

Pengenalan Algoritma & Pemrograman

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

PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER JURUSAN PENDIDIKAN TEKNIK ELEKTRO FAKULTAS TEKNIK

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

Hanif Fakhrurroja, MT

Selection, Looping, Branching

Algoritma dan Struktur Data

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

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

SATUAN ACARA PERKULIAHAN STMIK UBUDIYAH INDONESIA SEMESTER GENAP TAHUN AKADEMIK 2013/2014

STRUKTUR DASAR ALGORITMA

OPERATOR, PERULANGAN DAN SELEKSI KONDISI

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

A. Dasar Teori. Urutan (Sequence) Pemilihan (Selection) Pengulangan (Iteration) Pernyataan Kondisional (If Statement)

LANGUAGES AND TRANSLATOR

BAB III ANALISIS DAN PERANCANGAN

DASAR KOMPUTER. Assembly Language

Arsitektur dan Organisasi Komputer. Set instruksi dan Pengalamatan

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR

BAB III ANALISIS DAN PERANCANGAN

IT234 - Algoritma dan Struktur Data. Ramos Somya

Kesalahan Program dapat berupa

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

Dewa Putu Yudhi Ardiana, S.Kom

STRUKTUR DASAR ALGORITMA. Rio Widyatmoko,

BAB I PENDAHULUAN. 1.1 Latar Belakang

ORGANISASI KOMPUTER INSTRUKSI MESIN DAN PROGRAM MATA KULIAH:

24/09/2017 PERCABANGAN

PENGAMBILAN KEPUTUSAN

Pengambilan Keputusan. Konsep Pemrograman Oleh Tita Karlita

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

SUMBER BELAJAR PENUNJANG PLPG

Pertemuan 10. Tumpukan (Stack) Dipersiapkan oleh : Boldson Herdianto. S., S.Kom., MMSI.

2.4. Struktur Branching

FLOWCHART - LANJUTAN

STRUKTUR DATA Pertemuan 4

Transkripsi:

BAB 5 ANALISA SEMANTIK 50 BAB V ANALISA SEMANTIK TUJUAN PRAKTIKUM 1) Memahami dan mengerti tugas analisa semantik. 2) Memahami dan mengerti notasi posfix dan kode antara. 3) Memahami dan mengerti pembangkit kode. TEORI PENUNJANG 5.1 Analisa Semantik 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 variabel 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 : Memeriksa keberlakuan nama nama meliputi pemeriksaan : Duplikasi Pengecekan apakah sebuah nama terjadi pendefinisian lebih dari dua kali. Pengecekan dilakukan pada bagian pengelola blok.

BAB 5 ANALISA SEMANTIK 51 Terdefinisi Pengecekan apakah sebuah nama yang dipakai pada tubuh program sudah terdefinisi atau belum. Pengecekan dilakukan pada semua tempat kecuali blok. 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.2 Kode Antara. 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. 5.3 Notasi Postfix. Pada notasi postfix operator diletakkan paling akhir, maka disebut juga dengan notasi Sufix atau Reverse Polish. Sintaks notasi postfix : <operand> <operand> <operator> Contoh ekspresi: (a+b)*(c+d) Dinyatakan dengan notasi postfix : ab+cd+* Kontrol program yang ada dapat diubah ke dalam notasi postfix. Misal : IF <exp> THEN <stmt1> ELSE <stmt2>

BAB 5 ANALISA SEMANTIK 52 Diubah ke dalam postfix : <exp> <label1> BZ <stmt1> <label2> BR <stmt2> label1 label2 Keterangan : BZ : branch if zero (zero = salah) {bercabang/meloncat jika kondisi yang dites salah} BR : branch {bercabang/meloncat tanpa ada kondisi yang dites} Arti dari notasi postfix diatas adalah : Jika kondisi ekspresi salah, maka instruksi akan meloncat ke label1 dan menjalankan statement2. Bila kondisi ekspresi benar, maka statement1 akan dijalankan lalu meloncat ke label2. Label1 dan label2 sendiri menunjukkan posisi tujuan loncatan, untuk label1 posisinya tepat sebelum statement2, dan label2 adalah statement2. 5.4 Notasi N Tuple. Bila pada postfix setiap baris instruksi hanya terdiri dari satu tuple, pada notasi N tuple setiap baris bisa terdiri dari beberapa tuple. Format umum notasi N-tuple adalah : operator...n-1 operan Notasi N-Tuple yang biasa digunakan adalah notasi 3 tupel dan 4 tupel. 5.4.1 Triples Notation Notasi ini memiliki format sebagai berikut : <operator> <operan> <operan> Contoh instruksi : A := D * C + B / E Kode antara tripel : 1. *, D, C 2. /, B, E 3. +, (1), (2) 4. :=, A, (3)

BAB 5 ANALISA SEMANTIK 53 Kekurangan dari notasi tripel adalah sulit pada saat melakukan optimasi, maka dikembangkan Indirect Triples yang memiliki dua list, yaitu list instruksi dan list eksekusi. List instruksi berisi notasi tripel, sedang list eksekusi mengatur urutan eksekusinya. 5.4.2 Quadruples Notation Format notasi quadruples : <operator> <operan> <operan> <hasil> Hasil adalah temporary variabel yang bisa ditempatkan pada memory atau register. Masalah yang ada bagaimana mengelola temporary variabel (hasil) seminimal mungkin. Contoh instruksi : Dibuat dalam kode antara : 1. *, D, C, T1 2. /, B, E, T2 3. +, T1, T2, A A := D * C + B / E 5.5 Pembangkitan Kode. Hasil dari tahapan analisis akan diterima oleh bagian pembangkit kode (code generation). Di sini kode antara dari program biasanya ditranslasikan ke bahasa assembly atau bahasa mesin. Contoh : ( A+B ) * ( C+D) Kode antara dalam bentuk quadruples : 1. +, A, B, T1 2. +, C, D, T2 3. *, T1, T2, T3 Dapat ditranslasikan ke dalam bahasa assembly dengan akumulator tunggal : LDA A { muat isi A ke akumulator } ADD B { tambahkan isi akumulator dengan B }

BAB 5 ANALISA SEMANTIK 54 STO T1 { simpan isi akumulator ke T1 } LDA C ADD D STO T2 LDA T1 MUL T2 STO T3 LAPORAN PENDAHULUAN 1. Sebutkan kegunaan kode antara? 2. Buatlah notasi postfix dari ekspresi (a+b)*(c+d) LAPORAN AKHIR 1. Jelaskan tugas analisa semantik! 2. Ubah statement berikut ke menjadi kode antara dalam bentuk notasi postfix dan triple! Instruksi CASE CASE A OF 1 : B := 10; 2 : B := 20; 3 : B := 30; END;