TEORI BAHASA & OPERASI MATEMATIS (2)

dokumen-dokumen yang mirip
anggota alfabet dinamakan simbol terminal atau token.

KONSEP GRAMMAR DAN BAHASA

ALGORITMA PEMROGRAMAN 1C SINTAKS

TEORI BAHASA DAN OTOMATA [TBO]

POHON PENURUNAN Context Free Grammar

GRAMMAR AND LANGUAGE

Teori Bahasa Formal dan Automata

Teori Bahasa Formal dan Automata

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

Teori Bahasa & Otomata

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

TEORI BAHASA DAN AUTOMATA

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

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

Hirarki Comsky. Unrestricted. Context Sensitive Context free Regular

Tata Bahasa Pemrograman

TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)

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

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

Dasar Teori Bahasa & Grammar

Teori Komputasi 11/23/2016. Bab 6: Context-Free Grammar & Parsing. Context-Free Grammar. Context-Free Grammar

Analisis Sintaksis (syntactic analyzer atau parser)

BAB II TINJAUAN PUSTAKA. Bahasa menurut kamus Websters adalah the body of words and methods of

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

Lecture Notes Teori Bahasa dan Automata

Parsing dapat dilakukan dengan cara : Penurunan terkiri (leftmost derivation) : simbol variable yang paling kiri diturunkan (tuntas) dahulu

IF-UTAMA 1. Definisi. Grammar. Definisi

TEKNIK KOMPILASI Konsep & Notasi Bahasa

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

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN:

Komponen sebuah Kompilator

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

Teori Bahasa dan Otomata 1

BAB II SINTAKS 2.1. SINTAKS

Tata Bahasa Bebas Konteks

Mahasiswa memahami bahasa sebagai himpunan dan operasi 2 -nya, cara mendefinisikan bahasa, serta cara mengenali anggota 2 bahasa

MODUL 12: BENTUK-BENTUK SEDERHANA DAN BENTUK-BENTUK NORMAL

Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner

BAB I TEORI BAHASA DAN AUTOMATA

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

TEORI BAHASA DAN OTOMATA [TBO]

BAB III CFG DAN PARSING

Penyederhanaan Tata Bahasa Bebas Konteks dalam Bentuk Normal Chomsky Menggunakan PHP

Language Is Cool. The Chomsky Hierarchy. Normal Forms. Chomsky Normal Form (CNF) & Greibach Normal Form (GNF) Teori Bahasa & Otomata - Danang Junaedi

BAB IV ANALISA SINTAKS

Aplikasi Pengubah Bentuk Normal Chomsky Menjadi Bentuk Normal Greibach dengan Metode Substitusi

PENYEDERHANAAN Context Free Grammar

Memiliki kelemahan terlalu panjang jalannya padahal berujung pada S a, produksi D A juga menyebabkan kerumitan.

MODUL 17. BAHASA-BAHASA REKURSIF DAN RECURSIVELY ENUMERABLE

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

Grammar dan Tingkat Bahasa

Konsep dan Notasi Bahasa. Istiqomah, S.Kom

Parsing. A -> a as baa B -> b bs abb

IF-UTAMA 1. Penurunan (Derivation) [2] Penurunan (Derivation) Contoh Penurunan [1] Parse Tree [1]

DIKTAT TEORI BAHASA DAN OTOMATA

Aplikasi Rekursif dalam Analisis Sintaks Program

Contents.

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

TEORI BAHASA DAN OTOMATA

TEORI BAHASA DAN OTOMATA [TBO]

Teori Bahasa dan Operasi Matematis.

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

Tujuan perancangan bhs program

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

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

APLIKASI PROGRAM DINAMIS DALAM ALGORITMA COCKE- YOUNGER -KASAMI (CYK)

Amir Hamzah AKPRIND PRESS 2009

BAB VI METODE PARSING

BAB I PENDAHULUAN. memiliki tata bahasa dan aturan yang lebih luas dan luwes, sehingga tidak

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

PERSAMAAN KUADRAT. Persamaan. Sistem Persamaan Linear

REPRESENTASI PENGETAHUAN (Bagian 1) Pertemuan 4

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

Teknik Kompilasi. Notasi Bahasa

Aplikasi Pengolah Bahasa Alami Untuk Operasi Boolean Antar Citra Agus Purwo Handoko 5)

