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

dokumen-dokumen yang mirip
Teknik Kompilasi. Notasi Bahasa

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

TEKNIK KOMPILASI Bahasa Regular

TEKNIK KOMPILASI Konsep & Notasi Bahasa

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

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

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

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

ALGORITMA PEMROGRAMAN 1C SINTAKS

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

Grammar dan Tingkat Bahasa

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

Komponen sebuah Kompilator

TEORI BAHASA DAN AUTOMATA

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

FINITE STATE MACHINE / AUTOMATA

Teori Bahasa dan Otomata 1

TEORI BAHASA DAN AUTOMATA

UNIVERSITAS GUNADARMA

BAB I PENDAHULUAN 1-1

TEORI BAHASA DAN OTOMATA [TBO]

BAB 2. ANALISIS LEKSIKAL

PENDAHULUAN. Terdapat tiga topik utama di teori otomata yaitu:

anggota alfabet dinamakan simbol terminal atau token.

BAB II SINTAKS 2.1. SINTAKS

PERTEMUAN II. Finite State Automata (FSA) Deterministic Finite Automata (DFA) Non Deterministic Finite Automata (NFA)

Teori Bahasa dan Otomata

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

BAB II ANALISA LEKSIKAL (SCANNER)

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

Konsep dan Notasi Bahasa. Istiqomah, S.Kom

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

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

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013

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

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

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

Teknik Kompiler 6. oleh: antonius rachmat c, s.kom

Non-deterministic Finite Automata Dengan -Move

Aplikasi Rekursif dalam Analisis Sintaks Program

TEKNIK KOMPILASI. Muhamad Nursalman Ilmu Komputer FPMIPA - UPI

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

TEORI BAHASA DAN AUTOMATA

IF-UTAMA 1. Definisi. Grammar. Definisi

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

TEORI BAHASA DAN OTOMATA [TBO]

Proses Kompilasi. Otomata dan Pengantar Kompulasi Pertemuan 3

TEORI BAHASA DAN OTOMATA PENGANTAR

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

TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA DAN AUTOMATA

FINITE STATE AUTOMATA

Tujuan perancangan bhs program

TUGAS MAKALAH TEORI BAHASA & AUTOMATA

Contents.

1, 2, 3

BAB II DASAR TEORI. 2.1 Kompilator

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN:

TEORI BAHASA & AUTOMATA

KONSEP GRAMMAR DAN BAHASA

Teknik Kompiler 12. oleh: antonius rachmat c, s.kom

MK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 COMPILER. Jurusan Sistem Komputer S1 Universitas Gunadarma

KOMPILASI. Assembler Bahasa Rakitan Bahasa Mesin Compiler (Kompilator) Bahasa Tingkat Tinggi Bahasa tingkat rendah

Teori Bahasa Formal dan Automata

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

BAB I PENGENALAN TEKNIK KOMPILASI

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal

Teknik Kompiler 8. oleh: antonius rachmat c, s.kom

Teori Bahasa Formal dan Automata

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

Teori Bahasa Formal dan Automata

Dasar Teori Bahasa & Grammar

TEKNIK KOMPILASI PERTEMUAN Ke 4 dan 5 Abdul Muis Mappalotteng ANALISIS SEMANTIK

Reduksi DFA [Deterministic Finite Automata]

PENGEMBANGAN PROTOTIPE APLIKASI KONVERSI KODE DARI BAHASA C KE PASCAL

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

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

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Amir Hamzah AKPRIND PRESS 2009

TEKNIK KOMPILASI. Dosen : Dwi Retno Wahyuningsih, S. Kom. Jurusan : Teknik Informatika Semester Genap 2007/2008

Struktur Data. PDE - Struktur Data 1

TEORI BAHASA DAN AUTOMATA

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

TEKNIK KOMPILASI. Dosen : Dwi Retno Wahyuningsih, S. Kom. Jurusan : Teknik Informatika Semester Genap 2007/2008

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

FTIK / PRODI TEKNIK INFORMATIKA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

BAB IV ANALISA SINTAKS

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

TEORI BAHASA DAN OTOMATA [TBO]

BAB I TEORI BAHASA DAN AUTOMATA

Universitas Komputer Indonesia

BAB II TINJAUAN PUSTAKA. konsep, fakta, termasuk simbol simbol serta aturan agar mempunyai makna.

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

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

PERANCANGAN SISTEM PERBAIKAN ERROR KODE SUMBER PROGRAM OTOMATIS

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

SMA SANTO PAULUS PONTIANAK

MODUL 17. BAHASA-BAHASA REKURSIF DAN RECURSIVELY ENUMERABLE

