Analisis Leksikal
Object
code
SYNTHESIS
ANALYSIS
Lexical
Analyzer
(Scanner)
Syntactic
Analyzer
(Parser)
Semantic
Analyzer
Intermediate
Code
Generator
Intermediate
code
Code
Generator
Code
Optimizer
TABEL SIMBOL
Definisi
Analysis
Lexical
Token
Contoh :
for I := 1 to max do
x[i] : = 0;
hasil penguraian :
Keyword
= for, to, do
Operator
= :=
identifier
= i, max, x
Puctuation
= ;
Brackets
=[,]
Constatnts = 1, 0
Besaran Leksik
Identifier
Nilai Konstanta
VAR A : INTEGER;
BEGIN
A := A + 2;
END.
VAR
INTEGER
:=
BEGIN
END
Kumpulan state menyatakan satu proses dan aturanaturannya menyatakan kemungkinan-kemungkinan yang
terjadi dalam menyelesaikan proses tersebut.
Accepting state menyatakan state yang diterima (dapat
ditentukan menggunakan directed graph).
10
11
Contoh FSA
;
type
1
var
;
0
;
;
2
var
,
INPUT
Current
state
nothing
type
var
Next state
12
Turbo
INPUT
Curr.
State
Backup
<
>
sp
19
19
19
12
19
14
17
19
20
20
20
20
20
20
20
20
20
20
20
20
20
10
10
11
11
12
20
20
20
20
20
20
20
20
20
20
20
20
20
13
14
20
20
20
20
20
20
20
20
20
20
20
20
20
15
16
17
20
20
20
20
20
20
20
20
20
20
20
20
20
18
19
20
14
Starting state
11.
End of (**)
2.
In identifier
12.
Found :
3.
End of identifier
13.
Token :=
4.
In number
14.
Found <
5.
End of number
15.
Token <=
6.
In { } commat
16.
Token <>
7.
End of { } commant
17.
Found >
8.
Found (
18.
Token >=
9.
In (**) commant
19.
General punctuation
10.
Found * in (**)
20.
General punctuation
State yang tercetak tebal dan garis bawah adalah accepting state.
l = letter (huruf) , d = digit (angka), sp = spasi, p = punctuation mark (tanda
pemisah/ karakter-karakter yang tidak termasuk dalam daftar).
y = yes , artinya bila ada token baru bisa dikenali setelah ada tanda khusus
untuk awal dan akhir, maka pointernya (cp) disimpan, n = no, artinya
pointernya tidak disimpan.
15
Contoh
sp
sp
sp
12
13
19
16