3.1. Definisi Syntax Syntax suatu bahasa pemrograman adalah satu himpunan

Penghilangan Rekursif Kiri

TEORI BAHASA & AUTOMATA

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

PERANCANGAN SISTEM PERBAIKAN ERROR KODE SUMBER PROGRAM OTOMATIS

UNIVERSITAS GUNADARMA

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

BAHASA REGULER 1. Ekspresi Regular

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

MODUL XIII TEORI BAHASA DAN AUTOMATA

SATUAN ACARA PERKULIAHAN (SAP) Semester Penempatan

TEORI BAHASA DAN OTOMATA

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

Fr*snd*mffi. Fakultns tlmu Komputer, l;nivrrsitfls. f&,# d *-B. ,, :..:.4 t:,{;. ${r= st :rir"l, r;t. .j"s*l!&,. '":*& \',?Srlrlfu. :1i-,=-+n 3r: lvqd

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

TEORI BAHASA DAN AUTOMATA

BAB I PENDAHULUAN 1-1

2. Review TeoriBahasaFormal danotomata

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013

BAB I PENGENALAN TEKNIK KOMPILASI

SATUAN ACARA PERKULIAHAN (SAP)

MODUL 1: PENGANTAR TEORI BAHASA

Pohon (Tree) Contoh :

Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal

Transkripsi:

PERTEMUAN III TEORI BAHASA & OPERASI MATEMATIS (2) Mahasiswa memahami bahasa sebagai himpunan dan operasi 2 -nya, cara mendefinisikan bahasa, serta cara mengenali anggota 2 bahasa JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI INSTITUT TEKNOLOGI SEPULUH NOPEMBER 2005-2009

MATERI PERTEMUAN Konsep Dasar Grammar Derivasi dan Parse Tree Klasifikasi Grammar Tugas Mingguan III Pertemuan III Informatika / FTIf / ITS 2

GRAMMAR (1) Grammar adalah sebuah alat untuk mendefinisikan bahasa secara rekursif. Definisi konseptual : Grammar adalah sebuah sistem matematis yang dapat mendefinisikan bahasa. Dan bahasa yang didefinisikan oleh grammar ini awalnya berupa himpunan string. Definisi formal : Sebuah grammar G memiliki 4 tupel (V N, V T, S, θ) dengan V N adalah himpunan berhingga non-terminal, V T adalah himpunan berhingga terminal, S adalah salah satu anggota V N yang dijadikan start symbol, dan θ adalah himpunan berhingga production yang berbentuk α β (dimana α adalah salah satu simbol dari himpunan V N dan β berbentuk rangkaian terminal dan/atau non-terminal) Pertemuan III Informatika / FTIf / ITS 3

GRAMMAR (2) Contoh : Misal terdapat sebuah grammar G = (V N, V T, S, φ) untuk pembentukan identifier pada bahasa pemrograman, seperti berikut : Sub-himpunan nonterminal : V N = {I, L, D} Sub-himpunan terminal : V T = {a, b, c,, z, 0, 1, 2,, 9} Sub-himpunan start symbol : S = I Sub-himpunan poduction : φ = {I L, I IL, I ID, L a, L b,, L z, D 0, D 1, D 2,, D 9} Pertemuan III Informatika / FTIf / ITS 4

GRAMMAR (3) Grammar untuk pembentukan identifier tersebut dapat pula diekspresikan/dituliskan/ dinyatakan dalam bentuk lain seperti berikut : I L L a D 0 I IL L b D 1 I ID L z D 9 Atau secara singkat dapat ditulis : I L IL ID L a b z D 0 1 9 Konsensus : Biasanya non-terminal akan ditulis dengan huruf besar, selain itu (angka, karakter, simbol, tanda baca dan huruf kecil) merupakan terminal, yang ditulis dengan huruf kecil dan tebal/bold. Pertemuan III Informatika / FTIf / ITS 5

