TEKNIK KOMPILASI Bahasa Regular

dokumen-dokumen yang mirip
PERTEMUAN II. Finite State Automata (FSA) Deterministic Finite Automata (DFA) Non Deterministic Finite Automata (NFA)

FINITE STATE MACHINE / AUTOMATA

TEORI BAHASA DAN OTOMATA [TBO]

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state

TEKNIK KOMPILASI Tony Darmanto,ST / Smt V S1 TI / STMIK WIDYA DHARMA/ Hal 16

TEKNIK KOMPILASI Konsep & Notasi Bahasa

Teknik Kompiler 5. oleh: antonius rachmat c, s.kom, m.cs

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu:

Teori Bahasa dan Otomata

TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

TEORI BAHASA DAN AUTOMATA

Non-deterministic Finite Automata Dengan -Move

TEORI BAHASA DAN OTOMATA [TBO]

Konsep dan Notasi Bahasa. Istiqomah, S.Kom

Komponen sebuah Kompilator

Teknik Kompilasi. Notasi Bahasa

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013

TEORI BAHASA DAN OTOMATA [TBO]

NonDeterministic Finite Automata. B.Very Christioko, S.Kom

Teori Bahasa Formal dan Automata

Teori Bahasa dan Otomata 1

TEORI BAHASA DAN AUTOMATA

Teori Himpunan. Matematika Dasar untuk Teori Bahasa Otomata. Operasi pada Himpunan. Himpunan Tanpa Elemen. Notasi. Powerset & Cartesian Product

BAB 2. ANALISIS LEKSIKAL

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

UNIVERSITAS GUNADARMA

Pendahuluan [6] FINITE STATE AUTOMATA. Hubungan RE & FSA [5] Finite State Diagram [6] 4/27/2011 IF-UTAMA 1

BAB II ANALISA LEKSIKAL (SCANNER)

TEORI BAHASA DAN AUTOMATA

Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis. Menggunakan simbol persegi panjang untuk non terminal

Teori Komputasi 11/2/2016. Bab 5: Otomata (Automata) Hingga. Otomata (Automata) Hingga. Otomata (Automata) Hingga

BAB 1 PENDAHULUAN. sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan

TEORI BAHASA DAN AUTOMATA

Reduksi DFA [Deterministic Finite Automata]

FINITE STATE AUTOMATA

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

Teori Bahasa Formal dan Automata

BAB I PENDAHULUAN 1-1

Penerapan Finite State Automata Pada Proses Peminjaman Buku di Perpustakaan Universitas Kristen Satya Wacana Artikel Ilmiah

Grammar dan Tingkat Bahasa

BAB II SINTAKS 2.1. SINTAKS

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN OTOMATA PENGANTAR

PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL

Teori Bahasa Formal dan Automata

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

MODUL 2: Bahasa Regular dan Ekspresi Regular

Teori Bahasa & Otomata

21/11/2016. Pohon Sintaks. Syntax?? Proses Penurunan. Analisis Syntax (Parser) Metode Parsing ANALISIS SINTAKS TEKNIK KOMPILASI

PENDEKATAN TEORI AUTOMATA UNTUK MENYELESAIKAN APLIKASI-APLIKASI DI BIDANG ILMU KECERDASAN BUATAN

Ekspresi Reguler Definisi. Notasi Ekspresi Regular. Contoh Ekspresi Reguler [2]

Finite State Machine dapat berupa suatu mesin yang tidak memiliki output. Finite State Machine yang tidak mengeluarkan output ini dikenal

TEORI BAHASA & OTOMATA (PENGENALAN KOMPILASI) PERTEMUAN VI Y A N I S U G I Y A N I

Syntax, Semantic & Grammar. Konsep Bahasa Pemrograman Materi 3 Yudianto Sujana, M.Kom

MODUL 5: Nondeterministic Finite Automata dengan

Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah komponen terkecil kalimat yang tidak bisa dipisahkan lagi.

Aplikasi Rekursif dalam Analisis Sintaks Program

BAB II MODEL KOMPUTASI FINITE STATE MACHINE. Pada Bab II akan dibahas teori dasar matematika yang digunakan

Teori Bahasa dan Automata. Finite State Automata & Non Finite State Automata

Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal

TEORI BAHASA DAN AUTOMATA

1, 2, 3

BAB I TEORI BAHASA DAN AUTOMATA

SMA SANTO PAULUS PONTIANAK

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika Matematika Skripsi Sarjana Program Ganda Semester Genap 2003/2004

MODUL 4: Nondeterministic Finite Automata

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

Bab 2. Dasar-Dasar Pemrograman C

Teknik Kompilasi II TEKNIK KOMPILASI. Ernastuti & Sulistyo P 1/52. Ernastuti & Sulistyo

BAB II DASAR TEORI. 2.1 Kompilator

