Teknik Kompilasi – Finite Automata
Salah satu materi yang dibahas dalam teknik kompilasi adalah Finite Automata. Saat diberikan RE maka kita dapat membuat DFA minimalnya dengan langkah sebagai berikut
1 . Membuat ε-NFA dengan aturan Thompson
2. Menggambarkan node-node di diagram ε-NFA ke state-state dengan penelusuran ε
3. Menggambarkan diagram DFA
4. Menyederhanakan DFA menjadi DFA minimal
Berikut adalah salah 1 contoh soal berikut penjelasannya
RE = (ab|a)+ b+ (a|b)*
Gambar ε-NFA dari RE diatas adalah
S0 = ε-closure {0} = {0, 1, 4}
ε-closure (move(S0,, a)) = ε-closure{2, 5} = {0, 1, 2, 4, 5, 6, 7} => S1
ε-closure (move(S0,, b)) = ε-closure{-} => –
ε-closure (move(S1, a)) = ε-closure{2, 5} => S1
ε-closure (move(S1, b)) = ε-closure{3, 8} = {0, 1, 3, 4, 6, 7, 8, 9, 10, 12, 15} => S2*
ε-closure (move(S2*, a)) = ε-closure{2, 5, 11} = {0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 14, 15} => S3*
ε-closure (move(S2*, b)) = ε-closure{8, 13} = {7, 8, 9, 10, 12, 13, 14, 15} => S4*
ε-closure (move(S3*, a)) = ε-closure{2, 5, 11} => S3*
ε-closure (move(S3*, b)) = ε-closure{3, 8, 13} = {0, 1, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15} => S5*
ε-closure (move(S4*, a)) = ε-closure{11} = {9, 10, 11, 12, 14, 15} => S6*
ε-closure (move(S4*, b)) = ε-closure{8, 13} => S4*
ε-closure (move(S5*, a)) = ε-closure{2, 5, 11} => S3*
ε-closure (move(S5*, b)) = ε-closure{8, 13} => S4*
ε-closure (move(S6*, a)) = ε-closure{11} => S6*
ε-closure (move(S6*, b)) = ε-closure{13} = {9, 10, 12, 13, 14, 15} => S7*
ε-closure (move(S7*, a)) = ε-closure{ 11} => S6*
ε-closure (move(S7*, b)) = ε-closure{13} => S7*
Setelah mendapatkan DFA maka kita akan meminimalkan DFA terebut. Salah satu cara meminimalkan DFA adalah dengan cara partisi.
Setelah menentukan tabel diatas maka kita menemukan state mana saja yang akan di gabungkan, Dan gambar DFA minimal menjadi berikut
Demikian salah satu contoh merubah RE menjadi DFA minimal. Soal diatas dibuat oleh kelompok 7 Teknik Kompilasi 06 PST Bina Nusantara University.