Anda di halaman 1dari 60

Teknik Kompilasi

Hari Soetanto

Teknik Kompilasi @2004

!""#

"

!""%

&

'
(

' )

'

!"""
*

,---

"

%
.

) 0
1

Hari Soetanto

Teknik Kompilasi @2004

2 1

3
13
3

'
4
/

Hari Soetanto

Teknik Kompilasi @2004

&$ !
' !

% %

6
8

.
/

: ;

)!

7
/

8
*

9: ;
4

<
2'&

9
6

Hari Soetanto

6 5

Teknik Kompilasi @2004

Source
Program

Compiler

&* #
&+ $

ERROR
MESSAGES
(

!.

:
/

'

)
>

:
+

<

;
:

)
6
6

*
9

6
6

6
Hari Soetanto

Teknik Kompilasi @2004

4
)

:
5

:
9

:
6

The Bit

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

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

Switch (transistor)

1945 - 75 bits per second


0 10 1 01 01 1 1 0 0 10 11 0 10

1998 - billions of bits per second

"

)
7

5
:
o

(
75 /
7
0
7

'

8
'

@ A8

:5

4
6

6
6
5

Hari Soetanto

B
6

Teknik Kompilasi @2004

./

46

46

E 1

C.

0/

#2

& ,

C.

1/ !

<

(
Hari Soetanto

D.

Teknik Kompilasi @2004

"

>

6
7

:
1

Hari Soetanto

Teknik Kompilasi @2004

?
7

>
$

8
!

! 6

P2
P1
Po

Hari Soetanto

Teknik Kompilasi @2004

10

"'
<
0 4? / F!(4/4 4 '
'2 '
(4/4 ( <
' <
0

$
)

<
5H
(

CD%%,GGC
<
5F
,CGGC
(
,CCDC

!--!-!-!--!-!---!-!-!-!-!-!-!--!-!-!--!--!-!!-!--!-!-!---!-!--!--!-

Hari Soetanto

Teknik Kompilasi @2004

11

:;

I#:I"
6 D

!"I")

7
!"#-8
) 07

*
J

*#+! J

J; K (8 J 1

J'1

Hari Soetanto

K#

KLJ

KLJ

K7 J

K
KJ !K J 1

Teknik Kompilasi @2004

K
12

J5

J5

K L J5

J; K L J

J; K

3L:LF

J ,K

:L E L >

J5

L*L M L 9

J !K

K J ,K J

KLJ

KLJ

KLJ

K J5

N
K J5

KJ

-L!LM L"

)
.F !B
) .F 3 ,
'

Hari Soetanto

Teknik Kompilasi @2004

13

.(

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
*
/

$
C

7
0 8
B

&

70 8 +
0

;
;

70 8
/

10
/

!
1

<
< =8 <
<

;
)

>
>

%"

?
1

;
15

&

Hari Soetanto

Teknik Kompilasi @2004

14

& >?

./

.>

;.

0>

15
)

.&

1 >&

.&

5
5

>

:
:

:
:

Hari Soetanto

Teknik Kompilasi @2004

15

5
:

7
5

8
7 )

.
/

'/L/3' '

Hari Soetanto

'

Teknik Kompilasi @2004

/3'

16

6
6

<
2?

5 :O -:"

</

<?

PLUS

MINUS

huruf

Huruf, Digit
Digit

Blank

Hari Soetanto

ID

Teknik Kompilasi @2004

INT

Digit

17

4*

% >

) 0
) 0

((8
<
=?
@A

.
' / L /3' L /:'
/
) 0
' ..F J/K L J/K 3 J'K L J/K : J'K
/ ..F

Hari Soetanto

Teknik Kompilasi @2004

18

"

2
) 0

>

6
2
' / L /3' L /:'

) 0. J)

K ..F )'(< J

K @ ' <42 J

Statement

BEGIN

KA'

END

'!

! &$ !
'#

?
0

:5
<' 7

Hari Soetanto

<
;

' ;

Teknik Kompilasi @2004

19

'2
4
"

"
6

"
6

!
&

& ,

2 1

I.

<

5
6

O
5
7 6

>
8

:
7

Hari Soetanto

>

6
:

Teknik Kompilasi @2004

20

'2

"

:::

<
1
6

"

:
6

:
/

;
6

1 8

!
7

<
0 '2 '

8 < /'('&7

8 < / 024 / 7
)

( )

7
5 >
& 8
&

74

>
5

7J F K 8
>

73 : E >8

% %

)'(< '

.
5

Hari Soetanto

Teknik Kompilasi @2004

21

'2

"

!.

(8 10 C

D ./E-

6
5

.F

<

C,

>5

!G

"

(!

? * 3#

8 B
5

C
(

,#

,!

K
*
Hari Soetanto

!I
!
Teknik Kompilasi @2004

22

3#

,!
!
!

,%

:
<

:
6

<
5
7

6
7

Hari Soetanto

Teknik Kompilasi @2004

23

"

"B

)
:
1

17

1
8

"
P

Hari Soetanto

.4

C*6D4

C
.=

6
?-=

Teknik Kompilasi @2004

? )= 2

24

J'1

J/

J5

J'1

K C J

J5

J0

4J1

K6

J'1

4 J'1

"

J5

J5

K6

J5

>

>

) )L)

Hari Soetanto

Teknik Kompilasi @2004

25

75
7

7
7

8 .

8. ;

.
15

FK
FK
FK
FK
FK

FK
FK
FK
FK
FK

Hari Soetanto

Teknik Kompilasi @2004

26

:K ) L
:K

) :K

L ))

Hari Soetanto

Teknik Kompilasi @2004

27

$
C

'

6 .

>

>

.)
.&

0
;

>

5
(*

: 1
)

9
:

Hari Soetanto

L )
L
L

Teknik Kompilasi @2004

28

78

/ 6

78

78

78

7;8

7
;8

7
;8

/ 6

7;8

>

>

6
7
9

&

5
5

'

Hari Soetanto

Teknik Kompilasi @2004

29

>
/

>

(F 7
R/

RF 7
S
'TT
/TT
0T
8

/F 7
STT
ETT
>
TT
3TT
:T
8

8
7
;

FT
'T

9 >

D
% 78
!

'/L/3'L/:'
/ 0L 0E / L 0>/
0
7

' / L '3/ L ':/


/ 0L /E 0L / >0
0
7

' '3/ L ':/ L /


/ /E 0L / >0L 0
0

&

%
5

Hari Soetanto

%
5

Teknik Kompilasi @2004

30

5<

))

5
5

15

?
5

:
Hari Soetanto

.
Teknik Kompilasi @2004

31

! L

, L

% %
! L , L

! U L , U L

, U ! L , L

L U

C U ! U L , U L

L U

U! U,

(/

15
L

L5
5L

<
. !F

&

,F

L5
5
&

. ! F

, F

CF 5
5

Hari Soetanto

Teknik Kompilasi @2004

32

9. L

,/ U!

C U!

9.L

9.L 5
5
9.

9.

5
)

U!

U!

L5
5

9. L

9.L 5
5
9.

9.L

9.

5
5
9

6
9
7

15

;
)
;

1
>

Hari Soetanto

6
Teknik Kompilasi @2004

33

.F 7 3)8 E 73 8

P
.FPP
3Q

P
EQ

5
:;

Hari Soetanto

Teknik Kompilasi @2004

34

:
7

%
6

<
7
8

Hari Soetanto

Teknik Kompilasi @2004

35

<

6
6

<

<

"

&
J4

>

!
F

K J4

K J4

.
7 3 8 E 73 8
51
3

3E
6

! J 1 K 3# J

Hari Soetanto

!K #' #J

Teknik Kompilasi @2004

51

,K

36

51

6 B

J1 KJ

)U . )

5O

!K *9 J

!K J

,K *

,K

)&.

.!

3#

.F

#' # .F

51
!!
!,
!C K
!D ,,
!I )U
!#
!%
!G .F
!"
,-,I
,! )&
,,
,C
,D .F
,I
1

7K 8

,, )
6

!#:!G

7K 8

,I

.
G3!
'#J 1 K

51

<

&J

6 B

J1 K J

!K *9 J

KJ

,K *

.F !
$ <
2'

JI 4
.F 3 !

Hari Soetanto

Teknik Kompilasi @2004

37

51
!!! !
!, .F
!C
!D I
!I J
!# ,#
!% )U
!G
!"
,-!
,! !
,, .F
,C
,D !C
,I)&

! '#

&

!
&

5
J

KJ

KJ

.
.F

3 ) >'

.
!
,
C
D

E
>) '
3 7
!8 7
,8
.F
7
C8
7

8
6

Hari Soetanto

Teknik Kompilasi @2004

38

(
<
0V K W/ '
V .F :
'2 '
V .F 3
<

.
! K V W
, )U 7
!8 7
#8
C :
D .F V 7
C8
I )& 7
G8
# 3
% .F V 7
#8

%%
-

%
2

"

<

B
.F ) 3

>'

0.F E

<

'

! E

! !

, >7
!8 '

, ,

C 3 ) 7
,8

C C

D .F

D D

7
C8

I .F 0 7
!8

I !
# I

Hari Soetanto

Teknik Kompilasi @2004

39

H
0

H
J

KJ

KJ

KJ

&

.
.F

3 ) >'

.
! E

/!

, > )

'

/,

C 3 /! /,

7
<

73)8E73 8
! 3

, 3

/!
/,

C E /! /, /C

.
2

7
)
/4 /!

7
7

8
6

)8
/!8

Hari Soetanto

Teknik Kompilasi @2004

40

/4 /,
2

/!
?2 /,
/4 /C

6 .
2
)
/4 /!
2

?2 /!
/4 /,

<assign>
Id1 := <Expr>
Source
Program
X =Y+X

Analisis
Leksikal

Token-token
Id1:=Id2+Id1

Analisis
Sintaksis

Id2 + Id1

LDA A
ADD Y
Code Generator STO X
dan Analisis
sematiks

Tabel
Simbol

Hari Soetanto

Teknik Kompilasi @2004

41

&

'

'

&

>
/ '

6
/'

.F V 3 7
) E 73 8

/
.

F ! IE -%G

5
.

) .F ) 3 !
5

/
Hari Soetanto

6
Teknik Kompilasi @2004

42

!#, *

.?

F!#,

5 F6

%>

% "

%
.)

75
4

>

>

"

8
9

% >

% "

&

B
&
&

'

.
.

&

Hari Soetanto

Teknik Kompilasi @2004

43

6
6

$ %

3
&

"

5 "
.F 3 !
) .F ) 3 !B
.F 3 !
B

K I-

K B J

) 08

P
7Q
#

5 ".

$
6
.<
0 F!

Hari Soetanto

.F

Teknik Kompilasi @2004

44

3#

7
B8

7
J

K J 1K J

5 "

)
. ) .F P
)
9

)
;

>#

&
>

G3!
'# J !
<.F <F !B
&

Hari Soetanto

Teknik Kompilasi @2004

45

<

1.F V 3 !
B
B

5 .

.F -B
'

5
)
&

.
G3!
''#

F! 4

Hari Soetanto

Teknik Kompilasi @2004

G3!
'#

46

4
4

&
6

<

&

O 7
4

'%
4

.
.

;
.
.F 0 C 1 3 )

.F J3 )
I

,3C

>

#
.

.F * C
V .F W3 * C

Hari Soetanto

Teknik Kompilasi @2004

47

<

'

;
.
<

.
& !(8 .

&

K
!
L(8 M7

6
K
.L(8 M7
K
0L(8 M7

0 H

&

04&<
.F !
!- 4
)'(<
F(8 J
.F 3 !
' .

F(8 J
04&<
.F !
!- 4
)'(<
.F 3 !
' .

&

Hari Soetanto

Teknik Kompilasi @2004

48

9
6

.F 3 !

< 78

&

4
6

.
V .F IB
<
0V F -/ '
.F 3 !
<
(8

C.
6

Hari Soetanto

Teknik Kompilasi @2004

49

.7

8
6
B

; 1.

B<

8B

1.F 3 B

B
;

.
.F IB
B

(;

9 B
;

.
.F I
.F 3 B
B
;

*
5
>
Hari Soetanto

Teknik Kompilasi @2004

50

5 .
5
/

46
5
;
;

<5

:<
6

<5
B

"(
%.

:;

.
.

".
Hari Soetanto

5
5
Teknik Kompilasi @2004

51

<5

:<

B
?

5
<

5 B

<

5
;

5 7

8B

; -

5
>
<5

5
.
;
7

5
8

B
R ).<

B
V7
U.

Hari Soetanto

.<

Teknik Kompilasi @2004

52

%
!
,
C
D

)
V
U

<.

X
.

46 .
/

6 B

./
5

2 ;

.<

.)

.-

1;B

.<

6 F7

F7

<5

1
Y5

"
5

5 .
?
/
/
&5
Hari Soetanto

Teknik Kompilasi @2004

53

<

*
?

'

3 !8 1

* %
5
)

>
;

>;

O
O

R ).<

B
V7
U.

.<

?
;
R

8B

F,

F, 7

F -7
O

Hari Soetanto

F-

,
C
! 7

Teknik Kompilasi @2004

54

5
7

8 '

4
;

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.
b.
c.
d.

Tipe 0
Tipe 1
Tipe 2
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

Anda mungkin juga menyukai