Teknik Kompilasi 1

Oleh Robert Hutabarat

132,3 KB 6 tayangan 1 unduhan
 


Bagikan artikel

Transkrip Teknik Kompilasi 1

TEKNIK KOMPILASI Konsep dan Notasi Bahasa Hirarki Chomsky  Diagram Keadaan  Notasi BNF  Diagram Sintaks  Hirarki Chomsky   Tata bahasa (grammar) bisa didefenisikan secara formal sebagai kumpulan dari himpunan - himpunan variabel, simbol-simbol terminal, simbol awal, yang dibatasi oleh aturan- aturan produksi. Pada tahun 1959 seorang ahli bernama Noam Chomsky melakukan penggolangan tingkatan bahasa menjadi empat, yang disebut dengan Hirarki Chomsky. Penggolangan tersebut dapat dilihat pada tabel berikut. Hirarki Chomsky Bahasa Regular/ Tipe 3 Mesin Otomatis Batasan Atasan Produksi Finite State Automata (FSA) meliputi Deterministic Finite Automata (DFA) & Nondeterministic Finite Automata (NFA) α adalah sebuah simbol variabel β maksimal memiliki sebuah simbol variabel yang bila ada terletak di posisi paling kanan. Bebas Konteks/ Push Down Automata Context Free/ Tipe 2 Context Sensitive/ Tipe 1 Linier Automata Unrestricted/ Phase Mesin Turing Stucture/ Natural Languange/ Tipe 0 α Berupa sebuah simbol variabel Bounded |α| < |β| Tidak ada batasan Hirarki Chomsky    Finite Stase Automata/ Finite Automata adalah model matematika dari sebuah sistem dengan input dan output diskrit, yang terdiri dari sejumlah berhingga state dan fungsi – fungsi yang menyajikan perubahan state. Deterministic Finite State Automata adalah finite state automata dimana setiap state ada satu fungsi transaksi untuk satu simbol input. Non Deterministik Finite State Automata adalah finite state automata yang memperbolehkan 0,1 atau lebih busur berlabel satu simbol input yang sama. Hirarki Chomsky    Disini semua aturan produksi dinyatakan dalam bentuk “a  b” (dibaca: a menghasilkan b, atau a menurunkan b) dimana simbol a pada ruas kiri menyataka aturan produksi, sedangkan simbol b pada ruas kanan menyatakan hasil produksi. Simbol-simbol tersebut bisa berupa simbol terminal atau sismbol non-terminal/ variabel. Simbol non-terminal/ variable adalah simbol yang masih dapat diturunkan. Sedangkan simbol terminal adalah simbol yang tidak dapat diturunkan lagi. Biasanya simbol non-terminal dinyatakan dengan huruf kapital sedangkan simbol terminal dinyatakan dengan huruf kecil. Hirarki Chomsky   Contoh produksi : Ta Dibaca: T menghasilkan a E  T | T+E Dibaca: E menghasilkan T atau E menghasilkan T+E Simbol ‘|’ menyatakan ‘atau’ biasa digunakan untuk mempersingkat penulisan aturan produksi yang mempunyai ruas kiri yang sama. Contoh ET E T+E dapat disingkat menjadi E T|T+E Hirarki Chomsky   Bahasa manusia termasuk kedalam grammer (tata bahasa) Tipe 0/ Unrestricted, dimana tidak ada batasan pada aturan produksinya. Misalkan saja : Abc De Pada bahasa Context Sensitive, Panjang string pada ruas kiri < panjang ruas kanan (|α < |β|). Contoh aturan produksi yang Context Sensitive : Ab  Def CD  eF Hirarki Chomsky   Perhatikan aturan produksi seperti : S€ Diketahui |S|=1, sedangkan |€| = 0, menurut aturan Context Sensitive aturan produksi itu tidak diperkenalkan, tetapi di sini kita buat suatu pengecualian, sehingga S€ dianggap memenuhi Context Sensitive grammar. Pada bahasa bebas konteks, batasan bertambah lagi dengan ruas kiri haruslah tepat satu simbol variabel. Misanya: BCDeFg DBcDe Hirarki Chomsky   Bahasa bebass konteks menjadi dasar dalam pembentukan suatu parser/ proses analisis sintaksis. Bagian sintaks dalam suatu kompilator kebanyakan didefenisikan dalam tata bahasa bebas konteks, yang dideskripsikan secara formal dengan notasi BNF (Backus Naur Form atau Backus Normal Form). Pada bahasa regular batasannya bertambah dengan ruas kanan maksimal memiliki sebuah simbol variabel yang terletak dipaling kanan. Artinya bisa sebuah simbol terminal saja dalam jumlah tidak dibatasi, tetapi bila terdapat simbol variabel, maka simbol variabel hanya berjumlah 1 dan terletak diposisi paling kanan. Hirarki Chomsky   1. Misalnya: A e Aefg AefgH CD Ada beberapa hal yang harus diperhatikan dalam pembuatan aturan produksi dan tidak boleh dilakukan: €  Aabd bukan aturan produksi yang legal, karena simbol € tidak boleh berada pada ruas kiri. Hirarki Chomsky 2. Aturan produksi yang ruas kirinya hanya memuat simbol terminal saja, seperti : a bd ab bd Bukan aturan produksi yang legal (untuk untestricted grammar sekalipun), karena ruas kiri harus juga memuat simbol yang bisa diturunkan, sementara contoh diatas ruas kiri hanya terdiri dari simbol terminal saja padahal sasuai defenisinya simbol terminal sudah tidak bisa diturunkan lagi. Berbeda seperti dengan aturan produksi yang benar seperti: Aa  bd Diagram Keadaan  Diagram keadaan (State Transition Diagram) digunakan untuk mendapatkan token (token adalah simbol terminal pada teori bahasa ), yaitu melakukan analisis leksikal terhadap program sumber. contoh : Suatu bahasa memiliki himpunan simbol terminal/ token sebagai berikut : t_PLUS, t_MIN, t_ID, t_INT. Token t_ID bisa berupa nama atau keyword (kata kunci yang sudah didefenisikan oleh suatu bahasa). Misal terdapat pada statment : Var jumlah : integer Diagram Keadaan  Maka VAR dan integer adalah keyword, jumlah adalah sebuah nama yang dideklarassikan sendiri oleh program. Token t_ID harus diawali dengan karakter huruf (AZ, a-z) dan bisa diikuti digit (0-9) atau huruf. Token t_INT harus diawali dengan digit dan bisa diikuti dengan digit. Blank merupakan bagian program sumber yang diabaikan saja, misalkan spasi kosong. Diagram Keadaan Blank Huruf, digit Huruf S t_ID Digit Digit + - t_INT t_MIN t_PLUS Notasi BNF  Notasi BNF( Backus Naur Form/ Backus Normal Form) merupakan notassi yang biasa digunakan untuk mendeskripsikan sintaks suatu bahasa. Aturan-aturan produksi dapat dinyatakan dalam bentuk BNF. Notasi BNF telah banyak dipakai untuk melakukan defenisi formal bahasa pemrograman. Beberapa simbol yang dipakai dalam notassi BNF. Notasi BNF Simbol Keterangan ::= Identik dengan simbol  pada antara produksi | <> {} Item dengan simbol serupa pada aturan produksi Mengapit simbol variabel/ non terminal Pengulangan 0 sampai n kali Notasi BNF  Contoh : Terdapat aturan produksi : ET|T+E|T-E,Tα Notassi BNF E ::= |+|-,T ::= α Diagram Sintaks  1. 2. Diagram sintaks merupakan alat bantu dalam pembentukan parser/ analisis sintaks. Notasi yang terdapat pada diagram sintaks : Persegi panjang melambangkan simbol variabel/ non terminal. Lingkaran melambangkan simbol terminal Contoh 1: T T F*T|F/T|F F Gambar Diagram Sintaks Contoh 1 * / Diagram Sintaks Contoh 2: Biasanya diagram sintaks digunakan untuk memperoleh gambaran dari suatu notasi BNF. Misalkan notasi BNF untuk Block : ::= t+BEGIN {t_SEMICOL}t_END Begin Statement End ; Gambar : Diagram Sintaks Sontoh 2

Judul: Teknik Kompilasi 1

Oleh: Robert Hutabarat


Ikuti kami