Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Kuliah 12 Type Checking
2
Macam Macam-macam checking pada compiler:
Type checking: operand harus sesuai dengan operator Flow of control checking: break dalam while menyebabkan kontrol keluar dari while terdekat Uniqueness checking: suatu id harus didefinisikan sekali dalam scopenya Name-related checking: memperbolehkan pemakaian suatu nama (id) lebih dari sekali
3
Macam (Cont.)
4
System Type Kumpulan aturan-aturan yang memberikan suatu type pada elemen suatu bahasa. Contoh (Pascal, C): Jika kedua operand dari +, *, -, / mempunyai type integer maka hasilnya harus integer Hasil dari operator unari & adalah suatu pointer ke suatu object. Jika type operandnya adalah x, maka hasilnya adalah pointer ke x.
5
System Type (Cont.) Type dasar : boolean, char, integer, real type
Type yang dibuat: record, array, fungsi
6
Ekspresi type Type suatu elemen (konstrak) bahasa dinotasikan oleh ‘ekspresi type’. Ekspresi type dapat berupa type dasar atau type yang dibuat dengan memakai suatu operator (pembentuk type) pada ekspresi type lainnya.
7
Definisi ekspresi type
Type dasar adalah ekspresi type. Type dasar khusus ‘type_error’ akan memberitahu adanya kesalahan dalam pemeriksaan type. Nama type merupakan ekspresi type (karena ekspresi type boleh diberi nama). Pembentuk type yang dipakai pada ekspresi type adalah ekspresi type.
8
Pembentuk type Array Jika T suatu ekspresi type maka array (I,T) juga ekspresi type yang menyatakan type suatu array dengan elemen bertype T dan indeks I. I biasanya suatu range integer. Contoh deklarasi dalam Pascal: var A : array[1..10] of integer memberikan ekspresi type array(1..10, integer) pada A.
9
Pembentuk Type (Cont.) Produk
Jika T1 dan T2 adalah ekspresi type, maka produk cartesiannya T1 x T2 juga ekspresi type.
10
Pembentuk Type (Cont.) Record
Type dari suatu record adalah produk dari type fieldnya. Contoh:
11
Pembentuk Type (Cont.) Definisi ini mendeklarasikan nama type row sebagai ekspresi type yang merepresentasikan: Record((address x integer) x (lexeme x array (1..15,char)) dan table dideklarasi sehingga mempunyai type yang direpresentasikan oleh row.
12
Pembentuk Type (Cont.) Fungsi
Dalam pemrograman, fungsi didefinisikan sebagai pemetaan suatu domain type D ke range type R. type fungsi dinotasikan dengan ekspresi type: DR Contoh: Fungsi mod dalam pascal domainnya: int x int dan rangenya adalah int Function f(a,b : char) : integer, maka f mempunyai type char x char pointer (integer)
13
Pembentuk Type (Cont.) Ekspresi type boleh mengandung variable yang nilainya adalah ekspresi type.
14
Contoh implementasi type checker
15
Skema translasi
16
Skema translasi (Cont.)
17
Fungsi
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.