Tata Bahasa
Sulistyo Puspitodjati
Kelas_Nama
1
Kuis Pengingat 4. Token dari bahasa
Subject:Pretest-2_Kelas_Nama_NPM pemrograman tingkat tinggi
Kirim ke: lismuslim3@gmail.com
a. dapat b. tidak dapat
1. Tahap pertama pada pass
dirumuskan dengan ekspresi
pertama dari compiler adalah
a. Analisa leksikal b. scanning
reguler
2. Proses analisa leksikal adlah 5. Perhatkan definisi reguler
proses berikut:
a. Mengenal kata dari untaian simbol digit [0-9]
b. Membuat rumusan definisi reguler Integer 0 |(- | +)? ([1-9]digit*))
3. Input dari scanner generator Berdasarkan definisi reguler
adalah tersebut maka token integer
a. Definisi reguler dari token yang berikut yang valid adalah
akan digunakan dala bahasa sumber a. 25
b. Token-token (untai simbol yang b. +25
membentuk token)
c. -252525
d. -0
2
e. 0
Kuis Pengingat
5. Perhatkan definisi reguler berikut:
digit [0-9]
Integer 0 |(- | +)? ([1-9]digit*))
Berdasarkan definisi reguler tersebut maka token
integer berikut yang valid adalah
a. 25
b. +25
c. - 252525
d. -0
e. 0
3
Compiler Front- and Back-end
Source program (character stream) Abstract syntax tree or
other intermediate form
Scanner
Machine-
(lexical analysis)
Independent Code
Tokens
Improvement
Front end
Back end
synthesis
analysis
Proses parser:
Check dan mem-verifikasi syntax berdasarkan aturan
sintaksnya
melaporkan error
Menyiapkan IR (intermediate representation/kode antara)
Automation?
Yes. The process can be automated
5
Parsing
Check dan mem-verifikasi syntax berdasarkan aturan
sintaksnya
Apakah ekspresi regular cukup untuk mendeskripsikan
syntax?
Contoh 1: Ekspresi Infix
Contoh 2: Nested parentheses (kurung bersarang)
Pakai Context-Free Grammars (CFG) untuk
menspesifikasikan context-free syntax.
Suatu CFG mendeskripsikan bagaimana kalimat (sentence) dari
suatu bahasa dibentuk.
Example:
EvilLaugh mwa EvilCackle
EvilCackle ha EvilCackle
EvilCackle ha!
7
Derivasi dari suatu tata bahasa
Sentence/
derivation sentential form/ kalimat
Bentuk sentesial
Contoh menggunakan leftmost derivation, setiap langkah memilih
non-terminal terkiri yang diderivasi dalam setiap bentuk sentensial
, :: = 8
Derivasi dan Pohon parse
9
Derivasi dan Pohon parse
Contoh tata bahasa: R ={ S (S) , SSS, S }
10
Contoh tata bahasa: R ={ S (S) , SSS, S }
11
Pohon Parsing
Contoh tata bahasa: R ={ S (S) , SSS, S }
12
Contoh: grammar ekspresi aritmatik
Pohon parsing untuk
kalimat id + id - number
<goal>
<expr>
<expr> <term>
<op>
S
S
14
Problems in parsing
Consider S if E then S else S | if E then S | Ot
What is the parse tree for
if E then S
Ot
16
Ambiguity
In general, we try to eliminate ambiguity by rewriting
the grammar.
Example:
EE+E | EE | id becomes:
EE+T | T
TTF | F
F id
E E
E E E E
+ *
E * E E + E
i id
d
i i
d d id
id
18
Ambiguity
In general, we try to eliminate ambiguity by rewriting
the grammar.
Example:
S if E then S else S | if E then S | other becomes:
S EwithElse | EnoElse
EwithElse if E then EwithElse else EwithElse | other
EnoElse if E then S
| if E then EwithElse else EnoElse
19
UTS_Proses 1
lismuslim3@gmail.com
lex, yacc
20
= Bahasa “1LP”
21