ALGORITMA PEMROGRAMAN 1C
SEMANTIKS Indah Wahyuni
Konsep Bhs. Pemrograman, 2012
PENDAHULUAN Parser
Semantiks, Indah Wahyuni
tidak mengetahui symbol-simbol. Untuk mengenali makna dari simbolsimbol tersebut maka compiler memanggil routin semantics. Membutuhkan semacam ekpresi untuk mengirimkan suatu nilai kebenaran (TRUE, FALSE, NOT atau nilai INTEGER). Program hanya dapat dieksekusi jika benar serta mengikuti aturan syntax dan semantic.
2
Konsep Bhs. Pemrograman, 2012
PENDAHULUAN Untuk
mengetahui makna, maka routin ini akan memeriksa: Apakah variabel yang ada telah didefenisikan terlebih dahulu Apakah variabel-variabel tersebut tipenya sama Apakah operand yang akan dioperasikan tersebut ada nilainy, dst Menggunakan table symbol Pemeriksaan bisa dilakukan pada table identifier, table display dsb
Semantiks, Indah Wahyuni
3
Konsep Bhs. Pemrograman, 2012
PENDAHULUAN Pengecekkan yang dilakukan dapat berupa:
Semantiks, Indah Wahyuni
1.Memeriksa penggunaan nama-nama (keberlakuannya) Duplikasi. Apakah sebuah nama terjadi pendefenisian lebih dari 2 kali. Pengecekkan dilakuak pada bagian pengelolaan block.
Terdefenisi Apakah nama yang dipakai pada program sudah terdefenisi atau belum. Pengecekkan dilakukan pada semua tempat kecuali block.
4
Konsep Bhs. Pemrograman, 2012
PENDAHULUAN
Semantiks, Indah Wahyuni
2. Memeriksa tipe Melakuakan pemeriksaan terhadap kesesuaian tipe dalam statemen-staemen yang ada. Misalnya bila terdapat suatu operasi, diperiksa tipe operandnya. Contoh : Ekspresi yang mengikuti if berarti tipenya Boolean, akan diperiksa tipe identifier dan tipe ekspresinya Bila ada operasi antara 2 operand maka tipe operand yang pertama harus bisa dioperasikan dengan operand yang kedua
5
Konsep Bhs. Pemrograman, 2012
TEKNIK SEMANTIK
1. Operational Semantic Mendefenisikan suatu mesin buatan (abstrak) dengan instruksi-instruksi primitive, tidak perlu realistic, tetapi dengan cukup sederhana supaya tidak muncul kesalahpahaman. Semantik operasional menceritakan bagaimana perhitunga yang dilakukan dengan mendefinisikan bagaimana mensimulasikan pelaksanaan program.
Semantiks, Indah Wahyuni
6
Konsep Bhs. Pemrograman, 2012
TEKNIK SEMANTIK 2. Detonational Semantic
Semantiks, Indah Wahyuni
Menggambarkan apa yang diproses dengan objek matematika. Pendefinisian denotasi dari tiga bagian: sintaks abstrak dari bahasa itu, aljabar semantik yang menggambarkan model komputasi dan fungsi nilai Diberikan suatu fungsi yang memetakan program-program komputer yang ditunjukkan ke dalam bentuk nilai-nilai abstrak secara matematika (angka, nilai kebenaran, fungsi matematika, dsb)
7
Konsep Bhs. Pemrograman, 2012
TEKNIK SEMANTIK
3. Axiomatic Semantic Mendefinisikan sebuah teori matematika program yang ditulis dalam bahasa.
Pada pendekatan ini didefenisikan suatu tindakan program yang dibangun dengan properti logika yang menyimpan status computer sebelum dan sesudah dieksekusi.
Semantiks, Indah Wahyuni
8
Konsep Bhs. Pemrograman, 2012
TEKNIK SEMANTIK
4. Algebraic Semantic Menggambarkan arti sebuah program dengan definisi aljabar. Dipertimbangkan suatu objek komputasi yang menjadi syarat-syarat dalam aljabar multi stored. Program mengimplementasikan fungsi yang dapat diwujudkan dengan suatu persamaan di antara syarat-syarat tersebut.
Semantiks, Indah Wahyuni
9
5. Translation Semantic Menterjemahkan sebuah program ke bahasa lain, biasanya bahasa mesin
Seperti dalam pengambilan keputusan secara alamiah dengan logika, program diberi suatu arti dari aturan yang diturunkan yang menggambarkan penilaian gagasan suatu bahasa.
Semantiks, Indah Wahyuni
Konsep Bhs. Pemrograman, 2012
TEKNIK SEMANTIK
10
Kode
Dapat dihasilkan dengan mudah 2. Mudah ditranslasikan menjadi program sasaran (target program) 1.
Semantiks, Indah Wahyuni
antara (intermediate code) adalah sebuah representasi yang disiapkan untuk mesin abstrak tertentu. Dua sifat yang harus dipenuhi oleh kode antara adalah :
Konsep Bhs. Pemrograman, 2012
SYNTAX DIRECTED TRANSLATOR
11
Intermediate
Untuk memperkecil usaha dalam membangun kompilator dari sejumlah bahasa ke sejumlah mesin..
Semantiks, Indah Wahyuni
code merupakan hasil dari tahapan analisis Dibuat oleh kompilator pada saat mentranslasikan program dari bahasa tingkat tinggi Kegunaan dari kode antara sebagai berikut:
Konsep Bhs. Pemrograman, 2012
SYNTAX DIRECTED TRANSLATOR
12
Representasi
Semantiks, Indah Wahyuni
kode antara biasanya berbentuk tiga alamat (three address code), baik berbentuk quadruples atau triples. Syntax directed translation adalah suatu urutan proses yang mentranslasikan parse tree menjadi kode antara. Terdapat dua macam kode antara, yaitu Notasi Postfix dan N-Tuple
Konsep Bhs. Pemrograman, 2012
SYNTAX DIRECTED TRANSLATOR
13
Operator
(operand) (operand) (operator)
Contoh 1. Misalkan ekspresi: (a + b)*(c + d) Postfix : ab + cd + *
Semantiks, Indah Wahyuni
diletakkan paling akhir Disebut juga dengan notasi Sufix atau Reverse Polish. Sintaks notasi Postfix :
Konsep Bhs. Pemrograman, 2012
NOTASI POSTFIX
14
Semantiks, Indah Wahyuni
Contoh 2. menggunakan instruksi kontrol If (exp) then (stm1) else (stm2) Notasi prostfix: (exp) (label1) BZ (stm1) (label2) BR (stm2) BZ: Branch if zero (untuk exp yg salah) BR: Branch (untuk case tanpa ada exp)
Konsep Bhs. Pemrograman, 2012
NOTASI POSTFIX
15
Konsep Bhs. Pemrograman, 2012
NOTASI POSTFIX Misalkan
ekspresi:
Postfix:
11
a
16
c
21
c
12 13 14
b > 21
17 18 19
d := 24
22 23 24
e := -
15
BZ
20
BR
25
-
Semantiks, Indah Wahyuni
If a > b then c := d else c := e
16
Baris
terdiri dari beberapa tupel. Dibagi menjadi 2 yaitu:
Semantiks, Indah Wahyuni
Triples : (operator) , (operand), (operand) 2. Quad truples : (operator) , (operand), (operand) 1.
Konsep Bhs. Pemrograman, 2012
NOTASI N-TUPLE
17
Contoh.
A := D*C + B/E
Triples:
Quad truples: *, D, C, X 2. /, B, E, Y 3. +, X, Y, A
Semantiks, Indah Wahyuni
*, D, C 2. /, B, E 3. +, (1), (2) 4. :=, A, (3) 1.
Konsep Bhs. Pemrograman, 2012
NOTASI N-TUPLE
1.
18
Konsep Bhs. Pemrograman, 2012 Semantiks, Indah Wahyuni
19