GRAMMAR (4) Contoh : Sebuah grammar G = (V N, V T, S, φ) untuk pembentukan bilangan bulat positif. V N = {ANGKA, DIGIT_AWAL, DIGIT_LAIN} V T = {0, 1, 2,, 9} S = ANGKA φ = {ANGKA DIGIT_AWAL, DIGIT_AWAL DIGIT_AWAL DIGIT_LAIN, DIGIT_AWAL 1, DIGIT_AWAL 2,, DIGIT_AWAL 9, DIGIT_LAIN 0, DIGIT_LAIN 1,, DIGIT_LAIN 9} Atau himpunan production di atas dapat pula diekspresikan dalam bentuk : ANGKA DIGIT_AWAL DIGIT_AWAL DIGIT_AWAL DIGIT_LAIN 1 2 9 DIGIT_LAIN 0 1 2 9 Pertemuan III Informatika / FTIf / ITS 6

DERIVASI dan PARSE TREE (1) Misalkan terdapat sebuah bahasa yang didefinisikan melalui grammar berikut : I L IL ID L a b z D 0 1 9 Prose penurunan/derivasi dapat dilakukan pada sebuah string (misal, a15) untuk menentukan keanggotan string tersebut terhadap bahasa di atas. Leftmost Derivation I ID IDD LDD add a1d a15 Rightmost Derivation I ID I5 ID5 I15 L15 a15 Proses derivasi selalu diawali dari start symbol. Tetapi jika tidak diketahui, maka non-terminal yang berada pada ujung kiri atas grammar dapat dianggap sebagai start symbol. Pertemuan III Informatika / FTIf / ITS 7

DERIVASI dan PARSE TREE (1) Derivasi dan Parse Tree adalah sebuah alat untuk mengidentifikasi keanggotaan sebuah bahasa. Jika diberikan sebuah string, maka melalui derivasi atau parsing dapat diketahui apakah string tersebut merupakan anggota dari bahasa yang bersangkutan atau bukan. Disebut derivasi atau parsing karena prosesnya adalah men-derive ( menurunkan / menelusuri) apakah dari grammar (sebuah bahasa) yang dijadikan rujukan dapat menghasilkan string atau kalimat seperti yang diberikan. Dalam aplikasinya, derivasi menggunakan pendekatan substitusi linier untuk mengganti setiap nonterminal dengan terminal yang bersesuaian. Sedangkan parsing menggunakan pohon parsing (parse tree) untuk memudahkan proses substitusi tersebut. Pertemuan III Informatika / FTIf / ITS 8

DERIVASI dan PARSE TREE (2) Misalkan terdapat sebuah bahasa yang dapat digunakan untuk mengekspresikan persamaan matematis sederhana seperti berikut : E T E + T E - T T F T * F T / F F i ( E ) Selain melalui derivasi, pengenalan sebuah string (ekspresi matematis) dapat pula dilakukan melalui teknik parsing (dengan cara membentuk parse tree) Pohon parsing untuk Pohon parsing untuk ekspresi : i + i E ekspresi : i * ( i + i ) E T E + T T * F T F F ( E ) F i i E + T i T F F i Pertemuan III Informatika / FTIf / ITS 9 i

KLASIFIKASI GRAMMAR (1) Sintaks bahasa pemrograman umumnya dinyatakan melalui grammar, yang secara garis besar dibagi menjadi 2 klas utama, yaitu : Backus-Naur Form (BNF) Sebuah meta-language yang dikembangkan oleh Johan Backus dan Peter Naur. Didalam perkembangannya, cakupan BNF ini diperluas dan cara mengekspresikannya pun dirampingkan menjadi EBNF (Extended Backus- Naur Form). Chomsky Normal Form (CNF) Terbagi ke dalam 2 sub-klas : Unrestricted Grammar (grammar kelas 0) Restricted Grammar, yang terdiri dari 3 sub sub-klas : Context-Sensitive Grammar (grammar kelas 1) Context-Free Grammar (grammar kelas 2) Regular Grammar (grammar kelas 3) Pertemuan III Informatika / FTIf / ITS 10

KLASIFIKASI GRAMMAR (2) Backus-Naur Form (BNF) Non-terminal ditulis <non-terminal> Terminal ditulis terminal Simbol ditulis ::= Contoh: Grammar bahasa Pascal pertama kali ditulis oleh Niclaus Wirth menggunakan format BNF. <identifier> ::= <letter> <identifier> <letter> <identifier> <digit> <letter> ::= a b c z <digit> ::= 0 1 2 9 dst Pertemuan III Informatika / FTIf / ITS 11

