oleh:
Andri Sukmaindrayana, ST., M.Kom.
STMIK DCI
Referensi:
U t d i ra r t a t m o , F i ra r, Te k n i k Ko m p i l a s i , J & J L e a r n i n g , Yo g ya k a r t a , 2 0 0 1 .
BAB 1 Pendahuluan
1. Bahasa Pemrograman
Bahasa Pemrograman berdasarkan tingkat ketergantungannya dengan
mesin meliputi :
1. Bahasa Mesin
Merupakan bentuk terendah dari bahasa komputer. Setiap instruksi dalam
program direpresentasikan dengan kode numerik, yang secara fisik berupa
deretan 0 dan 1.
2. Bahasa assembly
Merupakan bentuk simbolik dari bahasa mesin.
3. Bahasa Tingkat Tinggi (user oriented)
Merupakan bahasa pemrograman yang lebih dekat dengan bahasa manusia,
memberikan fasilitas yang lebih banyak, terstruktur, kalang (nested), blok dan
prosedur.
Contohnya : Pascal, BASIC.
Contoh : BASICA
3. Manfaat Translator (1)
Dengan bahasa mesin adalah bahasa bentuk bahasa terendah komputer,
berhubungan langsung dengan bagian bagian komputer seperti bits, register &
sangat primitive
STMIK DCI
Referensi:
U t d i ra r t a t m o , F i ra r, Te k n i k Ko m p i l a s i , J & J L e a r n i n g , Yo g ya k a r t a , 2 0 0 1 .
Contoh :
PERIKSA : IF A > B THEN X = Y ;
a. Penganalisa Leksikal (3)
Token nya :
PERIKSA disebut dengan token LABEL
: disebut dengan token OPERATOR
IF disebut dengan token KEYWORD
A disebut dengan token VARIABLE
> disebut dengan token OPERATOR
B disebut dengan token VARIABLE
THEN disebut dengan token KEYWORD
X disebut dengan token VARIABLE
= disebut dengan token OPERATOR
Y disebut dengan token VARIABLE
; disebut dengan token OPERATOR
Data Output : Token
b. Penganalisa Sintaks (1) - Parser
Memeriksa kesesuaian pola deretan token dengan aturan sintaks yang
ditentukan dalam bahasa sumber.
Sederetan token yang tidak mengikuti aturan sintaks akan dilaporkan
sebagai kesalahan sintaks (sintax error).
Secara logika deretan token yang bersesuaian dengan sintaks tertentu
akan dinyatakan sebagai pohon parsing (parse tree).
b. Penganalisa Sintaks (2)
- Data Input : Token
- Fungsi : Menentukan struktur dari program berdasarkan token token
yang ada. Mengolompokan token menjadi elemen elemen
yang lebih besar.
Contoh :
Suatu Ekpresi : (A+ B) *( C+D )
Data Output : Pohon Sintaks, dimana daunnya adalah Token dan setiap
simpul daun adalah tipe kelas sintaks.
Teknik Kompilasi
oleh:
Andri Sukmaindrayana, ST., M.Kom.
STMIK DCI
Referensi:
U t d i ra r t a t m o , F i ra r, Te k n i k Ko m p i l a s i , J & J L e a r n i n g , Yo g ya k a r t a , 2 0 0 1 .
Contoh :
Pohon Sintaks dari : ( A + B ) * ( C + D )
Contoh :
Bentuk Antara dari hasil : ( A + B ) * ( C + D )
Dalam QUADRAPLE, sbb :
( + , A, B, T1 )
( +, C, D, T2 )
( *, T1, T2, T3 )
Bentuk Infix : ( A + B ) * ( C + D )
di ubah menjadi Bentuk : a. Sufix / Postfix : AB + CD + *
b. Prefix : * + AB + CD
d. Generator Kode (1) Intermediate Code
Membangkitkan kode antara (intermediate code) berdasar-kan pohon
parsing. Pohon parse selanjutnya diterjemahkan oleh suatu
penerjemah yang dinamakan penerjemah berdasarkan sintak (syntax-
directed translator).
Hasil penerjemahan ini biasanya merupakan perintah tiga alamat
(three-address code) yang merupakan representasi program untuk
suatu mesin abstrak. Perintah tiga alamat bisa berbentuk quadruples
(op, arg1, arg2, result), tripels (op, arg1, arg2).
Ekspresi dengan satu argumen dinyatakan dengan menetapkan arg2
dengan - (strip, dash)
d. Generator Kode (2)
Data Input : Bentuk Antara
Fungsi : Mengubah Bentuk Antara ke dalam bahasa Assembly
atau bahasa mesin
Contoh :
Bentuk Antara dari : ( A + B ) * ( C + D )
Contoh :
Catatan :
LDA A
-Statement : STO T2
ADD B
STO T1 LDA T1
LDA C -Dihilangkan, langsung dikalikan dan disimpan
ADD D MUL T1
MUL T1
STO T2 STO T2
Teknik Kompilasi
oleh:
Andri Sukmaindrayana, ST., M.Kom.
STMIK DCI
Referensi:
U t d i ra r t a t m o , F i ra r, Te k n i k Ko m p i l a s i , J & J L e a r n i n g , Yo g ya k a r t a , 2 0 0 1 .
BAB 4 Scanner
Scanner
Scanner dengan melihat text input karakter demi karakter memisah-misahkan
program sumber ke dalam bagian-bagian yang disebut besaran leksik/token,
yang merepresentasikan nama Variabel, Operator, Label dsb, yang
membentuk sebuah program.
1. Identifier
Bisa berupa Keyword atau Nama;
Nama biasanya di deklarasikan sendiri oleh pemakai, seperti :
Nama (Program, Procedure, Var, Type, Constanta).
Contoh Keyword:
No. Nama Keyword No. Nama Keyword
1 And 26 Shr
2 Array 27 File
3 Asm 28 For
4 Begin 29 Function
5 Case 30 Goto
6 Const 31 If
7 Constructor 32 Implementation
8 Destructor 33 In
9 Div 34 Insherited
10 Do 35 Inline
11 Downto 36 Interface
12 Else 37 Label
13 Export 38 Library
14 Nil 39 Mod
15 Not 40 String
16 Object 41 Then
17 Of 42 To
18 Or 43 Type
19 Packed 44 Unit
20 Procedure 45 Until
21 Program 46 Uses
22 Record 47 Var
23 Repeat 48 While
24 Set 49 With
25 shl 50 Xor
Besaran pembangun besaran leksik/token : (2)
2. Konstanta
Bisa berupa konstata Integer, Real, Boolean, Charakter, String dsb.
Contoh :
N : = R + 5 + 10
Kata : = Kata1 + Makan
A : = 0.333
Selesai : = True
STMIK DCI
Referensi:
U t d i ra r t a t m o , F i ra r, Te k n i k Ko m p i l a s i , J & J L e a r n i n g , Yo g ya k a r t a , 2 0 0 1 .
Memiliki ukuran yang relatif besar, misal membuat compiler pascal dengan
menggunakan bahasa C;
P2 dibuat dari P1, jadi compiler untuk bahasa P dapat dibuat tidak
harus dengan menggunakan assembly secara keseluruhan
Contoh dari source program ke dalam kode mesin
10010101001010001010100
10101010010101001001010
10100101010001010010010
Teknik Kompilasi
oleh:
Andri Sukmaindrayana, ST., M.Kom.
STMIK DCI
Referensi:
U t d i ra r t a t m o , F i ra r, Te k n i k Ko m p i l a s i , J & J L e a r n i n g , Yo g ya k a r t a , 2 0 0 1 .
STMIK DCI
Referensi:
U t d i ra r t a t m o , F i ra r, Te k n i k Ko m p i l a s i , J & J L e a r n i n g , Yo g ya k a r t a , 2 0 0 1 .