Reading Report PENGGOLONGAN BAHASA MENURUT HIRARKI CHOMSKY
Noam Chomsky mengelompokkan bahasa menjadi 4 (empat) tingkatan. Yaitu, bahasa unrestricted / Natural, bahasa Context Sensitive, bahasa bebas konteks (Context Free), dan bahasa regular. Penggolongan tersebut bisa dilihat dari tabel dibawah ini : Bahasa
Regular / Tipe 3
Bebas Konteks / Context Free / Tipe 2 Context Sensitive / Tipe 1 Unrestricted / Phase Structure / Natural Language / Tipe 0
Mesin Otomata Finite State Autom utomat ataa (FS (FSA) A)
Push Push Down Down Aut Autom omat ataa (PD (PDA) A) Linear Bounded Automata (LBA) Mesin Turing
Batasan Aturan Produksi
α adal adalah ah sebu sebuah ah simbo imboll variabel β berisi terminal dan variabel, maksimal memiliki sebuah simbol variabel, yang bila ada terletak di posisi paling kanan α beru berupa pa simb simbol ol vari variab abel el |α| ≤ |β| Tidak ada batasan
Tabel diatas merupakan keterangan mengenai setiap bahasa, mulai dari bahasa tipe 3 sampai kepada bahasa tipe 0. Berikut ini akan dijelaskan dengan lengkap mengenai masingmasing bahasa mulai dari tipe 3 sampai tipe 0 , contoh, mesin otomatanya, serta aplikasi-aplikasi yang mungkin dari masing-masing mesin otomata ini. 1.
Baha Bahasa sa Reg Regular ular (Tip (Tipee 3) 3)
Bahasa Bahasa regula regularr merupak merupakan an tata tata bahasa bahasa yan yangg paling paling terbat terbatas, as, yaitu yaitu memili memiliki ki aturan aturan produk produksi si yan yangg paling paling banyak banyak membat membatasi asi bahasa bahasa terseb tersebut. ut. Bahasa Bahasa regula regularr ini sendir sendirii mempunyai aturan produksi dimana α adalah simbol variabel dan β berupa simbol terminal dan variabel, tetapi simbol variabelnya variabelnya hanya boleh sebuah saja dan berada di ujung kanan sementara simbol terminal ada di bagian kiri dari variabel tersebut. Contoh bahasa regular : A → abcB Pada contoh ini, aturan produksi diatas merupakan bahasa regular karena terdiri atas terminal dan variabel, variabelnya hanya satu dan berada di paling kanan. Masing-masing bahasa direpresentasikan oleh satu mesin otomata. Seperti bahasa regular ini, juga direpresentasikan oleh mesin Finite State Automata . Finite State Automata (FSA) Finite State Automata merupakan mesin automata yang merupakan model matematika dari suatu sistem yang menerima input dan output diskrit. Mesin ini memiliki state- state state berhingga yang dapat berpindah-pindah dari satu state ke state yang lain berdasarkan inputnya. Perubahan state ini dinyatakan oleh fungsi transisi. 1.1
Finite state ini sendiri dinyatakan oleh 5 tupel : Q = himpunan state ∑ = himpunan simbol input δ = fungsi transisi S = state awal F = himpunan state akhir Contoh mesin FSA sederhana :
Gambar 1.1 Mesin FSA pencek pariti ganjil Finite state automata terdiri atas 2 jenis, yakni Deterministic Finite Automata (DFA) dan Non-Deterministic Finite Automata . Berikut penjelasannya : 1.1.1 Deterministic Finite Automata (DFA) Secara umum, deterministic finite automata merupakan FSA pada umumnya. Dia sama dengan FSA biasa. Deterministic Finite Automata mempunyai ciri-ciri yaitu untuk setiap simbol input, suatu state hanya akan berpindah ke tepat satu state berikutnya, tidak kurang ataupun lebih. Sebagai contoh :
Gambar 1.2 Mesin DFA Finite Automata 1.1.2 Non-Deterministic Finite Automata
(NFA)
Berbeda dengan DFA, Non-deterministic finite automata tidak hanya berpindah ke satu state untuk setiap simbol input, tetapi ciri-cirinya yaitu untuk setiap simbol input, suatu state dapat tidak ada busur yang keluar, atau bisa lebih dari satu state dimana tempat ia berpindah. Contohnya :
Gambar 1.3 Mesin NFA Aplikasi Finite State Automata Finite state automata merupakan mesin automata yang banyak digunakan dan banyak kita temui dalam kehidupan kita sehari-hari. Sebagai contoh, dalam mesin pengenal identifier , dan pada mesin pengecek alamat email. 1.2. 1.2.11 Mesi Mesinn pe peng ngen enal al ide ident ntif ifie ier r Padaa sebu Pad sebuah ah comp compililer er bahas bahasaa pemr pemrogr ogram aman an,, dala dalam m comp compililin ingg kita kita perlu perlu mengecek mengecek identifie identifiernya. rnya. Identifier atau atau yang yang dike dikenal nal seba sebaga gaii vari variab able le dan dan constanta dalam suatu bahasa pemograman tertentu dikatakan valid jika jika : tidak diawali angka atau special character tidak boleh mengandung spasi tidak boleh nama keyword atau fungsi boleh mengandung angka, underscore sesudah huruf panjang tidak boleh lebih dari 30 karakter 1.2
Mesin automata untuk mengecek identifier yang valid dapat digambarkan sebagai berikut :
Gambar 1.4 Mesin pengenal identifier Mesin pengecek alamat e-mail Padaa situ Pad situss-si situ tuss web web bias biasan anya ya terd terdap apat at page page-pa -page ge untuk untuk para para user user untu untukk melakukan sign up. Pada page ini biasanya ada space untuk memasukkan alamat e-mail kita kita.. Mesi Mesinn penge pengece cekk alam alamat at e-mail ini ini bany banyak ak terd terdap apat at di sini sini.. Dima Dimana na untu untukk memastikan bahwa alamat e-mail yang kita masukkan benar, maka digunakanlah mesin ini. E-mail sendiri memiliki format : 1.2.2
[email protected]
sehingga secara garis besar selalu memiliki pola sebagai berikut :
Diawa Diawali li karakte karakterr kemudi kemudian an satu satu atau atau lebih lebih huruf/a huruf/angka ngka,, diikut diikutii tanda tanda @ kemudian diikuti dengan satu atau lebih huruf/angka, dipisahkan oleh tanda titik, lalu diakhiri dengan satu atau lebih huruf/angka dan tidak di akhiri oleh titik.
Gambar 1.5 FSM pengecek alamat email 2.
Bahasa Bebas Konteks ( Context Free Grammar )
Bahasa bebas konteks merupakan suatu tata bahasa yakni tata bahasa tipe 2 dimana bahasa ini memiliki lebih sedikit restriction daripada tata bahasa regular. Tata bahasa tipe ini memiliki memiliki aturan aturan produksi α → β yaitu yaitu dengan batasan aturan aturan produksi dimana dimana α berupa simbol variabel. Tata bahasa ini tidak membatasi β. Contoh-contohnya yaitu : C →BedFG A → fgHeR Dilihat dari contoh-contoh diatas, dapat dilihat bahwa tata bahasa bebas konteks tidak membatasi apa yang ada di β. Sebuah tata bahasa bebas konteks adalah suatu cara yang menunjukkan bagaimana menghasilkan untai-untai dalam sebuah bahasa. Sama seperti yang yang sudah kita ketahui, pada saat penurunan suatu string, simbol-simbol variabel akan mewakili bagian-bagian yang belum terturunkan dari string tersebut. Bila pada tata bahasa regular, bagian yang belum terturunkan tersebut selalu terjadi pada suatu ujung, pada tata bahasa bebas konteks bisa terdapat lebih banyak bagian yang belum terturunkan terturunkan itu, dan bisa terjadi terjadi dimana saja. Bahasa bebas konteks konteks menjadi dasar dasar dalam pembent pembentukan ukan parser parser// proses proses analis analisis is sintak sintaksis sis.. Bagian Bagian sintak sintakss dalam dalam suatu suatu kompil kompilato ator r kebanyakan didefinisikan dalam tata bahasa bebas konteks. Seperti Finit mewaki kilili baha bahasa sa regul regular ar,, baha bahasa sa beba bebass kont kontek ekss Finitee State State Automat Automata a mewa direpresentasikan oleh mesin Push Down Automata. 2.1 Push Down Automata Push down automata memiliki perbedaan dibanding dengan finite state automata yang merupakan mesin bahasa regular. Pada push down automata, dia sudah ditambah dengan adanya stack(tumpukan) sehingga banyaknya tupel dari mesin ini bertambah. Berikut ini adalah 7 tupel dari push down automata : M = (Q, ∆,∑,Г,S,F,Z) dimana: Q = himpunan state
∑ = himpunan simbol input Г = simbol-simbol tumpukan/stack ∆ = fungsi transisi S = state awal F = himpunan state akhir Z = simbol awal tumpukan / top stack Dalam hal ini, push down automata bisa juga dikatakan sebagai finite state automata yang dilengkapi dengan stack. Dalam hal penggunaan push down automata, kita perlu menggunakan sebuah contoh. Misalnya ada sebuah PDA : Q = {q1,q2} ∑ = {a,b} Г = {A,B,Z} S = q1 Z=Z F = {q2} Dengan transisi pada PDA : -∆(q1,ε,Z) = {(q2,Z)} -∆(q1,a,Z) = {(q1,AZ)} -∆(q1,b,Z) = {(q1,BZ)} -∆(q1,a,A) = {(q1,AA)} -∆(q1,b,A) = {(q1,ε)} -∆(q1,a,B) = {(q1,ε)} -∆(q1,b,B) = {(q1,BB)} Baga Bagaim iman anaa cara cara memb membac acaa fung fungsi si transisi tersebut, yakni: Misalnya ∆(q1,a,Z) = {(q1, AZ)} Cara membacanya seperti berikut :
Denga Dengann meng menggun gunak akan an cont contoh oh kita kita bisa tahu bagaimana penggunaan Push Down Down Auto Automa mata ta.. Misa Misaln lnya ya kita kita ingi inginn mengetahui apakah string ‘abba’ diterima oleh PDA ini. 1.
Z 2. membaca input ‘a’ Fung Fu ngsi si trans ransiisiny sinyaa : ∆(q1,a,Z) = {(q1,AZ)} State q1 push A A Z
State State q1 dan top-stack Z membaca input ‘a’
Z Konfigurasinya menjadi : State q1 , , push A ke stack, A menjadi top stack
A Z
Simbol awal dalam stack Z
membaca input ‘b’ Fung Fu ngsi si trans ransiisiny sinyaa : ∆(q ∆(q1,b,A b,A) = {(q1,ε)} State q1 top di pop 3.
Z
4. membaca input ‘b’ Fung Fu ngsi si tran transi sisi siny nyaa : ∆(q ∆(q1,b,Z) = {(q1,BZ)} State q1 push B
6. selesai membaca input fung fungssi trans ransiisiny sinyaa : ∆(q1,ε,Z) = {(q2,Z)} konfigurasi mesin menjadi state : q2 q2 adalah final state maka string ‘abba’ dapat diterima oleh mesin PDA di atas.
B Z 5. membaca input ‘a’ fung fungssi trans ansisin isinyya : ∆(q ∆(q1,a,B) = {(q1,ε)} state q1, top di pop Z
Aplikasi Context Free Grammar Contoh aplikasi dari Context Free Grammar adalah dalam parsing pada compilator. Dalam bagian parsing biasanya digunakan tata bahasa bebas konteks. Context free grammar dapat diaplikasikan dalam parsing / penurunan dalam derivation tree. Kita Kita bisa bisa member memberii contoh contoh pengapl pengaplika ikasia siannya nnya.. Misaln Misalnya ya terdap terdapat at tata tata bahasa bahasa bebas bebas konteks dengan aturan produksi (simbol awal S) : S → AB A → aA | a B → bB | b Akan kita gambarkan pohon penurunan untuk memperoleh untai : ‘aabbb’. Pada pohon tersebut simbol awal akan menjadi akar (root ).). Setiap kali penurunan dipilih aturan produksi yang yang menuj menujuu ke solu solusi si.. Simb Simbol ol-s -sim imbol bol vari variab abel el akan akan memj memjad adii simp simpul ul-s -sim impul pul yang yang mempuny mempunyai ai anak. anak. Simpul Simpul-si -simpu mpull yan yangg tidak tidak mempun mempunyai yai anak anak akan akan menhadi menhadi simbol simbol terminal. Kalau kita baca simbol terminal yang ada pada gambar 2.1 dari kiri ke kanan akan diperoleh untai ‘aabbb’. 2.2
S A a
B A a
b
B b
Gambar 2.1 Pohon penurunan untuk untai ‘aabbb’
3.
Bahasa Context Sensitive
Tata bahasa tipe berikutnya yakni tata bahasa context sensitive atau tipe 1. Tata bahasa ini merupakan tata bahasa yang memiliki aturan produksi yang tidak begitu terbatas, terbatas, yakni hanya masalah panjangnya dimana |α| ≤ |β|. Dengan begitu, yang perlu diperhatikan hanyalah panjang dari α harus sama atau kurang dari panjang β. Sehingga, bisa kita beri contoh tata bahasa context sensitive : Aaac → bBcd aaCD → ddCCA Linear Bounded Tata Tata bahasa bahasa tipe tipe ini dapat dapat direpr direprese esenta ntasik sikan an oleh oleh mesin mesin otomat otomataa Linear Automata . 3.1 Linear Bounded Au Automata Linear bounded automata (LBA) adalah mesin deterministic yang berdasar pada state, sebuah tape yang berisi input string, dan sebuah read/write head yang bergerak ke kiri dan ke kanan di sekitar tape. Mesin ini membandingkan state saat ini dan simbol pada tape pada posisi head dengan jumlah aturan yang terbatas untuk menentukan state berikutnya, simbol mana yang akan ditulis pada tape, dan ke arah mana head akan bergerak. Sama seperti finite automata dan pushdown automata, linear bounded automata menerima atau menolak sebuah input berdasarkan apakah mereka berhenti pada state yang diterima atau tidak. Sebuah LBA berhenti ketika tidak ada aturan untuk kombinasi saat itu dari state yang sementara dibaca. Linear bounded automata memiliki kemiripan dengan mesin Turing dimana sama-sama menggunakan tape, tetapi pada p ada mesin ini adalah finite yakni terbatas. Linear bounded automata terdiri atas 8 tuples : Q = himpunan states ∑ = himpunan simbol input Г = simbol dalam pita ├ = left endmaker (kiri) ┤= right endmaker (kanan) δ = fungsi transisi S = state awal F = himpunan state akhir 3 .2
Aplikasi
Context Context sensitive sensitive language language,
begitu juga dengan linear linear bounded automata merupakan suatu Tata bahasa dan mesin otomata yang sangat berperan dalam persoalan ilmu komputer. Banyak aplikasi yang dapat kita temui menggunakan tata bahasa context sensitive maupun mesin linear bouded automata. Yang bisa kita lihat yakni pada operasi dalam permutasi. Tata bahasa context sensitive bisa menerangkannya. menerangkannya. Berdasarkan Berdasarkan hal itu, maka tata bahasa context context sensitive sensitive dapat mengaplikasikan operasi yang berhubungan dengan matematika seperti permutasi. 4.
Bahasa Natural / Unrestricted
Tata bahasa yang terakhir, yakni tata bahasa tipe 0 yaitu tata bahasa unrestricted (tidak ada batasan). Tata bahasa ini, seperti namanya, merupakan tata bahasa yang tidak memiliki sama sekali batasan dalam aturan produksinya. Tata bahasa ini adalah sama dengan tata bahasa yang kita gunakan sehari-hari. Tata bahasa ini bisa berupa bahasa Inggris, bahasa
Indonesia, maupun bahasa lainnya. Karena tidak ada batasannya, maka tata bahasa ini adalah sangat rumit, karena aturan produksinya tidak tetap. Contoh tata bahasa unrestricted : Aabbc → aEdB aaaBC → BCaa Dalam merepresentasikan tata bahasa ini, maka digunakanlah Mesin Turing (Touring Machine). Mesin Turing Mesin Turing merupakan mesin yang merepresentasikan tata bahasa unrestricted . Mesin Turing ini bersifat umum dan memiliki kemampuan yang lebih tinggi dari finite finite state automata maupun push down automata dari segi aksi dan komponennya. Pada mesin Turing memo memori ri akan akan beru berupa pa suat suatuu pita pita yang yang pada pada dasa dasarn rnya ya beru berupa pa array (deretan) (deretan) sel-sel sel-sel penyimpanan. Setiap sel mampu menyimpan sebuah simbol tunggal. Mesin Turing bisa dianalogikan seperti komputer sederhana. Dengan sejumlah state sebagai memori, pita sebagai secondary storage, dan fungsi transisi sebagai program. Sebuah mesin Turing secara formal dinyatakan dalam 7 tupel, dimana : Q = himpunan state ∑ = kumpulan simbol input Г = simbol dalam pita (meliputi juga blank ) δ = fungsi transisi S = state awal F = himpunan state akhir b = simbol kosong (blank ),), bukan bagian dari ∑ Bagian pada pita yang belum ditulisi dianggap berisi simbol b. 4.1
Misalnya terdapat mesin Turing : Q = {q1, q2} ∑ = {a,b} Г = {a,b,b} F = {q2} S = {q1} Fungsi transisinya : δ(q1, a) = (q1, a, R) δ(q1, b) = (q1, a, R) δ(q1, b) = (q2, b, L) (pergerakan mesin Turing: R=right, L=left) 1)
Misalkan Misalkan pita yang akan dibaca : ‘abbaaa’ a state q1
b
b
a
a
Fungsi transisi δ(q1, a) = (q1, a, R) menyebabkan head ber berge gera rakk ke kanan. 2) a
b
b
a
a
state q1
fungsi transisi δ(q 1, b) = (q1, a, R) menyebabkan head menulis ‘a’ lalu bergerak ke kanan 3) a
a
b state q1
a
a
fungsi transisi δ(q 1, b) = (q1, a, R) menyebabkan head menulis ‘a’ lalu bergerak ke kanan.
4)
7) a
a
a
a
a
a
state q1
fungsi transisi δ(q1, a) = (q1, a, R) meny menyeb ebab abka kann head head berg berger erak ak ke kanan. 5) a
b
b
a
a
b
b
a
a
b
state q2 dari state
tidak ada transisi lagi q2, mesi mesinn Turi Turing ng akan akan berh berhen entiti (hal (haltt state) karena state q2 termasuk state akhir berarti input tersebut diterima
state q1
fungsi transisi δ(q1, a) = (q1, a, R) meny menyeb ebab abka kann head head berg berger erak ak ke kanan. 6) a
b
b
a
a
b
state q1
fungsi transisi δ(q1, b) = (q2, b, L) menyebabkan head bergerak ke kiri
4.2 Aplikasi Mesin Turing bisa dibilang adalah mesin automata yang paling mendekati sempurna. Mesin Turing Turing ini sendiri sendiri disebut-sebut disebut-sebut dapat mencapai mencapai kemampuan dari komputer digital. digital. Beberapa mesin Turing yang dikombinasikan dapat memecahkan masalah seperti pada komputer digital. Melalui dalil Turing, kita dapat melihat bahwa mesin Turing bisa saja digunakan untuk memecahkan masalah seperti pada komputer mekanis. Dalam hal ini, mesin Turing dapat diaplikasikan ke berbagai masalah di komputer.
DAFTAR PUSTAKA 1) 2) 3) 4)
Utdirartatmo,Firrar , 2001, Teori Bahasa dan Otomata, Yogyakarta, J&J Learning Hariyanto, Bambang, 2006, Teori Bahasa, Otomata, dan Komputasi serta Terapannya, Bandung, Informatika www.wikipedia.org www.search.google.com
PENGGOLONGAN BAHASA MENURUT HIRARKI CHOMSKY
TUGAS FINAL & READING REPORT
DISUSUN OLEH
Ulaen, Hendra, Ch.D 08520102
FAKULTAS ILMU KOMPUTER UNIVERSITAS KLABAT 2009