Transkripsi:

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

TATA BAHASA Tata bahasa / Grammar dalam OTOMATA adalah kumpulan dari himpunan variabel (non-terminal), simbol-simbol awal dan terminal yang dibatasi oleh aturan-aturan produksi. Grammar digunakan untuk mendefinisikan bahasa. Aturan produksi menspesifikasikan bagaimana suatu tata bahasa mentransformasikan suatu string ke bentuk lainnya. Biasanya aturan produksi diberi simbol: α β dimana α adalah aturan produksi sebelah kiri dan β adalah aturan produksi sebelah kanan aturan produksi sebelah kir menghasilkan aturan produksi sebelah kanan. Simbol-simbol dalam aturan produksi dapat berupa simbol terminal maupun non terminal.

TATA BAHASA (2) Simbol terminal sudah tidak dapat diturunkan lagi. Simbol non-terminal dapat diturunkan lagi sampai menjadi simbol terminal. Simbol terminal biasanya ditulis dalam huruf kecil, sedangkan simbol non-terminal biasanya ditulis dalam huruf besar. Contoh simbol terminal : a,b,c,d,e, dan seterusnya. Contoh simbol non-terminal : A,B,C,D,E, dan seterusnya.

OTOMATA Untuk memodelkan hardware dari komputer diperkenalkanlah otomata / automata. Otomata adalah suatu sistem yang memiliki fungsi-fungsi komputer digital. Karaketeristik Otomata : Menerima input. Menghasilkan output. Mempunyai penyimpanan sementara (buffer) Mampu membuat keputusan dalam mentransformasikan input ke output.

OTOMATA (2) Otomata merupakan suatu sistem yang terdiri atas sejumlah berhingga state, dimana setiap state menyatakan informasi tentang input sebelumnya, dan dapat dianggap sebagai memori mesin. Contoh:

OTOMATA (3) Jika mesin mendapat string : ada maka diterima adu maka diterima add maka ditolak Aturan: input string diterima jika dan hanya jika mencapai state akhir yang disimbolkan dengan lingkaran ganda. Keterangan: Mesin diatas memiliki 6 state {q1,q2,q3,q4,q5,q6}. Mesin memiliki state awal q1 Mesin memiliki state akhir {q4,q6} Mesin memiliki himpunan input contohnya : {a,d,d}

Contoh Automata lain Contoh pada bahasa C: int a,b; type q2 var Q1 ; Q3 var, Q4 State awal: Q1, State akhir: Q1

Hirarki Chomsky Pada tahun 1959 Noam Chomsky menggolongkan tingkatan bahasa menjadi empat yaitu:

Hirarki Chomsky (2) Catatan : ε Abc adalah ilegal karena ε adalah himpunan kosong dan tidak bisa diturunkan lagi. a bd atau ab Bd adalah ilegal karena ruas kiri berupa simbol terminal, padahal seharusnya ruas simbol terminal sudah tidak bisa diturunkan lagi.

Finite State Automata (1) FSA adalah mesin otomata dari bahasa regular, memiliki state dengan jumlah berhingga dan dapat berpindah dari satu state ke state lain. Perubahan state ini dinyatakan dengan sebuah fungsi transisi. FSA tidak memiliki tempat penyimpanan sehingga kemampuan mengingatnya terbatas. FSA hanya mengingat kondisi (state) saat ini, satu state ke arah sebelum dan sesudahnya, dan sekumpulan perintah lain yang belum terpenuhi. Hanya bisa menggunakan bahasa tipe 3 (regular) Dibagi 2: FSA Deterministik & FSA non Deterministik

FSA Deterministik (DFA) Berarti : setiap state memiliki tepat satu state berikutnya untuk setiap simbol masukkan yang diterima. Setiap state selalu memiliki tepat satu state berikutnya. a b b Q0 Q1 Q2 a b Misalkan : Himpunan state Q = {Q0,Q1,Q2} Himpunan input = {a,b} State awal S = Q0 State akhir F = Q2

Contoh DFA State diagramnya? State awal: Q0 State akhir: Q0,Q2

FSA non Deterministik (NFA) Berarti : Suatu state bisa memiliki 0,1 atau lebih output (panah) yang berlabel simbol input yang sama. Digunakan tanda { } karena hasil transisi bisa berupa himpunan state

Contoh NFA

Ekuivalensi DFA Jika ada dua atau lebih DFA yang dapat menerima (accept) bahasa yang sama walaupun bentuk DFA nya berbeda, maka dua atau lebih DFA itu dianggap ekuivalen. a Q0 a Q1 a Q0 a Q1

