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

Slides:



Advertisements
Presentasi serupa
PASCAL - 8 MODUL.
Advertisements

Dasar Komputer & Pemrog 2 A minggu 5. PROCEDURE DAN FUNCTION Procedure dan Function adalah suatu program yang terpisah dalam blok sendiri Dan memiliki.
Pengayaan Software/Hardware dan Pengantarmukaan
TIPE data Tipe data yang dikenal dalam bahasa pascal antara lain :
Pengenalan Bahasa Pemrograman Pascal
RECORD.
Struktur Percabangan Komang Kurniawan W., M.Cs.
STRUKTUR DATA PERTEMUAN 5
Chapter 3.2 : Tipe, Nama dan Nilai
TABEL INFORMASI / SIMBOL
Situasi Saat Program Berjalan (Run-time Environment)
Analisis Semantik.
Procedure & Function Sub Program.
Kuliah 12 Type Checking.
Logika & Algoritma -- Pertemuan II: Variabel dan Operator Logika & Algoritma --
PROSEDUR.
Outline Awalnya dikembangkan oleh Borland dan umunya igunakan untuk paket perangkat lunak tingkat lanjut dengan kepustakaan yang lebih banyak dan.
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
Variabel, Konstanta, Tipe Data Dan Operator pada VB
MATERI PERKULIAHAN TEKNIK KOMPILASI
Pengantar Teknik Kompilasi
ALGORITMA PEMROGRAMAN 2A
Tabel Informasi/ Tabel Simbol
Istiqomah, S.Kom/Tekkom 2013
Struktur Program Pascal
Cara Penanganan Kesalahan
Dasar-Dasar Pemrograman
Tipe Data , Variabel, Operator
Algoritma dan Pemrograman 2A
TABEL INFORMASI atau TABEL SIMBOL
SUBRUTIN.
Analisa Semantik, Kode Antara,
Analisis semantik, kode antara dan pembangkitan kode
Pesan-pesan kesalahan
SEMANTIKS Pertemuan Ke-3.
Analisis leksikal (Scanner)
MATERI PERKULIAHAN TEKNIK KOMPILASI
MODEL KOMPILATOR FUNGSI UMUM BAGIAN KOMPILATOR Dosen Pengampu:
Algoritma dan Pemrograman
PEMROGRAMAN PASCAL ELEMEN PEMROGRAMAN PASCAL.
Analisis Sintaks (Parsing)
ANALISIS LEKSIKAL (Scanner)
Analisis leksikal ( SCANNER )
BAHASA SUMBER.
Analisa Semantik, Kode Antara,
Teknik Optimasi.
Cara Penanganan Kesalahan
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
Ekspresi & Alur Kendali
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
VARIABEL DAN TIPE DATA Erizal, S.Si, M.Kom Sistem Informasi
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
MATERI PERKULIAHAN TEKNIK KOMPILASI
Array (Larik)‏ Struktur Data 1 1.
CARA PENANGAN KESALAHAN
Pemrograman Dasar I Putu Hendra Tresnadana. S.
PENGENALAN USER INTERFACE DELPHI 7.0
STRUKTUR DATA.
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
Pemrograman, Bahasa C dan Jenis Data Utama
Chapter 3.2 : Tipe, Nama dan Nilai
Ilustrasi Proses Kompilasi
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
Teknik Optimasi by kustanto
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
Semantics Analyser by Kustanto
CARA PENANGAN KESALAHAN
ANALISIS SEMANTIK, KODE ANTARA, DAN PEMBANGKITAN KODE
KODE ANTARA,PEMBANGKITAN KODE,PENANGANAN
TEKNIK OPTIMASI & TABEL INFORMASI
Transcript presentasi:

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

Pengertian (1) Suatu compiler selain harus memeriksa leksikal dan sintaks juga harus memeriksa semantik dari program sumber tersebut. Dalam pemeriksaan semantik yang diperiksa adalah makna dari setiap pemakaian token dari program sumber.

Pengertian (2) Pada tahapan ini dilakukan pengecekan pada struktur akhir yang telah diperoleh dan diperiksa kesesuaiannya dengan komponen program yang ada. Memanfaatkan pohon sintaks yang dihasilkan pada proses parsing. Analisis Semantiks berarti menentukan makna dari serangkaian instruksi yang terdapat dalam program sumber

Lingkup Pemeriksaan Untuk mengetahui makna maka dilakukan pemeriksaan: Apakah variabel yang ada telah didefinisikan sebelumnya, pemeriksaan duplikasi dan terdefinisi. Apakah variabel-variabel tersebut tipenya sama, jika ada operasi dua operan maka tipe operan1 harus bisa dioperasikan dengan operan2. Apakah operan yang akan dioperasikan tersebut ada nilainya dan seterusnya.

Tipe dan Contoh Kesalahan Contoh Salah menurut semantik (dalam bahasa Pascal) Program Coba; Var a:integer; b: string; begin a:=b; end. Umumnya dalam analisa semantik yang diperiksa adalah kesalahan pemakaian suatu tipe, selain itu beberapa kesalahan lain, diantaranya Flow of Control Check, Uniqueness Check, Name Related Check, Type Checking, Type Conversion, Type Coercion.

Flow of Control Check Suatu statement yang menyebabkan kendali aliran meninggalkan konstruksinya harus mempunyai lokasi untuk memindahkan aliran kendali (Flow of Control). Contoh : { Case 1 : printf (”Satu”); break; Case 2 : printf (”dua”); Break; }

Uniqueness Check (1) Pada situasi tertentu suatu obyek hanya boleh didefinisikan satu kali. Contoh : a. Variabel Global tidak boleh didefinisikan > 1 kali Var a: integer; a : string; b. Nama procedure dalam suatu level tidak boleh sama

Uniqueness Check (2) Begin ----- end; Function Tes; ---- Procedure Tes; Begin ----- end; Function Tes; ---- c. Nama konstanta tidak boleh sama d. Nama tipe dalam level yang sama tidak boleh sama

Name Related Check (1) Nama–nama yang sama kadang harus muncul 2 kali. Kompilator memeriksa bahwa nama yang sama tersebut harus muncul 2 kali. Contoh : Dalam bahasa dbase, Basic, ADA nama yang sama harus muncul 2 kali sebagai penunjuk akhir. Dalam dbase For A 1 to 10 --- Next A Dalam ADA Procedure Tes is end Tes

Name Related Check (2) Pada beberapa bahasa mereka memiliki feature khusus sehingga analisa semantik harus lebih mendalam. Misalnya : Overloaded Operator Contoh penggunaan tan ‘+’ pada banyak bahasa dapat digunakan untuk tipe bilangan real, integer dan string. Polymorphism Pada beberapa bahasa diperbolehkan suatu procedure punya nama (dalam satu level), asalkan memiliki Jenis berbeda (proc/func) dan Jumlah parameter dan tipenya berbeda (contohnya pada bahasa yang berbasis obyek seperti C++)

Type Checking Misalnya dalam memeriksa apakah suatu operator digunakan oleh operand yang tidak sesuai. Contoh : Var a: string; b: string; begin a:= a*b; end.

Type Conversion Pada beberapa bahasa dimungkinkan suatu tipe berubah menjadi tipe lain, perubahan ada yang dilakukan secara : 1. Eksplisit Secara Manual x := ord(‘A’) → byte y := chr(32) → char m := round(n) → Int 2. Implisit Secara otomatis Var a : real; b : integer; Begin a:=b/2 (a := int/2)

Type Coercion Pada bahasa lain suatu tipe dapat dipaksa untuk berubah tipe. Contoh : dalam bahasa C : Char a; Int b; b=(int)a;