Teknik Kompilasi Hari Soetanto Teknik Kompilasi @2004 1
!""#! " $!""% #& '!""" $(')' *$+,--- $"%. /. ) ) 0 1 Hari Soetanto Teknik Kompilasi @2004 2
) 213 13 3 ' 4 /5 Hari Soetanto Teknik Kompilasi @2004 3
!#!&$!'! %% 6 7 86. / 9 :; ()!. 787/6 8 * ; 5 6 9:; 4<2'& 6 6 6 5 9 6 6 66 5 Hari Soetanto Teknik Kompilasi @2004 4
(!. 6 ) : / = Source Program '*% Compiler ERROR MESSAGES ) > : + ; ) : -! < 6 6 : ) ) 6 6 *6 96 6 &*# &+ $ Hari Soetanto Teknik Kompilasi @2004 5
4 )?, : 5 6: 9 : 6 The Bit 0 1 The bit is the smallest element of computer storage. It is a positive or negative magnetic spot on disk and tape and charged cells in memory. Bits on magnetic disk 1995 250,000,000 bits per sq. in. Bits on magnetic tape 1955 2,000 bits per sq. in. The Byte 0 1 0 0 1 1 0 1 A byte is 8 binary digits, or cells. Bytes in memory In a 16 megabyte memory, there are 16 million of these 8-bit structures. Hari Soetanto Teknik Kompilasi @2004 6
Switch (transistor) 0 1 0 1 1 0 1 1 0 1945-75 bits per second 0 1 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 1 0 1998 - billions of bits per second %* % - " %( ) 78 5 : 5:5 o %( 75/'8 7098 7'@A8 78 / 6 ) 4 67 8 6 6 B 5 6 ) 6/ 6 Hari Soetanto Teknik Kompilasi @2004 7
./ 46 E 0/ (C. 6 6 46 E1 #2 3 &, (C. 6 1/! < 6 : 3 (D. 6 Hari Soetanto Teknik Kompilasi @2004 8
6: 6 B * 6 ) "? 5 > : 0 * %4 56 26 0 78 5? : 1 Hari Soetanto Teknik Kompilasi @2004 9
*? > 7$ : 8 4! -,!6 P2 P1 Po Hari Soetanto Teknik Kompilasi @2004 10
%% "' $ <04? /F!- ) CD%%,GGC (4/44 ' <5H <5F,CGGC '2' ( (,CCDC (4/4(< ' <0!--!-!-!--!-!---!-!-!--!-!-!-!--!-!-!--!--!-!-!-!--!-!-!---!-!--!--!- Hari Soetanto Teknik Kompilasi @2004 11
? 6 9 6 6 7 8 B / 6 : 6 / 78;:; : : 9 : / I#:I" 6D!"I") 5 1 5 7!"#-8 ; 1 ) 07 08 * JK *#+!J : K# J : K J KLJ K7J : K J K J;K(8J1K J'1K J KLJ KJ!KJ1K Hari Soetanto Teknik Kompilasi @2004 12
J K J5 KLJ5 KJ,KJ K J5 K J;KLJ K J;K L*LML9 J!K 3L:LF J,K :LEL> J K JNKLJ N K JNK J N KJ5 K J N K J KLJ N KJ K J5 K J KLJ KJ5 K J K -L!LML" ).F!B ).F3, ' Hari Soetanto Teknik Kompilasi @2004 13
.(% ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; * $ % /C & /, 10 /! 1 ; /-? > > 3%%" 0 708 B 0 708+ 0 7 08 9 α; β ; α; 2) <α<=8<β< / /)? 1 ; 1 5 & Hari Soetanto Teknik Kompilasi @2004 14
+ &>?./. > 1 ;. 6 0 0 0> 1 5.& ; ) 0 ) 1>&.&! 5 5 % 6 α β α> β α: β: : : : 6 Hari Soetanto Teknik Kompilasi @2004 15
? 5 7 8 : 57) 8. / / ' /L/3''/ '/3' Hari Soetanto Teknik Kompilasi @2004 16
) 6 6 6 1 / < 5:O-:" < / 2? 6 <? 9 PLUS + S huruf ID Huruf, Digit MINUS - Blank Digit INT Digit Hari Soetanto Teknik Kompilasi @2004 17
*4*%>6 ) 0 ) 0 1 ((8 < =? @A -. ' /L/3'L/:' / ) 0 '..FJ/KLJ/K3J'KLJ/K:J'K /..F Hari Soetanto Teknik Kompilasi @2004 18
"2 ) 0 ) 7 8 > 6 2 ' /L/3'L/:' ) 0.J)K..F)'(< J K@'<42J KA' BEGIN Statement END '!!&$!'# $ 7 8? 0 :5 < <'7 ; '; 8 ; Hari Soetanto Teknik Kompilasi @2004 19
% '2" 46 "2" 46 &B! + &, (I. 21 O F 1 O < 5 6: O 5 5 > 76 8 :>6 78 : Hari Soetanto Teknik Kompilasi @2004 20
'2 " 46 ::: 1 O < 1 6: " 5 5 : 6 : :9 5 /. 5. ; 7 618 (%%! 9 <0'2' )'(< ' 78< /'('&78< /024/7)8 () 7 8 75 >&87 >58 &74 73:E>8 7JFK8 7 ) > : : : :9 : $. 5 Hari Soetanto Teknik Kompilasi @2004 21
'2":!. (810CD./E- 6 : 9 5 5.F C, 6 3 < 5 E >5!G $"! ;, C D. (!?*3#8B 5 :. C (,#!,-! K!I *! Hari Soetanto Teknik Kompilasi @2004 22
3#,!!! 7,% /: 1 : < 6 < 56 7 8 7 8 7 8 Hari Soetanto Teknik Kompilasi @2004 23
"2"B ) : 1/ 1. : 1 7 18 1 (. : 5 ( 1 : :7 8 1 " PQ 6 /.4C*6D4C6.=?-=?)=2? Hari Soetanto Teknik Kompilasi @2004 24
J'1K J/K J K D J0 K J5 K 4J1K6 4J'1K6 J'1KCJ K J'1KCJ K J K J5 K J K J5 K J5 K J5 K * "2 >7 1 > 8 :;6:. ) L ) )L) Hari Soetanto Teknik Kompilasi @2004 25
) ) ). 75 ; 8. ; 7 8 7 ; 8.; 7 8. 1 5. L L. FK FK FK FK FK. FK FK FK FK FK Hari Soetanto Teknik Kompilasi @2004 26
. :K)L :KLL ):KLL)) ) ) ) ) ) ) Hari Soetanto Teknik Kompilasi @2004 27
$ C. $ ' %6. > 5 9. ) >.) 0.&; *> 5 (* :1 ) 67 8 :9 : L) L ) L Hari Soetanto Teknik Kompilasi @2004 28
PQ 78 78 78 /678 7;8 7;8 7;8 ) ) /67;8: >> 6 79 8 ) ( &5 55 ' : Hari Soetanto Teknik Kompilasi @2004 29
> / > (F7R/8 RF7S'TT/TT0T8 /7;8 /F7STTETT>TT3TT:T8 / FT'T 9> D %78!' /L/3'L/:' / 0L0E/L0>/ 0 7 8 0' /L'3/L':/ / 0L/E0L/>0 0 7 8 5 1' '3/L':/L/ / /E0L/>0L0 0 &5 %% 5 7 8 ; %% β 5 Hari Soetanto Teknik Kompilasi @2004 30
βf;. ) ) 5 β 5<. ) ) 5 5 ( 1 5(. Lε ) :%%? 5 5 :. Hari Soetanto Teknik Kompilasi @2004 31
5 B %% α!lα,llα %%% β!lβ,llβ : 5.! β!ulβ,ullβu,u α!lα,llα CU α!ulα,ullαu ; U! U, ; 5 (/ ) 1 5 LLL 5L 5 < &.α!fα,f 5 LL 5 &.β!fβ,fβcf 5 2 5 L Hari Soetanto Teknik Kompilasi @2004 32
! 9.L9.L 59.,/U! L CU! 9.L9. 5 ). LL 5 9.L9.L 59. U! L U! 9.L9. 5 5 9 6 9 7 8 5 ( 5 5 1 5 ; ) 1 ;> 5 ; 9 / 7 8 ) 6 Hari Soetanto Teknik Kompilasi @2004 33
6 78 78 ) 5..F73)8E738 : P.FP P3Q PEQ :? :?. ; 5 ;:; 5 Hari Soetanto Teknik Kompilasi @2004 34
. : 78 o % 6 5 o 5 : B 1! 5 ) 6 < 7 8 Hari Soetanto Teknik Kompilasi @2004 35
< 6 6 2< 4 2 7 8 <, 9 5 "2> &!F J4KJ4KJ4 K. 738E738 51 33E 6 51!J1K3#J!K#'#J,K Hari Soetanto Teknik Kompilasi @2004 36
516B J1KJ!K*9J!KJ,K* J,K )U.)5O78 )&..!K3#.F#'#.F 51!!!,!CK!D,,!I)U!#!%!G.F!",-,I,!)&,,,C,D.F,I 1 7K8,,) 1 7K8 6!#:!G,I. G3!'#J1K&J K 516BJ1KJ!K*9J KJ,K* <..F! $<2'JI4.F3! Hari Soetanto Teknik Kompilasi @2004 37
51!-!!!!,.F!C!DI!IJ!#,#!%)U!G!",-!,!!,,.F,C,D!C,I)&!'#&!& 5 J KJKJK..FE3)>' *.!E,>)' C37!87,8 D.F7C8 78 6 Hari Soetanto Teknik Kompilasi @2004 38
( <0VKW/' V.F: '2' V.F3 <.!KVW,)U7!87#8! # C: D.FV7C8 I)&7G8 #3 %.FV7#8 %% - % %%! " % 7 2 < B.F)3E>' 0.FE 2 < 2 '!E!!,>7!8',, C3)7,8 CC D.F7C8 DD I.F07!8 I! #I Hari Soetanto Teknik Kompilasi @2004 39
H 0 H J KJKJKJ K & ; ;..FE3)>' *.!E/!,>)'/, C3/!/, 7 8 < 5 73)8E738 6 H.!3)/!,3/, CE/!/,/C. 2 7 8 ) 7 6)8 /4/! 7 /!8 2 Hari Soetanto Teknik Kompilasi @2004 40
/4/, 2/!?2/, /4/C 6. 2 ) /4/! 2?2/! /4/,, % <assign> Source Program X = Y + X Analisis Leksikal Token-token Id1:=Id2+Id1 Analisis Sintaksis Id1 := <Expr> Id2 + Id1 Code Generator dan Analisis sematiks LDA A ADD Y STO X Tabel Simbol Hari Soetanto Teknik Kompilasi @2004 41
& '&; ' >6 /' /' / 6.FV37)E738 /. B F!IE-%G R5. ).F)3! 5 2:. /6 Hari Soetanto Teknik Kompilasi @2004 42
. 5.!#,*.?9 5. F!#, F 9 5 5F6 ) %>%"%.) 2. 75 >8 4. > %" - % % 7 8 9 %>%" & B ' &;. &. & Hari Soetanto Teknik Kompilasi @2004 43
P Q ) 78 ) 6 6 6 $%3 &; / 6 ; "2 5".F3! ).F)3!B.F3! B 7 ) 08 J KI- KBJ KB =P7Q # 5". $ 6.<0F!.F B Hari Soetanto Teknik Kompilasi @2004 44
3# 6 7B8 7. JKJ1KJ K 25 5" ).).FP)2Q 9 ;) ;) #3># ;758 / 1 & > G3!'#J! <.F<F!B & Hari Soetanto Teknik Kompilasi @2004 45
< B 1.FV3! B B 25 / 5. 5 ;..F-B ' 5 ) &. 5. G3!''#F!4 5 6G3!'# Hari Soetanto Teknik Kompilasi @2004 46
4 4 2 4 ( & 6 o 4 O o < 4 O74 4 8 &'% 4 2.. ;..F0C13).FJ3) I,3C >2#..F*C V.FW3*C Hari Soetanto Teknik Kompilasi @2004 47
4 < '. ;.. < 9 : : ; 6. ;6 4 6 78 &!(8.0& K!L(8M7 6 K.L(8M7 K0L(8M7 0H&. 6 04&<.F!!-4 F(8J )'(< 04&<.F!!-4 F(8J )'(<.F3!.F3! '. '. & Hari Soetanto Teknik Kompilasi @2004 48
. 9 6.F3! < 78 &+ 4 66 B )7 8 N.. V.FIB <0VF-/'.F3! < (8C. 6 V 6 -. Hari Soetanto Teknik Kompilasi @2004 49
.78 67B< 8B ;1. B 1.F3B 6 O( ; B ;..FIB B R O(; 9 9B ;..FI.F3B B ; 9 * 5 > Hari Soetanto Teknik Kompilasi @2004 50
5 : 5. 5 / 5 46 5 ; ;5 0 /<5:< 6/<5 B5 5 "( 5 5 %. ;:;..5 ". 5 Hari Soetanto Teknik Kompilasi @2004 51
/<5:< 5!B? 5 < 5 * 5B 5 ; / 5 B < 7 8 5 ; 5 7 5 8B 5 ;-? 5 B 5> 5 <55 5 5 B 5. ;5 78 B R).< B V7U.8 ;.< Hari Soetanto Teknik Kompilasi @2004 52
%7 -! ), V C U D /<.X- 1Y5. B. B 46.6 B /./B 5.< B.)B 2;.-1;B.< B 6F7 ;58 /F7 /<5: " 5 5 5.? / / &5 Hari Soetanto Teknik Kompilasi @2004 53
<1 9 *? 7 F :93!81O 'O *% 5: )5 9 > O ;>;O ; R).< B V7U.8B R.< B? ) )* ; F, D RO F,7, 8, 2 F-7 8 C O F-!7! 8 Hari Soetanto Teknik Kompilasi @2004 54
5 78': B 4 ; 5 ':.? : " 5:5 : 5':.? ) 5 Hari Soetanto Teknik Kompilasi @2004 55
Soal-soal Latihan Teknik Kompilasi Soal Multiple choice 1. Yang disebut dengan bahasa mesin adalah suatu bahasa yang: a. Sangat sukar dan sangat sedikit kemungkinannya untuk membuat compiler dengan bahasa jenis ini b. Fasilitas yang dimiliki lebih baik c. Memiliki ukuran yang relatif besar d. Lebih mudah dipelajari 2. Yang disebut dengan bahasa assembly adalah suatu bahasa yang: a. Sangat sukar dan sangat sedikit kemungkinannya untuk membuat compiler dengan bahasa ini b. Fasilitas yang dimiliki lebih Sedikit c. Memiliki ukuran yang relatif besar d. Lebih mudah dipelajari 3. Yang disebut dengan bahasa Tingkat tinggi adalah suatu bahasa yang: a. Sangat sukar dan sangat sedikit kemungkinannya untuk membuat compiler dengan bahasa ini b. Fasilitas yang dimiliki lebih Sedikit c. Memiliki ukuran yang relatif kecil d. Lebih mudah dipelajari 4. Yang dimaksud dengan BootSrap, adalah a. Bagaimana orang mengerti bahasa mesin b. Penggunaan bahasa tingkat tinggi c. Untuk membangun sesuatu yang besar dibangun dulu bagian intinya d. Untuk menghidupkan komputer 5. Noam chomsky melakukan penggolongan tingkatan dalam bahasa, dikenal dengan istilah a. BNF b. Chomsky Hierarky c. Tata Bahasa d. Grammar 6. Aturan produksi yang ada menggunakan simbol-simbol: a. α β b. A b c. β α d. b A 7. Menurut comsky terdapat 4 penggolongan dalam aturan produksi, yang termasuk pada kategori Unrestricted: Tidak Ada batasan pada aturan produksi, adalah Hari Soetanto Teknik Kompilasi @2004 56
a. Tipe 0 b. Tipe 1 c. Tipe 2 d. Tipe 3 8. Menurut comsky terdapat 4 penggolongan dalam aturan produksi, yang termasuk pada kategori Context sensitive: Panjang string ruas kiri harus lebih kecil atau sama dengan ruas kanan, adalah a. Tipe 0 b. Tipe 1 c. Tipe 2 d. Tipe 3 9. Menurut comsky terdapat 4 penggolongan dalam aturan produksi, yang termasuk pada kategori Context Free Grammar: Ruas kiri haruslah tepat satu simbol variable, adalah a. Tipe 0 b. Tipe 1 c. Tipe 2 d. Tipe 3 10. Menurut comsky terdapat 4 penggolongan dalam aturan produksi, yang termasuk pada kategori Regular: Ruas kanan hanya memiliki maksimal 1 simbol terminal dan diletakkan paling kanan sendiri, adalah a. Tipe 0 b. Tipe 1 c. Tipe 2 d. Tipe 3 11. Yang dimaksud dengan Diagram State, pada teknik Kompilasi adalah a. Digunakan untuk mendapatkan token, mempermudah melakukan analisis lexical b. Digunakan untuk mendapatkan token, mempermudah melakukan analisis syntax c. Aturan produksi yang dikenalkan oleh comsky d. Simbol terminal 12. Yang dimaksud dengan TOKEN, pada teknik Kompilasi adalah a. Digunakan untuk mendapatkan token, mempermudah melakukan analisis lexical b. Digunakan untuk mendapatkan token, mempermudah melakukan analisis syntax c. Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis d. Simbol terminal 13. Yang dimaksud dengan Diagram Syntax, pada teknik Kompilasi adalah Hari Soetanto Teknik Kompilasi @2004 57
a. Digunakan untuk mendapatkan token, mempermudah melakukan analisis lexical b. Digunakan untuk mendapatkan token, mempermudah melakukan analisis syntax c. Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis d. Simbol terminal 14. Translator yang Source codenya adalah bahasa assembly, dan Object code adalah bahasa mesin, disebut dengan a. Assembler b. Compiler c. Interpreter d. Suplier 15. Translator yang Source code nya adalah bahasa tingkat tinggi, object code adalah bahasa mesin atau bahasa assembly. Source code dan data diproses berbeda, disebut dengan : a. Assembler b. Compiler c. Interpreter d. Suplier 16. Translator yang idak menghasilkan bentuk object code, tetapi hasil translasinya hanya dalam bentuk internal, dimana program induk harus selalu ada-berbeda dengan compiler, disebut dengan : a. Assembler b. Compiler c. Interpreter d. Suplier 17. Memgelompokkan program asal/sumber menjadi token disebut dengan a. Scanner b. Parser c. Lexicer d. Interpreter 18. Yang bertugas untuk memeriksa kebenaran dan urutan dari token-token yang terbentuk oleh scanner, disebut dengan: a. Scanner b. Parser c. Lexicer d. Interpreter 19. Tugas dari anlysis lexixal adalah a. Mentransformasikan ke dalam bentuk token-token b. Proses pendeteksian token-token Hari Soetanto Teknik Kompilasi @2004 58
c. Untuk mengenali makna dari simbol-simbol d. Memeriksa variabel sudah dideklarasikan atau belum 20. Tugas dari Semantics analyser adalah a. Mentransformasikan ke dalam bentuk token-token b. Proses pendeteksian token-token c. Untuk mengenali makna dari simbol-simbol d. Memeriksa variabel sudah dideklarasikan atau belum 21. Tugas dari Syntax analyser adalah a. Mentransformasikan ke dalam bentuk token-token b. Proses pengelompokan token-token kedalam class syntax c. Untuk mengenali makna dari simbol-simbol d. Memeriksa variabel sudah dideklarasikan atau belum 22. Tugas dari Intermidiate code, adalah a. Mentransformasikan ke dalam bentuk token-token b. Proses pengelompokan token-token kedalam class syntax c. Memperkecil usaha dalam membuat compilator dari sejumlah bahasa ke sejumlah mesin d. Memeriksa variabel sudah dideklarasikan atau belum 23. Fungsi dari Tabel simbol, adalah : a. Mentransformasikan ke dalam bentuk token-token b. Proses pengelompokan token-token kedalam class syntax c. Memperkecil usaha dalam membuat compilator dari sejumlah bahasa ke sejumlah mesin d. Menindak lanjuti untuk perbaikan 24. Rekasi-reaksi yang tidak dapat diterima pada suatu compiler adalah; kecuali a. Compiler crash: hang b. Looping c. Mengahasilkan obyek yang salah d. Menemukan kesalahan yang pertama 25. Rekasi-reaksi yang benar, tapi kurang diterima pada suatu compiler adalah; a. Compiler crash: hang b. Looping c. Mengahasilkan obyek yang salah d. Menemukan kesalahan yang pertama 26. Rekasi-reaksi yang dapat diterima pada suatu compiler adalah; kecuali a. Recovery b. Repair c. Mengkoreksi kesalahan d. Menemukan kesalahan yang pertama Hari Soetanto Teknik Kompilasi @2004 59
27. Pada teknik Optimasi di tahapan compiler, ada beberapa teknik kompilasi diantaranya adalah dibawah ini: kecuali a. Dependency optimasi b. Lokal optimasi c. Global optimasi d. Best Optimasi 28. Tujuan dari dependency Optimasi adalah untuk a. Menghasilkan error kesalahan b. Mengbetulkan kesalahan c. Menghasilkan kode program yang kecil dan lebih cepat d. Menghasilkan execute file 29. Yang dimaksud dengan optimasi lokal adalah a. Optimasi yang dilakukan hanya pada suatu blok daru source code b. Optimasi yang dilakukan dengan cara seperti graph terarah yang menunjukkan jalur yang mungkin selama execusi c. Menghasilkan kode program yang kecil dan lebih cepat d. Optimasi yang dilakukan oleh programmer 30. Yang dimaksud dengan optimasi global adalah a. Optimasi yang dilakukan hanya pada suatu blok daru source code b. Optimasi yang dilakukan dengan cara seperti graph terarah yang menunjukkan jalur yang mungkin selama execusi c. Menghasilkan kode program yang kecil dan lebih cepat d. Optimasi yang dilakukan oleh interpreter Hari Soetanto Teknik Kompilasi @2004 60