Deterministic Finite Automata

RENCANA PEMBELAJARAN SEMESTER (Kelas Teori)

TEORI BAHASA & AUTOMATA

FTIK / PRODI TEKNIK INFORMATIKA

Operasi FA dan Regular Expression

anggota alfabet dinamakan simbol terminal atau token.

TUGAS MAKALAH TEORI BAHASA & AUTOMATA

BAHASA REGULER 1. Ekspresi Regular

Amir Hamzah AKPRIND PRESS 2009

ALGORITMA PEMROGRAMAN 1C SINTAKS

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. dirancang dan selanjutnya dapat diketahui gambaran dan kemampuan sistem secara

Teori Bahasa & Otomata

MODUL 1: PENGANTAR TEORI BAHASA

BAB I PENGENALAN TEKNIK KOMPILASI

Pendahuluan. Tujuan Pembelajaran :

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

SENTENCE ANALYSIS WITH ARTIFICIAL INTELLIGENCE MACHINE LEARNING USING FINITE STATE AUTOMATA

TEORI BAHASA DAN AUTOMATA

IF-UTAMA 1. Definisi. Grammar. Definisi

Decission : if & if else

PERANCANGAN SISTEM PERBAIKAN ERROR KODE SUMBER PROGRAM OTOMATIS

Teknik Informatika PERTEMUAN 2. TEORI BAHASA & OTOMATA Imam Riadi, M.Kom Shofwatul Uyun, M.Kom. Teknik Informatika

DAN FIRRAR UTDIRARTATMO

FLOWCHART - LANJUTAN

Lecturer: Abdusy Syarif. Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana. Tipe Data

TEORI BAHASA DAN OTOMATA [TBO]

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

Transkripsi:

TEKNIK KOMPILASI Bahasa Regular Sekolah Manajemen Informatika dan Komputer (STMIK) Palangkaraya 2012

Tata bahasa reguler Sebuah bahasa dinyatakan regular jika terdapat Finite State Automata (FSA) yang dapat menerimanya. Ekspresi reguler memungkinkan menspesifikasi atau mendefinisikan bahasa-bahasa Ekspresi reguler memberikan suatu pola (pattern) atau template untuk string dari suatu bahasa. Untai yang menyusun suatu bahasa regular akan cocok (match) dengan pola bahasa itu.

Ekspresi Regular Dalam suatu kompilator, ekspresi regular bisa diaplikasikan untuk melakukan analisis leksikal yang dikenal dalam program (token). Token-token dalam sautu bahasa pemrograman dinyatakan sebagai ekspresi regular.

Notasi Ekspresi Regular * Karakter asterik Bisa tidak muncul Bisa muncul berhingga kali (0-n) + Pada posisi superscirpt (di atas) Minimal muncul satu kali (1-n) + atau ᴜ Union Gabungan untai/string. Titik Konkatenasi, biasanya tanda titik bisa dihilangkan

Operasi dalam Bahasa Regular Dalam analisis lexical, operasi yang paling penting adalah union, concatenation, dan closure Union : penggunaannya sama dengan himpunan. Concatenation : pembentukan string dengan mengambil sebuah string dari bahasa pertama dan bahasa kedua, dalam semua kemungkinan yang ada.

Operasi dalam Bahasa Regular (Kleene) closure dari bahasa L, dilambangkan dengan L*, himpunan string dengan hasil gabungan 0 atau lebih L. L 0 merupakan "concatenation L sebanyak 0 kali," didefinisikan menjadi {ε}, dan secara induktif, L i adalah L i - 1 L. Positive closure, dilambangkan L +, sama dengan Kleene closure, tapi tanpa L 0. ε tidak ada dalam L + kecuali berada dalam L itu sendiri

Finite State Automata (FSA) model matematika yang dapat menerima input dan mengeluarkan output Analisis leksikal lebih mudah diimplementasikan pada FSA. Memiliki state yang berhingga banyaknya dan dapat berpindah dari satu state ke state lainnya berdasar input dan fungsi transisi Tidak memiliki tempat penyimpanan/memory, hanya bisa mengingat state terkini Mekanisme kerja dapat diaplikasikan pada : elevator, text editor, analisa leksikal, pencek parity.

Finite State Automata (FSA) Finite State Automata dinyatakan oleh 5 tuple M=(Q, Σ, δ, S, F ) Q = himpunan state Σ = himpunan simbol input δ = fungsi transisi δ : Q Σ S = state awal / initial state, S Q F = state akhir, F Q

Jenis FSA Deterministic Finite Automata (DFA) dari suatu state ada tepat satu state berikutnya untuk setiap simbol masukan yang diterima Non-deterministic Finite Automata (NFA) dari suatu state ada 0, 1 atau lebih state berikutnya untuk setiap simbol masukan yang diterima

