TATA BAHASA GRAMMAR Pertemuan Kedua Bahasa pemrograman harus
TATA BAHASA (GRAMMAR) Pertemuan Kedua
Bahasa pemrograman harus didefinisikan secara tepat. Untuk bahasa pemrograman yang mula sekali diciptakan, adanya kompilator (compiler) yang khusus, akhirnya membentuk definisi yang tepat dari bahasa itu. Spesifikasi yang layak dari bahasa pemrograman meliputi pendefinisian berkut : 1. Himpunan simbol atau karakter yang dapat digunakan untuk menyususn program yang benar. 2. Himpunan dari semua pernyataan yang secara sintaks benar 3. Arti dari keseluruhan program yang secara sintaks benar
Suatu bahasa L kita definisikan sebagai suatu himpunan dari untai atau kalimat atas sebuah alphabet hingga VT, oleh karenanya L adalah subhimpunan dari VT* (termasuk untai hampa). Bahasa dapat merupakan himpunan hingga atau tak hingga dari kalimat. Bahasa hingga dapat disajikan dengan menyebut anggotanya satu persatu namun untuk bahasa tak hingga tidak mungkin. Meskipun demikian kita selalu dapat menyatakan suatu bahasa secara hingga.
Ada 2 metode yang akan kita gunakan untuk menyatakan bahasa hingga, yaitu : 1. Tata bahasa (Grammar) Grammar terdiri dari himpunan hingga yang tak hampa dari aturan atau produksi, yang menspesifikasi sintaks dari bahasa, yang berarti juga menentukan kalimat dalam bahasa. Studi tentang Grammar disebut Teori bahasa formal, yang merupakan salah satu subbidang yang penting dalam ilmu komputer yang ditekuni oleh Naom Chomsky pada tahun 1950 -an. 2. Konsep Mesin Abstrak Mesin abstark yang disebut penerima atau acceptor akan menentukan apakah suatu untau (kalimat atau kata) termasuk bagian dari bahasa yang dimaksud.
Definisi Grammar Secara Formal Grammar didefinisikan terdiri dari 4 tupel G = (VN, VT, S, Q) Dimana VN : himpunan simbol nonterminal, biasanya digunakan huruf capital VT : himpunan simbol terminal, biasanya digunakan huruf kecil S : Simbol start, yang merupakan salah satu anggota VN Q : himpunan produksi, yang merupakan subhimpunan yang tidak kosong dari relasi (VT U VN)* ke (VT U VN)*. atau secara umum, sebuah elemen (α, β) dari Q ditulis sebagai : α→β
Sebagai contoh dalam mendefinisikan Identifier, kita dapat menulis Grammar berikut : G = (VN, VT, S, Q) Dengan VN = {I, L, D} VT = {a, b, c, d, …. , y, z, 0, 1, 2, …. 9} S =I Q = { I → L, I → ID, L → a, … L → z, I → 0, I → 1, …I → 9)
Dengan Grammar G diatas kita dapat membentuk derivasi untuk untai a 13 : I → IDD → LDD → a 13
Bentuk Backus-Naur / Backus-Naur Form (BNF) BNF adalah cara lain menuliskan himpunan produksi Grammar, yaitu dengan menggunakan simbol < dan > untuk mengapit kelas sintak atau nonterminal, menggunakan simbol : = menggantikan → dan simbol │untuk menyatakan atau. Dari Grammar diatas himpunan produksinya jika ditulis dalam BNF adalah : <identifier> : = <letter> │ <identifier><leter> │ <identifier><digit> <letter> : = a│b│c│…. │z <digit> : = 0│1│…│9
Klasifikasi Grammar menurut Chomsky Naom Chomsky mengklasifikasi Grammar berdasarkan pembatasan pada himpunan produksi Grammar menjadi 4, yaitu : 1. Grammar tipe ke-nol adalah Grammar yang memeiliki aturan produksi yang tidak terbatas
2. Grammar Context sensitive adalah Grammar yang memliki pembatasan produksi yang didefinisikan sebagai berikut : Produksi berbentuk α→β, dengan │α│ <= │β│dimana │α│ : panjang untai α │β│ : panjang untai β Contoh : Bahasa L(G 2) = { anbncn │n >= 1} adalah Context Sensitive yang dibentuk oleh Grammar G 2 = ({S, B, C}, {a, b, c}. S, Q} dengan anggota Q adalah: S → a. SBC, S → ab. C, b. B → bb, BC → bc, C → BC, c. C → cc, C c Untuk untai aabbcc akan diperoleh derivasi sbb: S → a. SBC → aab. CBC → aab. BCC → aabbcc
3. Grammar Context Free adalah Grammar dengan pembatasan produksi sbb: Produksi berbentuk α→β, dengan │α│ <= │β│ α anggota VN Ini berarti bahwa Grammar Context Free seluruh produksinya bersifat bahwa ruas kiri hanya terdiri dari 1 simbol nonterminal Contoh : Bahasa L(G 3) = { anban │n >= 1} adalah Context Free yang dibentuk dari Grammar G 3 = ({S, C}, {a, b}, S, Q) dengan anggota Q adalah : S → a. Ca, C → b Untuk untai a 3 ba 3 atau aaabaaa akan terbentuk derivasi sbb: S → a. Ca → aa. Caa → aaa. Caaa → aaabaaa
4. Grammar regular adalah Grammar dengan pembatasan produksi sbb: Produksi berbentuk α→β, dengan │α│ <= │β│ α anggota VN β memiliki bentuk a. B atau a, dengan a anggota VT da B anggota VN Contoh : Bahasa L(G 4) = {anbam │n, m >= 1} adalah bahasa regular yang dibentuk oleh Grammar G 4 = ({S, A, B, C}, {a, b}, S. Q) dengan amggota Q adalah: S → a. S, S → a. B, B → b. C, C → a Untuk untai a 3 ba 2 atau aaabaa akan terbentuk derivasi sbb: S → aaa. B → aaab. C → aaabaa
Hubungan Antar Grammar Jika Grammar tipe ke-nol, ke-satu, kedua dan ke-tiga disebut sebagai T 0, T 1, T 2, dan T 3, dan kumpulan bahasa dari tiap tipe disebut sebagai L(T 0), L(T 1), L(T 2) dan L(T 3) maka dapat dibentuk hubungan : L(T 3) C L(T 2) C L(T 1) C L(T 0)
- Slides: 13