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

dokumen-dokumen yang mirip
Teknik Kompilasi Dosen: Utami Dewi W.,S.Kom

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

BAB V ANALISA SEMANTIK

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

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

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

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

Kuliah Online : TEKKOM [2013/VI]

TUGAS MATA KULIAH TEKNIK KOMPILASI

UNIVERSITAS SAM RATULANGI MANADO FAKULTAS TEKNIK, JURUSAN TEKNIK ELEKTRO Program Studi S-1 Teknik Informatika. Data & Ekspresi

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

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

Perjalanan sebuah intruksi

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

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

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

Modul 1 Dasar Dasar Bahasa Pemrograman C

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

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

Pertemuan 3 ELEMEN-ELEMEN BAHASA PEMROGRAMAN. Berikut adalah element-element pada bahasa pemrograman:

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

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

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

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

SEMANTIK. Int vector[10];

POINTER. Tim Alpro Teknik Informatika

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

SMA SANTO PAULUS PONTIANAK

STRUKTUR PROGRAM. Secara ringkas, struktur suatu program Pascal dapat terdiri dari : 1.Judul Program 2.Blog Program a.

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 1 & 2

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

BAB III PENGENALAN STRUKTUR BAHASA PASCAL. Kompetensi Dasar : 1. Mahasiswa mengenal dan memahami struktur bahasa Pascal

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

Chapter 3.2 : Tipe, Nama dan Nilai

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

ALGORITMA PEMROGRAMAN 1C SEMANTIKS

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

TPI4202 e-tp.ub.ac.id. Lecture 5

BAB 3. OPERATOR DALAM BHS C

FUNGSI. Blok fungsi juga diawali dengan kata cadangan Begin dan di akhiri dengan kata cadangan End dan titik koma.

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

KONSEP DASAR BAHASA PASCAL

BAB 2 LANDASAN TEORI

Teori Algoritma. Struktur Algoritma

BAB VI CARA PENANGANAN KESALAHAN

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

AP2a (Pascal) Akuntansi Kelas 1 Semester 2. Hana Pertiwi S.T

Lecturer: Abdusy Syarif. Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana. Tipe Data

.::BAB II.::MENGENAL PASCAL

Bab VI Value, Domain dan Type

BAB IV HASIL PENELITIAN DAN PENERAPAN

Penyamarataan membantu untuk menyederhanakan daftar tanpa batas ini untuk: sqr = {(x,x*x) x didalam Nat}

Konsep tipe data pada bahasa pemrograman mempunyai standar bentuk umum, yaitu :

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

Algoritma Pemrograman A

Pengantar dalam Bahasa Pemrograman Turbo Pascal

BAB II DASAR TEORI. 2.1 Kompilator

KONSEP DASAR BAHASA PASCAL

TEKNIK KOMPILASI. Firrar Utdirartatmo

TABEL INFORMASI / SIMBOL

SUMBER BELAJAR PENUNJANG PLPG

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

PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL

Modul 1 Pengantar Bahasa Pascal

POINTER. Tim Alpro Teknik Informatika

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

Algoritma Pemrograman

STRUKTUR BAHASA PEMROGRAMAN

KONSEP DASAR BAHASA PASCAL. Pengertian SEJARAH SINGKAT BAHASA PASCAL STRUKTUR DAN KOMPONEN DASAR PROGRAM PASCAL.

Algoritma Pemrograman

Struktur Program Bahasa C

Pada akhir pertemuan ini, diharapkan mahasiswa memiliki kemampuan untuk: Menggunakan struktur kendali pencabangan bersyarat dalam bahasa pemrograman.

& PEMROGRAMAN. Alex De Kweldju, S.Kom D3 Teknik Komputer Fakultas Teknik Universitas Negeri Papua

PERTEMUAN 7 REVIEW (QUIZ)

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

MODUL II VARIABEL DAN TIPE DATA

ELEMEN-ELEMEN BAHASA PEMROGRAMAN. Berikut adalah element-element pada bahasa pemrograman:

Contoh soal Struktur Program Pascal (Seleksi tingkat propinsi TOKI 2004)

Tahapan Membuat Program

JENIS-JENIS DATA DAN STATEMEN INPUT OUTPUT

Tipe Data dan Variabel

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

Pointer. ted = &andy;

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

1/8/2011. Pertemuan 13-14: Dasar Pemrograman. Sub pokok bahasan. Program Komputer dan Bahasa Pemrograman. Program Komputer dan Bahasa Pemrograman

Aliran Kendali (Flow Control)

Dasar Pemrograman Mikrokontroler dengan Bahasa C

KONSEP DASAR BAHASA C

OPERATOR BAHASA C. Obyektif : 4. Mengetahui macam-macam operator dalam Bahasa C. 5. Mengetahui dan dapat menggunakan format pada tiap tipe data..

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

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

menunjukkan tipe hasil dari fungsi. sqr, succ dan sebagainya. buat sendiri.

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

Aplikasi Rekursif dalam Analisis Sintaks Program

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

TEKNIK KOMPILASI. Muhamad Nursalman Ilmu Komputer FPMIPA - UPI

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

Transkripsi:

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; begin end. a:=b; Var a:integer; b: string; Umumnya dalam analisa semantik yang diperiksa adalah kesalahan pemakaian suatu tipe, selain itu beberapa kesalahan lain (static checking), 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 Contoh : Var a: integer; a : string; b. Nama procedure dalam suatu level tidak boleh sama Contoh :

Uniqueness Check (2) Procedure Tes; Begin ----- end; Function Tes; Begin ---- end; 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 Check is --- end Check

Name Related Check (2) Pada beberapa bahasa mereka memiliki feature khusus sehingga analisa semantik harus lebih mendalam. Misalnya : 1. Overloaded Operator Contoh penggunaan tan + pada banyak bahasa dapat digunakan untuk tipe bilangan real, integer dan string. 2. 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++)

Name Related Check (3) Istilah polymorphic juga dapat diterapkan untuk sepenggal code yang dapat dieksekusi dengan argument yang berbeda tipenya. Contoh : C reference manual menyatakan tentang pointer operator & : Jika tipe operand adalah x, maka hasilnya akan bertipe pointer to x. Karena beberapa tipe data bisa menggantikan x, maka operator & dalam C bersifat polymorphic.

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 (1) 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 Conversion (2) Contoh : Suatu ekspresi adalah x + i, dimana : x bertipe real dan i bertipe integer. Postfix notation untuk x + i adalah : x i inttoreal real+ dimana operator inttoreal meng-konversikan i dari integer ke real, kemudian real+ melakukan operasi penjumlahan.

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