MATERI PERKULIAHAN TEKNIK KOMPILASI ANALISIS LEKSIKAL Scanner 2

  • Slides: 17
Download presentation
MATERI PERKULIAHAN TEKNIK KOMPILASI ANALISIS LEKSIKAL / Scanner 2 Ken Kinanti Purnamasari

MATERI PERKULIAHAN TEKNIK KOMPILASI ANALISIS LEKSIKAL / Scanner 2 Ken Kinanti Purnamasari

Proses Kompilasi

Proses Kompilasi

Komponen Kompilator

Komponen Kompilator

Analisis Leksikal - Membaca input karakter dari source-code - Mengelompokkan ke dalam leksem-leksem (token-token)

Analisis Leksikal - Membaca input karakter dari source-code - Mengelompokkan ke dalam leksem-leksem (token-token)

Analisis Leksikal

Analisis Leksikal

Finite Automata FA Tools/model pendukung Scanner Deterministik FA (DFA) setiap input punya 1 alternatif

Finite Automata FA Tools/model pendukung Scanner Deterministik FA (DFA) setiap input punya 1 alternatif Non-Deterministik FA (NFA) setiap input punya > 1 alternatif

DFA A = (Q , �� , q 0, F) Keterangan : Q :

DFA A = (Q , �� , q 0, F) Keterangan : Q : Kumpulan Status �� : Kumpulan String �� : Fungsi Transisi q 0 : Status Awal (harus 1) F : Status Final (boleh > 1)

Contoh Status 1 Status 2 Status 3 TIDUR MAKAN BELAJAR Contoh DFA : BANGUN

Contoh Status 1 Status 2 Status 3 TIDUR MAKAN BELAJAR Contoh DFA : BANGUN TIDUR q 0 MAKAN TIDUR F

Regular Expression an a sebanyak n a* a sebanyak 0 sampai tak hingga a+

Regular Expression an a sebanyak n a* a sebanyak 0 sampai tak hingga a+ a sebanyak 1 sampai tak hingga 111 | 222 ada sebanyak 2 pilihan, 111 atau 222

Regular Expression {a, b}* = { Ɛ, a, b, aa, bb, … } {ab}*

Regular Expression {a, b}* = { Ɛ, a, b, aa, bb, … } {ab}* = { Ɛ, abab, ababab, … } {ac, bd}* = { Ɛ, ac, bd, acbd, bdac, … } {ab*c} = { ac, abbc, abbbc, … } {(ab)*c} = { c, ababc, abababc, … }

Regular Expression V = {a} K = {b} {V ⋃ K} = {a, b}

Regular Expression V = {a} K = {b} {V ⋃ K} = {a, b}

Contoh DFA 1 1 0* 0 q 0 1 1 1* 0 q 1

Contoh DFA 1 1 0* 0 q 0 1 1 1* 0 q 1 1 q 2 1 q 0 1 q 1 0 q 2

Contoh DFA Token Operator < A < Mengenali Token < = Mengenali Token <=

Contoh DFA Token Operator < A < Mengenali Token < = Mengenali Token <= > Mengenali Token <>

Contoh DFA Bahasa Pemrograman A < q. B 1 Operator = > = <

Contoh DFA Bahasa Pemrograman A < q. B 1 Operator = > = < q. C 2 Operator <= q. D 2 Operator <> q. F 2 Operator == E = ….

REFERENSI. . . Firrar U. , Teknik Kompilasi, J&J Learning Yogyakarta, 2001 Alfred v.

REFERENSI. . . Firrar U. , Teknik Kompilasi, J&J Learning Yogyakarta, 2001 Alfred v. a. & ullman J. D. , Compilers Principles Technique and Tools, Addison Wesley, 1988

TUGAS PERORANGAN Buat DFA untuk mengenali simbol-symbol (54) berikut dalam bahasa C atau Pascal:

TUGAS PERORANGAN Buat DFA untuk mengenali simbol-symbol (54) berikut dalam bahasa C atau Pascal: intcon, realcon, charcon, stringt, notsy, plus, minus, times, idiv, rdiv, imod, andsy, orsy, egl, neg, gtr, geg, lss, leg, lparent, rparent, lbrack, rbrack, comma, semicolon, period, colon, becomes, constsy, typesy, varsy, functionsy, proceduresy, arraysy, recordsy, programsy, ident, beginsy, ifsy, casesy, repeatsy, whilesy, forsy, endsy, elsesy, untilsy, ofsy, dosy, tosy, downtosy, thensy, typeint, typechar, typereal