Transcript File

1
Teori Bahasa dan Otomata 1
2
Pendahuluan (1/3)
• Ilmu komputer memiliki dua komponen utama :
▫ Model dan gagasan mendasar mengenai komputer
▫ Teknik rekayasa untuk perancangan sistem komputer meliputi hardware
dan software.
• Teori bahasa & otomata termasuk dalam bagian pertama yang diterapkan
pada perancangan digital, pembuatan bahasa pemograman, dan
kompilator.
• Teori otomata mempelajari model mesin komputer menggunakan model
matematika.
3
Pendahuluan (2/3)
• Teori otomata merupakan kajian mengenai perangkat komputasi abstrak,
atau bisa dikatakan ‘’mesin abstrak’’
• Otomata adalah mesin abstrak yang dapat mengenali (recognize),
menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam
bahasa tertentu
• Pada awalnya otomata ditujukan untuk memodelkan fungsi otak, tetapi
secara ekstrim tujuan tersebut akhirnya berubah untuk berbagai keperluan
lainnya.
• Pada tahun 1950-an, pakar bahasa N. Chomsky mulai mempelajari studi
tentang tata bahasa formal (formal grammar). Secara langsung tata bahasa
tersebut tidak terkait dengan mesin, tetapi memiliki hubungan erat dengan
otomata abstrak dan saat ini menjadi dasar bagi sejumlah komponen
perangkat lunak, termasuk bagian-bagian dari kompiler.
4
Pendahuluan (3/3)
• Grammar memiliki manfaat sangat besar di ilmu informatika/komputer
untuk mendeskripsikan dan mendefinisikan sintaks bahasa pemrograman
dan bahasa-bahasa formal yang lain.
• Grammar diterapkan pada perancangan kompilator dan bidang-bidang
lain dalam ilmu komputer.
5
Beberapa Pengertian Dasar
• Simbol adalah sebuah entitas abstrak. Sebuah huruf atau angka adalah
contoh simbol.
• String/untai/ adalah deretan terbatas (finite) simbol-simbol
▫ Ex : jika a,b,c adalah simbol, maka abcb adalah string yang dibangun
dari ketiga simbol tersebut.
• Jika w adalah sebuah string, maka panjang string dinyatakan sebagai |w|,
yang didefinisikan sebagai banyak simbol yang menyusun string tersebut.
▫ Ex : jika w = abcb maka |w| = 4
• String hampa adalah sebuah string dengan nol buah simbol. String
hampa dinyatakan dengan simbol ε atau ^ sehingga | ε | = 0
• Bahasa (language) adalah kumpulan dari untai-untai atau string
6
Konsep Dasar (1/4)
Si Kucing Kecil Menendang Bola Besar
7
doktafia
10-Mar-2012
Konsep Dasar (2/4)
• Pohon sintaks dapat dituliskan dalam bentuk sebuah produksi :
1. <Kalimat>  <Subjek><Predikat>
2. <Subjek>  <Kata Sandang><Kata Benda><Kata Keadaan>
3. <Predikat>  <Kata Kerja><Objek>
4. <Objek>  <Kata Benda><Kata Keadaan>
5. <Kata Sandang>  Si
6. <Kata Benda>  Kucing | Bola
7. <Kata Keadaan>  Kecil | Besar
8. <Kata Kerja>  Menendang
• Untai terminal dapat dibentuk dengan melakukan sederetan produksi
menggunakan produksi yang ada. Proses ini disebut dengan Derivasi.
8
Konsep Dasar (3/4)
doktafia
10-Mar-2012
Si Kucing Kecil Menendang Bola Besar
Derivasi untuk untai di atas adalah :
<Kalimat>  <Subjek><Predikat>
 <Kata Sandang><Kata Benda><Kata Keadaan><Predikat>
 <Kata Sandang><Kata Benda><Kata Keadaan><Kata Kerja>
<Objek>
 <Kata Sandang><Kata Benda><Kata Keadaan><Kata Kerja>
<Kata Benda><Kata Keadaan>
 Si Kucing Kecil Menendang Bola Besar
Untai lain yang bisa terbentuk :
Si Bola Kecil Menendang Kucing Besar
Si Kucing Besar Menendang Bola Kecil, dll.
9
Konsep Dasar (4/4)
Contoh berikut adalah contoh bagaimana membangun operand yang absah
dalam suatu bahasa pemograman. Kita definisikan himpunan 8 produksi
dengan simbol Start adalah <OPERAND> sebagai berikut :
1.
2.
3.
4.
5.
6.
7.
8.
<OPERAND>  <ID> | <INTEGER>
<ID>  <LETTER><LIST>
<LETTER>  x | y | z
<LIST>  <LETTER><LIST> | <DIGIT><LIST> | ^
<DIGIT>  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<INTEGER>  <SIGN><DIGIT><DIT>
<SIGN>  + | <DIT>  <DIGIT><DIT> | ^
Derivasinya
<OPERAND>  <ID>
 <LETTER><LIST>
 y <LIST>
 y <DIGIT><LIST>
 y7 <LIST>
 y7^ atau y7
10
Latihan
• Apakah untai terminal berikut absah sebagai operand bahasa pemograman,
kalau absah tentukan derivasinya
▫ 4xy2
▫ x2y
▫ -21x
▫ xxb
▫ +1230
▫ x123
▫ x-y+2
▫ x1x2x3x
▫ xxxyyy