Lexical Analysis
Lexical Analysis
dituliskan : <token,attribut,value>
Contoh : E := M * C ** 2
SYMBOL TABLE
Symbol table adalah suatu struktur data yang digunakan untuk
menyim-pan informasi tentang komponen (token) suatu source
program.
Informasi yang dimaksud :
- Lexeme (word)
- Bentuk identifier
Type identifier (procedure, variable, label)
Posisi penyimpanan
Interaksi dengan simbol table
SYMBOL TABLE INTERFACE
Rutin untuk operasi Save dan Retieve terhadapa Lexeme adalah :
insert (s,t): menghasilkan indeks entry baru untuk string s, token t
lookup (s) : menghasilkan indeks entry baru untuk string s, atau 0
bila s tak ditemukan.
SPESIFIKASI TOKEN
STRING DAN LANGUAGES
Alphabet class adalah suatu himpunan terbatas dari simbol-simbol.
String adalah rangkaian simbol-simbol dari alpabetik.
Panjang string S ditulis dengan |S| adalah banyaknya simbol dalam string s
misalnya : S=abc maka |S| = 3.
Empty string ditulis dengan dengan panjang string nol (0)
Empty set ditulis dengan Ø atau {}
EKSPONENSIASI STRING
s0 = ε
s1 = s untuk i > 0, maka
s2 = ss si = si-1s
s3 = sss
sehingga : Ln = Ln-1 L dan L0 = {}
BEBERAPA OPERASI TERHADAP BAHASA
Union ()
Concatenation (.)
Closure :
- Kleene Closure (*)
Kleene closure dari L adalah L*
SIFAT-SIFAT R.E.
r|s = s|r
r|(s|t) = (r|s)|t
(rs)t = r(st)
r(s|t) = rs|rt
r = r = r
r* = (r|)*
r** = r*
r* = r +|
r+ = rr*
Contoh : alphabet = {a, b}
1. RE ab menyatakan himpunan {a,b}
2. RE (a|b)(a|b) menyatakan {aa,ab,ba,bb}
3. RE a* menyatakan {ε,a,aa,aaa,...}
4. RE a+ menyatakan {a,aa,aaa,...}
5. RE (a|b)* menyatakan himpunan
string yang terdiri dari nol atau
beberapa a atau beberapa b.
6. RE a|(a*b) menyatakan himpunan string yang terdiri dari a
atau beberapa a, diikuti oleh sebuah b.
Contoh :
1. regular definition untuk identifier :
letter A|B|...|Z|a|b|...|z
digit 0|1|...|9
id letter(leter|digit)*