Finite State Diagram (FSD) Menggambarkan kerja FSA, disebut juga dengan State- Transition Diagram Lingkaran menyatakan state, Lingkaran bergaris tunggal = state sementara Lingkaran bergaris ganda = state akhir Lingkaran diberi label sesuai dengan nama state Anak panah menyatakan transisi. Label di anak panah menyatakan simbol input (yg membuat transisi dari satu state ke state lain)

Finite State Automata (FSA) Contoh pencek parity ganjil Misal input : 1101 Genap 1 Ganjil 1 Genap 0 Genap 1 Ganjil diterima mesin Misal input : 1100 Genap 1 Ganjil 1 Genap 0 Genap 0 Genap ditolak mesin

Dari contoh tersebut : Q = {Genap, Ganjil} Σ = {0,1} S = Genap F = {Ganjil } Tabel transisinya : Fungsi transisinya : δ(genap,0) = Genap δ(genap,1) = Ganjil δ(ganjil,0) = Ganjil δ(ganjil,1) = Genap

Tata bahasa reguler & hubungannya sebagai scanner (penganalisis leksikal) Dalam suatu kompilator, ekspresi reguler bisa diaplikasikan untuk melakukan analisis leksikal. Source code dipindai dan mengidentifikasi unit-unit leksikal yang dikenal dalam program. Unit leksikal tersebut dinamakan token. Token-token pada bahasa pemrograman dinyatakan sebagai ekspresi reguler dan menghasilkan Deterministic Finite Automata (DFA) yg mengenali token mana yg muncul berikutnya pada input.

Tata bahasa reguler & hubungannya sebagai scanner (penganalisis leksikal) Contoh : token identifier : terdiri dari huruf (kecil maupun kapital), bisa diikuti huruf atau digit, tanpa batas panjang dapat dinyatakan : (huruf)(huruf+digit)* Huruf berupa A..Z atau a..z Digit berupa 0..9 q0 huruf q1 huruf atau digit FSA mengenali identifier FSA akan diterjemahkan menjadi kode dlm sebuah bahasa pemrograman

Tata bahasa reguler & hubungannya sebagai scanner (penganalisis leksikal) Contoh : Otomata untuk mengenali keyword then. Otomata memerlukan 5 state, masing-masing melambangkan posisiposisi berbeda pada kata then. Posisi-posisi ini berkorespondensi dgn prefiks kata, mulai dari string kosong (empty string) di mana tidak ada satu kata yg muncul, sampai satu kata penuh tampil. start t h e n t th the then FSA untuk mengenali keyword then State awal berkoresponden dgn string kosong. Setiap state mengalami transisi pada huruf berikutnya dari kata then, berkoresponden dgn prefiks berikutnya.

Contoh : suatu tata bahasa memiliki himpunan simbol terminal/token berikut (ID, PLUS, MINUS, dan INT) token ID untuk karakter huruf a-z, 0-9, token INT untuk digit, token PLUS untuk Penjumlahan dan token MINUS untuk Pengurangan PLUS + S huruf ID Huruf, Digit MINUS - Blank Digit INT Digit

Contoh FSA untuk token relop dan komentar Misalkan sebuah bahasa memiliki himpunan simbol terminal token : <, >, =, <=, >=, <> Atau bisa dibaca sebagai token : t_l, t_g, t_e, t_le, t_ge, t_ne (G = greater, L = less, E = equal, N= not) Komentar diawali { dan diakhiri } Setiap scanner menemukan awal komentar atau { scanner hanya mengambil simbol yg didapat tanpa menyimpan ke dalam token. Setelah ditemukan akhir komentar atau }, state di kembalikan ke state awal.

Contoh FSA untuk token operator relasi dan komentar Diagram state untuk himpunan simbol tersebut : START < = t_l > = t_e t_l E t_ne > = t_g t_ge } { komen tar apa saja selain }

Scanner diimplementasikan sebagai sebuah prosedur yang dipanggil oleh parser. Contoh prosedur scan sederhana untuk membaca file input dan memberikan token hasilnya. Misal didefinisikan dulu Procedure GetChar yang berguna mengambil sebuah karakter dari input. procedure GetChar begin read(fileinput, Kar); end; Dimana FileInput : text; Kar : char;

Latihan Lengkapilah potongan coding program tersebut, untuk mengenali (scanning) token operator-operator logika. Compilator yang digunakan bebas.

Latihan Tentukan Q, Σ, S, F, tabel transisi dan fungsi transisi pada FSA untuk token operator relasi dan komentar pada slide sebelumnya! Buatlah diagram state untuk sebuah bahasa yang memiliki kompulan token-token sebagai berikut. + - / * ** < <= > >= = <> integer identifier Lakukanlah identifikasi operator relasi pada bahasa C, buatlah diagram state (FSA)-nya!