KONSEP dan NOTASI BAHASA 1 10172021 Konsep dan
KONSEP dan NOTASI BAHASA 1 10/17/2021
Konsep dan Notasi bahasa � Teknik Kompilasi merupakan kelanjutan dari konsep-konsep yang telah kita pelajari dalam teori bahasa dan automata � Thn 56 -59 Noam chomsky melakukan penggolongan tingkatan dalam bahasa, yaitu menjadi 4 class � Penggolongan tingkatan itu disebut dengan hirarki Comsky � 1959 Backus memperkenalkan notasi formal baru untuk syntax bahasa yang lebih spesifik � Peter Nour (1960) merevisi metode dari syntax. Sekarang dikenal dengan BNF (backus Nour Form) 2 10/17/2021
Konsep dan Notasi bahasa � Tata bahasa (grammar) adalah sekumpulan dari himpunan variabel-variabel, simbol-simbol terminal, simbol non-terminal, simbol awal yang dibatasi oleh aturan-aturan produksi � Aturan produksi adalah pusat dari tata bahasa yang menspesifikasikan bagaimana suatu tata bahasa melakukan transformasi suatu string ke bentuk lainnya 3 10/17/2021
Konsep dan Notasi bahasa � Syntax : suatu aturan yang memberitahu apakah sesuatu kalimat (string) adalah valid dalam program atau tidak � Semantic : suatu aturan-aturan yang memberikan arti kepada program 4 10/17/2021
Review Mesin Automata Misal : FSA Misal : Ada mesin penjual permen yang Memuat aturan 2 sbb : Harga Permen Rp. 25 Mesin tsb dpt menerima koin Rp. 5 (n), Rp. 10 (d) Rp. 25 (q) $ = tombol utk mengeluarkan permen. Kemungkinan 2 yang Terjadi diperlihatkan gambar : 5 10/17/2021
Review Mesin Automata Misal : FSA State Diagram nya adalah : 6 10/17/2021
Contoh lain : FSA 7 10/17/2021
Konsep dan Notasi bahasa Penggolongan Chomsky Bahasa Mesin Automata 8 Aturan Produksi 10/17/2021
Keterangan � menyatakan simbol – simbol yang berada di ruas kiri aturan produksi � menyatakan simbol – simbol yang berada di ruas kanan aturan produksi �Simbol-simbol terdiri dari simbol terminal dan non terminal/variabel (masih bisa diturunkan lagi) �Simbol terminal biasanya dinyatakan dengan huruf kecil, sementara non terminal dengan huruf besar 9 10/17/2021
Aturan Produksi � � 10 Tipe 0 / Unrestricted: Tidak Ada batasan pada aturan produksi Abc De Tipe 1 / Context sensitive: Panjang string ruas kiri harus lebih kecil atau sama dengan ruas kanan Ab De. F CD e. F Tipe 2 / Context free grammar: Ruas kiri haruslah tepat satu simbol variable B CDe. Fg D Bc. De Tipe 3 / Regular: Ruas kanan hanya memiliki maksimal 1 simbol non terminal dan diletakkan paling kanan sendiri A e A efg. H C D 10/17/2021
Aturan produksi yang tidak legal !!! �Simbol E tidak boleh berada pada ruas kiri misal E Abd �Aturan produksi yang ruas kirinya hanya memuat simbol terminal saja misal : a bd atau ab bd 11 10/17/2021
Hirarki Comsky Unrestricted Context Sensitive Context free Regular 12 10/17/2021
Contoh Tata Bahasa Sederhana � <program> 13 BEGIN <Statement-list> END � � � <Statement-list> <statement> | <statement>; <statement-list> <statement> <var> : = <expression> <Expression> <term> | <term><op 1> <expression> <term> <factor> | <factor> <op 2> <term> <factor> <var> | <constant> � � <var> A|B| …. | Z <op 1> +|-|= <op 2> ^|*|/ <constant> <real_number> | <integer_part> � � <real_number> <integer_part>. <fraction> <integer_part> <digit> | <integer_part> < digit> <fraction> <digit> | <digit> <fraction> <digit> 0|1|…. |9 10/17/2021
Contoh Begin A : = 1; B : = A + 2 END 14 10/17/2021
Diagram State � Digunakan untuk mendapatkan token, mempermudah melakukan analisis lexical � Token adalah simbol terminal dari teori bahasa dan automata 15 10/17/2021
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 MINUS 16 + huruf ID Huruf, Digit S Digit Blank INT Digit 10/17/2021
Notasi BNF (Backus-Nour Form) � Aturan Produksi bisa dinyatakan dengan notasi BNF � BNF menggunakan abstraksi untuk struktur syntax : : = sama identik dengan simbol | sama dengan atau <> pengapit simbol non terminal {} Pengulangan dari 0 sampai n kali Misalkan aturan produksi sbb: E T | T+E | T-E T a Notasi BNFnya adalah E : : = <T> | <T> + <E> | <T> - <E> T : : = a 17 10/17/2021
Diagram Syntax � Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis � Menggunakan simbol persegi panjang untuk non terminal � Lingkaran untuk simbol terminal Misalnya E T | T+E | T-E E T + 18 10/17/2021
Contoh: notasi BNF untuk memperoleh gambaran dari notasi block. <Block> : : = t_BEGIN <statement> { t_SEMICOL <statement>} t_END BEGIN Statement END ; Gambar : Diagram sintaks untuk notasi BNF 19 10/17/2021
Tugas Jelaskan kegunaan dalam pengembangan kompilator: 1. a. Tata bahasa bebas kontek b. Finite State Automata c. Diagram Sintaks d. Notasi BNF 2. Buatlah diagram keadaan /state untuk sebuah bahasa yang memiliki kumpulan token sbb: + - / * ** < <= > >= = <> integer identifier 3. Buatlah diagram sintaks untuk setiap notasi BNF berikut: <simple_exp> : : = <factor> {<arit_op> <factor> } | <sign> <factor> {<arit_op> <factor>} <sign>: : = + | <arit_op> : : = + | - | * | / <factor> : : = INTEGER | IDENTIFIER 20 10/17/2021
- Slides: 20