Pengantar Teknik Kompilasi Konsep dan Notasi Bahasa Bahasa

Pengantar Teknik Kompilasi Konsep dan Notasi Bahasa

Bahasa dan Sintaks �Bahasa: Si kucing kecil menendang bola besar The little cat kicks a big ball for i : = start to finish do A[i] : = B[i]*sin(i/pi*16)

Bahasa dan Sintaks �Dalam bahasa pemrograman, kalimat dikenal sebagai ekspresi, dan kata sebagai token �Kata terdiri atas beberapa karakter, kelompok karakter yang membentuk sebuah token dinamakan lexeme untuk token tersebut �Setiap token yang dihasilkan, disimpan dalam tabel simbol �Derivasi adalah sebuah proses dimana suatu himpunan produksi akan diturunkan/dipilah-pilah dengan melakukan sederetan produksi sehingga membentuk untai terminal

Bahasa dan Sintaks �Kalimat yang well formed selalu tersusun atas subjek yang diikuti predikat ◦ kalimat = subjek predikat �S =AB �A = “a” | “b” �B = “c” | “d” �L = {ac, ad, bc, bd}

Bahasa dan Sintaks �Tata bahasa (grammar) adalah sekumpulan dari himpunan variabel, simbol terminal, simbol nonterminal, simbol awal yang dibatasi oleh aturan produksi �Aturan produksi adalah pusat dari tata bahasa yang menspesifikasikan bagaimana suatu tata bahasa melakukan transformasi suatu string ke bentuk lainnya

Bahasa dan Sintaks �Sebuah produksi dapat dilambangkan sebagai , artinya: dalam sebuah derivasi dapat dilakukan penggantian simbol dengan simbol dalam produksi berbentuk disebut ruas kiri produksi sedangkan simbol disebut ruas kanan produksi �Simbol

Bahasa dan Sintaks �S A �A a | a. A �L = {a, aaa, aaaa, …} �Jika w adalah sebuah string maka panjang string dinyatakan sebagai w dan didefinisikan sebagai cacahan (banyaknya) simbol yang menyusun string tersebut, sebagai contoh, jika w = abcb maka w = 4 �String hampa adalah sebuah string dengan nol buah simbol, dinyatakan dengan simbol (atau ^) sehingga = 0

Bahasa dan Sintaks <program> 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

Bahasa dan Sintaks BEGIN A : = 1; B : = A + 2 END

Hirarki Chomsky �Tahun 1956, Noam Chomsky melakukan penggolongan bahasa menjadi 4 tingkat �Tahun 1959, John Backus memperkenalkan notasi formal baru untuk sintaks bahasa yang lebih spesifik �Tahun 1960, Peter Naur merevisi sintaks Backus yang kemudian dikenal dengan BNF (Backus-Naur

Hirarki Chomsky �Grammar G didefinisikan sebagai pasangan 4 tupel: VN, VT, S, dan Q, dan dituliskan sebagai G(VN, VT, S, Q), dimana: ◦ VT: himpunan simbol-simbol terminal (atau himpunan token-token, atau alfabet) ◦ VN: himpunan simbol-simbol non terminal ◦ S V: simbol awal (atau simbol start) ◦ Q: himpunan produksi

Hirarki Chomsky �Tipe 0 ◦ Juga dikenal dengan Unrestricted Grammar ◦ , (VT VN)*, > 0 ◦ Tidak ada batasan pada aturan produksi �Abc d. E

Hirarki Chomsky �Tipe 1 ◦ Juga dikenal dengan Context Sensitive Grammar ◦ , (VT VN)*, 0 < ◦ Panjang string ruas kiri harus lebih kecil atau sama dengan ruas kanan �Ab De. F �CD e. F

Hirarki Chomsky �Tipe 2 ◦ Juga dikenal dengan Context Free Grammar ◦ V, (VT VN)* ◦ Ruas kiri haruslah tepat satu simbol variabel �B CDe. Fg �D Bc. De

Hirarki Chomsky �Tipe ◦ ◦ 3 Juga dikenal dengan Regular Grammar V, {VT, VTVN} atau V, {VT, VNVT} Ruas kanan hanya memiliki maksimal 1 simbol non terminal �A efg. H �B De

Hirarki Chomsky Unrestricted Context Sensitive Context free Regular

Hirarki Chomsky Grammar Mesin Pengenal Bahasa/Otomata Tipe 0 Mesin Turing Tipe 1 Linear Bounded Automata (LBA) Tipe 2 Push Down Automata (PDA) Tipe 3 Finite State Automata (FSA); mencakup Deterministic Finite Automata (DFA) dan Nondeterministic Finite Automata (NFA)

Hirarki Chomsky �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

Notasi BNF �Aturan produksi dapat juga dinyatakan dengan notasi BNF �BNF menggunakan abstraksi untuk struktur sintaks ◦ ◦ : : = identik dengan simbol | sama dengan atau < > pengapit simbol non terminal { } pengulangan dari 0 sampai n kali

Notasi BNF T|T+E|T-E �T a �E menjadi �E : : = <T> | <T> + <E> | <T> - <E> �T : : = a

Diagram Sintaks �Alat bantu (tools) dalam pembuatan parser/analisis sintaksis �Persegi panjang untuk simbol non terminal �Lingkaran untuk simbol terminal E T + -

Diagram Sintaks <Block> : : = BEGIN <statement> {SEMICOL <statement>} END BEGIN Statement ; END
- Slides: 22