KLASIFIKASI GRAMMAR (3) Extended Backus-Naur Form (EBNF) Perluasan EBNF berupa penambahan : { z } pengulangan nol atau lebih karakter z [ z ] sintaks optional, dapat dipilih atau tidak Contoh : EBNF dalam bahasa Pascal. <program> ::= <program_heading> ; <program_block>. <program_heading> ::= <program> <identifier> [(<program_parameter>)] <program_parameter> ::= <identifier_list> <identifier_list> ::= <identifier> {, <identifier>} <program_block> ::= <block> <block> ::= <label_declaration_part> <constant_declaration_part> <type_declaration_part> <variable_declaration_part> <procedure_and_function_declaration_part> <statement_part> Pertemuan III Informatika / FTIf / ITS 12

KLASIFIKASI GRAMMAR (4) Grammar Klas 0 : Unrestricted Grammar Aturan-aturan sintaktik (productions) yang digunakan untuk membentuk kalimat tidak mempunyai batasan yang jelas. Contoh : G = ({S, A, B, C, D}, {a, b}, S, θ), dengan θ adalah : S CD Aa aa C e C aca bcb Ab ba D e AD ad Ba ab BD bd Bb bb Bahasa yang didefinisikan grammar di atas adalah : L(G) = { ww w {a, b}} Pertemuan III Informatika / FTIf / ITS 13

KLASIFIKASI GRAMMAR (5) Grammar Klas 1 : Context-Sensitive Grammar Grammar dengan production berbentuk α β, dimana α β Contoh : G = ({S, A, B, C, D}, {a, b}, S, θ), dengan θ adalah : S asbc abc bb bb bc bc CB BC cc cc Misal diberi input string a 2 b 2 c 2, maka proses derivasi akan tampak seperti berikut : S asbc aabcbc aabbcc aabbcc aabbcc aabbcc Pertemuan III Informatika / FTIf / ITS 14

KLASIFIKASI GRAMMAR (6) Grammar Klas 2 : Context-Free Grammar (CFG) Grammar dengan production yang berbentuk α β, dimana α β dengan α V n dan α = 1. Dengan demikian, production-production pada klas grammar ini hanya memiliki satu non-terminal di sisi kiri setiap productionnya. Bahasa yang didefinisikan oleh CFG ini disebut Context-Free Language. CFG merupakan satu-satunya klas grammar yang telah memiliki algoritma parsing yang optimal. Sehingga hampir semua bahasa pemrograman menggunakan CFG untuk mendefinifikan aturan-aturan sintaktik bahasanya. Contoh : Bahasa = { a n b a n n 1 } didefinisikan melalui grammar berikut : S aca C aca b Derivasi untuk input string a 3 b a 3 adalah sebagai berikut : S aca aacaa aaacaaa aaabaaa Pertemuan III Informatika / FTIf / ITS 15

KLASIFIKASI GRAMMAR (7) Grammar Klas 3 : Regular Grammar Grammar dengan production yang berbentuk α β, dimana α β dengan α V n dan α = 1. Sedangkan β mempunyai bentuk ab atau a (a V T dan B V N ). Bahasa yang didefinisikan oleh Regular Grammar ini disebut Regular Language. Bahasa pemrograman yang menggunakan aturan sintaktik bahasa regular ini antara lain adalah javascript, perl, dll. Contoh : Bahasa = { a n b a m n 1 } didefinisikan melalui grammar berikut : S as ab C ac a B bc Derivasi untuk input string a 3 b a 2 adalah sebagai berikut : S as aas aaab aaabc aaabac aaabaa Pertemuan III Informatika / FTIf / ITS 16

TUGAS MINGGUAN III 1. Bahasa apakah yang didefinisikan oleh CFG berikut : S XbaaX ax X Xa Xb ε carilah sebuah contoh string yang dapat dikenali oleh CFG di atas melalui 2 derivasi yang berbeda. 2. Gambarkan parse tree untuk input string di bawah menggunakan setiap CFG yang ada : i). S as asb X ii). S aas a iii). S ab ba X axa a A SbA SS ba A a as baa B b bs abb aaaa, abaa, abab 3. Melalui grammar di bawah : S E E T + E T T F * T F F ( E ) i buatlah left-most derivation untuk input string : a. (( i ) * ( i + i )) + i b. ( i ) + (( i ))) Pertemuan III Informatika / FTIf / ITS 17