NFA bisa jadi DFA

NFA -> DFA Pilih state Q1 Pilih state {Q0,Q1} : F(Q0,a) = {Q0,Q1} digabung dengan F(Q1,a) = Q1 => {Q0,Q1} U {Q1} = {Q0,Q1} F(Q0,b) = {Q1} digabung dengan F(Q1,b) = {Q1} => {Q1} U {Q1} = {Q1}

NFA -> DFA (2) State akhir ada pada Q1 berdasarkan pada NFA soal. Jadi semua state yang mengandung Q1 menjadi state akhir. Maka sudah didapatkan bentuk DFA dari soal NFA diatas. Masing-masing state telah memiliki tepat satu state keluar. Pembuktian Dari notasi NFA maupun DFA diatas, untuk string aa bisa diterima

Contoh NFA -> DFA lain Diagram State: Current Input a Input b 1 {1,2} {1} 2 {2} {1,3} 3 {2,3} {1,3} Bagaimana diagramnya? Dan bagaimana NFA ke DFA nya?

Pengembangan FSA Recursive Transition Network FSA yang ditambah dengan kemampuan rekursif sehingga dapat mengenal tipe 2 Kemampuan node ditambah, sebuah node dapat berisi sub-network yang bisa diturunkan secara rekursif. Augmented Transition Network RTN yang ditambah register yang menyimpan informasi. Setiap panah dapat dieksekusi secara kondisional, dapat dilakukan test terlebih dahulu. Menambahkan kemampuan action ke panah, dalam bentuk pengubahan struktur data yang dipakai. Contoh: NLP programs use it!

RE Contoh penerapan DFA ataupun NFA adalah pada Regular Expression (RE) seperti yang telah kita bahas minggu lalu.

Analisis Lexical (Scanner) Scanner berfungsi melakukan analisis leksikal, yaitu mengidentifikasi semua simbol yang membangun suatu bahasa pada suatu source code. Scanner bertugas: Membuang komentar Menyeragamkan huruf (menjadi besar atau kecil) pada semua identifier pada bahasa pemrograman yg incasesensitive Membuang white space Mengintepretasikan kompiler directive (misal: {$R+, {$R-, include, dll) Berkomunikasi dengan tabel simbol

Token, Lexem, Diagram Lexem adalah substring dari suatu string besar, menjadi satu bagian tertentu yang memiliki arti Token adalah suatu nama (identifier) yang sudah didefinisikan fungsionalitasnya dan merupakan kumpulan dari lexem-lexem. source Lexical analyzer token Parser/scanner Parse tree Rest of front end Intermediate representation program Get next token Symbol Table

Token & Lexem Contoh non-token: White space character : space, tab, end-of-line Comments Contoh input : If distance >= rate*(end_time start_time) then distance:= maxdist; Output Lexem : if, distance, >=, rate, *, (, end_time, -, start_time, ), then, distance, :=, maxdist, ; Output Token : If_op, id_var (distance,rate,end_time, start_time, maxdist), gt_op (>=), optr (*, -), assig_op (:=), block_op ( (, ) ), then_op, end_op

Scanner Token dan source code akan menjadi input bagi proses berikutnya, yaitu parser. Parser akan menerima hasil analisis lexical dalam bentuk: If_op id_var1 gt_op id_var2 optr_1 block_op1 id_var2 optr_2 id_var3 block_op2 then_op id_var3 assig_op id_var3 end_op Scanner lebih mudah diimplementasikan pada Finite State Automata dan aturan-aturan tokennya ditulis dengan menggunakan RE.

Lexem, Operator, dan Delimiter Jenis-jenis Lexem: Identifier Bisa berupa keyword atau nama variabel. Keywords adalah kata-kata yang sudah didefinisikan oleh program, sedangkan variabel adalah kata-kata yang didefinisikan oleh programmer. Nilai konstanta Adalah nilai yang bersifat konstan. Dapat berupa integer, real, boolean, karakter, ataupun string. Contoh: N := 0.333; kata := malam ; selesai := TRUE; A := 1 * 2 + 3; Operator dan Delimitter Operator : +, -, *, /, <, <=, >=, >, = dan lain-lain. Delimiter : (, ), ;, dan lain-lain.

RE untuk operator dan komentar pd Pascal

NEXT See you on TTS! Sifat: buka selembar kertas (bolak-balik, boleh diketik) Bahan: dari awal hingga materi ini Senin, 14 juli 2008, pukul 7:30 (70 menit), D11 Soal: pilihan ganda dan essay! Do it yourself and GBU!