Bahasa Kompilasi

download Bahasa Kompilasi

of 44

  • date post

    07-Jun-2015
  • Category

    Documents

  • view

    3.360
  • download

    7

Embed Size (px)

Transcript of Bahasa Kompilasi

1 KONSEP BAHASA Pengampu : Idhawati Hestiningsih PENDAHULUAN Ilmu Komputer memiliki dua komponen utama : 1. Model dan gagasan mendasar mengenai komputer 2. Teknik rekayasa untuk perancangan sistem komputer meliputi perangkat keras (hardware) dan perangkat lunak (software) Teori bahasa & otomata termasuk dalam bagian pertama dari 2 komponen utama Ilmu Komputer diatas. Teori bahasa dan otomata diterapkan pada perancangan digital, pembuatan bahasa pemrograman, dan kompilator ABJAD, UNTAI (STRING), BAHASA Sebuah simbol adalah suatu entitas abstraks yang tidak kita definisikan secara formal Contoh : huruf dan digit adalah simbol yang dipakai Abjad (alphabet) adalah sebuah himpunan berhingga tak kosong dari simbol simbol Notasi : Contoh : - Abjad dalam bahasa Inggris terdiri dari 26 simbol : = {a,b,c,d, z} a , artinya a adalah sebuah simbol di dalam - = {1,2,3,4,5,6,7,8,9} a Jika 1 dan 2 adalah abjad-abjad maka 1 2, 1 2, dan 2 1 merupakan himpunan tidak kosong (abjad) Untai / string / kata adalah sebuah barisan berhingga simbol-simbol dari suatu abjad. Contoh : Diketahui abjad ={a,b} maka untai atau string yang bisa terjadi a, ab, aa, bb, aaa, bbb, aaab, dst Untai kosong adalah barisan yang kosong dari simbol-simbol, notasi = {} Bahasa (language) adalah suatu kumpulan dari untai-untai atau string, notasi = L Contoh : Diketahui : = {1,2,3,4,,5} Kumpulan {1,12,123,1234,12345,112} adalah sebuah bahasa berdasarkan abjad yang terdiri dari digit-digit itu. Diketahui : = {1} Kumpulan {1,11,111,1111, .} adalah sebuah bahasa Bahasa kosong (empty language) adalah sebuah bahasa yang tidak terdiri dari untai-untai. Bahasa kosong berbeda dengan bahasa yang terdiri dari string/untai kosong. Notasi = Jika merupakan sebuah abjad maka juga sebuah bahasa yang terdiri atas semua untai simbol tunggal. Misal adalah sebuah abjad dan w adalah suatu untai berdasarkan . Jika L adalah suatu bahasa yang terdiri dari beberapa untai berdasarkan dan jika w adalah sebuah untai di dalam L maka dapat ditulis : w L, artinya w adalah elemen dari L Contoh : 121 {1,12,121,1212,12121}

2

Bahasa universal (universal language) dari adalah bahasa yang terdiri dari semua untai berdasarkan suatu abjad . Notasi : * Contoh : = {1}, maka * = {,1,11,111,1111, } Untuk abjad apa saja, * bersifat tak berhingga karena abjad-abjadnya tidak kosong.

OPERASI OPERASI PADA UNTAI 1. Panjang (length) dari untai Notasi : |w| Contoh : = {1,2} w1 = 111 maka | w1| = 3 w2 = 121 maka | w2| = 3 w3 = 121212 maka |w3| = 6 2. Perangkaian (Concatenation) Jika w dan z adalah untai-untai, perangkaian w dan z adalah untai yang diperoleh dengan merekatkan untai z ke untai w Contoh : W = 112 dan z = 121212, maka perangkaian w dengan z adalah untai 112121212 w.z = wz = 112121212 w. = w = 112 3. Eksponensiasi (Exponentiation) Misalkan w merupakan sebuah untai atau kata, maka : , jika n = 0 w"= n -1 ww , jika n > 0

wo = w1 = 122 w2 = 122122 w3 = 122122122OPERASI OPERASI PADA BAHASA 1. Perangkaian (Concatenation) Misal A dan B merupakan bahasa-bahasa berdasarkan abjad. Perangkaian A dan B ditulis : A . B = {w.x | w A dan x B} Contoh : A = {cat,dog} dan B {house}, maka A . B = {cathouse, doghouse} A.() = () . A = A 2. Eksponensiasi (Exponentiation) Misalkan A merupakan suatu bahasa berdasarkan abjad :

, jika n = 0 A" = n-1 AA , jika n > 0 Contoh : Jika A = {ab} berdasarkan abjad Inggris tersebut didapatkan : Ao = {} A1 = A = {ab} A2 = A.A1 = {abab} A3 = A.A2 = {ababab}

33. Gabungan (Union) Misalkan A dan B adalah bahasa-bahasa berdasarkan suatu abjad , maka union dari A dan B (A B) terdiri dari semua kata yang muncul sekurang-kurangnya sekali dalam A dan B. A B = {x|x A atau x B} 4. Irisan (Intersection) Misalkan A dan B adalah bahasa-bahasa berdasarkan suatu abjad , maka intersection dari A dan B (A B) terdiri dari untai-untai yang muncul baik di A maupun di B sekaligus. A B = {x|x A dan x B}

Contoh : = {0,1} Bahasa-bahasa A = {,0,1,10,11} dan B = {,1,0110,11010}, maka A B = {,0,1,10,11,0110,11010} A B = {,1}5. Sub Bahasa Misalkan A dan B adalah bahasa-bahasa berdasarkan suatu abjad dan jika semua untai di A juga merupakan untai di B, maka A disebut sebuah sub bahasa dari B. Notasi A B

Contoh : Jika A = {a,aa,aaa} dan B = {a,aa,aaa,aaaa,aaaaa}, maka A B6. Equal (Sama) Dua buah bahasa A dan B dikatakan sama jika kedua bahasa tersebut secara persis mempunyai untai-untai yang sama, artinya jika sebagai himpunan-himpunan keduanya persis sama. Notasi : A = B 7. Star Closure dan Plus Closure Jika A adalah sebuah bahasa berdasarkan suatu abjad , didefinisikan : Star Closure dari A* :

A* =

n =0

U An U An

Plus Closure dari A+ :

A+ =

n =1

Contoh : Ao = {} A1 = {a} A2 = {a2}={aa} A2 = {a3}= {aaa} dan seterusnya Jadi

A* =

n =0

U An UA n

= A0 A1 A2 . = {} {a} {aa} = {, a, aa, } = A1 A2 A3 . = {a} {aa} {aaa} = {a, aa, aaa, }

A =

+

n =1

4II. OTOMATA

Suatu bentuk (model matematika) yang memiliki fungsi-fungsi daari komputer digital yaitu menerima input, menghasilkan output, bisa memiliki penyimpanan sementara dan mampu membuat keputusan dalam mentransformasikan input ke output. Otomata merupakan suatu sistem yang terdiri atas sejumlah berhingga state, dimana state menyatakan informasi mengenai input yang lalu, dan dapat pula dianggap sebagai memori mesin. Input pada mesin otomata dianggap sebagai bahasa yang harus dikenali oleh mesin. Selanjutnya mesin otomata membuat keputusan yang mengindikasikan apakah input ini diterima atau tidak, sehingga mesin otomata dapat dipakai untuk menghasilkan bahasa yang aturannya ditentukan oleh bahasa tersebut. Contoh : Sebuah mesin otomata sederhana

q0

a

q1

d

q2d

a u

q3

q4

q5

Bila mesin mendapat untai / string input : ada diterima adu diterima add ditolak Sebuah string input diterima bila mencapai state akhir(final state) yang digambarkan dengan lingkaran ganda Mesin diatas memiliki 6 state yaitu {q0,q1,q2,q3,q4,q5} State awal = q0 State akhir = {q3,q4} Himpunan untai input = {a,d,u}5 q5 5 q0 10 10 10 25 q25 5 10 5 q20 q10 5 q15

VENDING MACHINE

Misalkan Vending Machine akan mengeluarkan sebatang coklat yang berharga Rp. 25,Masukan dari mesin berupa himpunan uang logam (koin) yaitu {koin Rp. 5, koin Rp. 10,-, koin Rp. 25,-} Keluaran dari mesin yaitu suatu tanda bahwa sebatang coklat dikeluarkan dari vending machine jika masukan dapat diterima mesin yaitu uang sejumlah Rp. 25,Model mesin diatas dapat menerima sejumlah berhingga barisan-barisan seharga 25 yaitu {(25), (10,5,10), (10,10,5), (5,10,10), (10,5,5,5), (5,5,5,10), (5,5,5,5,5)}

5FINITE STATE AUTOMATA (FSA)

Finite State Automata (Otomata dengan state berhingga) merupakan suatu model matematika dari suatu sistem yang menerima input dan menghasilkan output Memiliki state yang banyaknya berhingga dan dapat berpindah-pindah dari suatu state ke state lain Perubahan state ini dinyatakan dengan fungsi transisi FSA tidak memiliki tempat penyimpanan sehingga kemampuan mengingatnya terbatas. Contoh : vending machine, pengecek pariti ganjil0 0

Even/ Genap

1

Odd/ Ganjil

Keterangan : - Lingkaran menyatakan state/kedudukan - Label pada lingkaran adalah nama state tersebut - Busur menyatakan transisi yaitu perpindahan kedudukan/state - Lingkaran didahului sebuah busur tanpa label menyatakan state awal - Lingkaran ganda menyatakan state akhir/final Secara formal FSA dinyatakan dengan 5 tupel atau M = (Q,,,S,F) dimana : Q = himpunan state/kedudukan = abjad,himpunan simbol input/masukan = fungsi transisi S = state awal / kedudukan awal, S Q F = himpunan state akhir, F Q Dari gambar diatas maka : Q = {Even, Odd} = {0,1} S = Even F = Odd = fungsi transisi (Even,0) = Even (Even,1) = Odd (Odd,0) = Odd (Odd,1) = Even Maka tabel fungsi transmisi pengecek pariti ganjil : Even Odd0 Even Odd 1 Odd Even

1

Karena mesin diatas merupakan pengecek pariti ganjil, maka himpunan state akhir yang menyatakan input diterima oleh mesin adalah {Odd} - Jika mesin mendapat input 1101 urutan state menjadi : Even 1 Odd 1 Even 0 Even 1 Odd, maka diterima oleh mesin 4. Jika mesin mendapat input 101 urutan state menjadi : Even 1 Odd 0 Odd 1 Even, maka ditolak oleh mesin FSA dibagi 2 yaitu : 1. DFA (Deterministic Finite Automata) = otomata berhingga yang pasti (tetap/tertentu) 2. NDFA (Non-Deterministic Finite Automata) = otomata berhingga yang tidak pasti

6DFA (DETERMINISTIC FINITE AUTOMATA) = dari suatu state ada tepat satu state berikutnya untuk setiap simbol masukan yang diterima

Mesin DFAa a b b a b q2

q0

q1

Konfigurasi DFA diatas secara formal dinyatakan : Q = {q0,q1,q2} = {a,b} S = q0 F = {q2} Fungsi transisi : (q0,a) = q0 (q0,b) = q1 (q1,a) = q1 (q1,b) = q2 (q2,a) = q1 (q2,b) = q2

q0 q1 q2

a q0 q1 q1

b q1 q2 q2

Keterangan : Untuk sebuah state dan input yang berlaku bisa ditentukan tepat satu state berikutnya. Suatu string x dinyatakan diterima bila (S,x) berada pad state akhir. Dengan kata lain secara formal bila M adalah sebuah bahasa FSA, M= (Q, , , S, F) menerima bahasa yang disebut L(M) yang merupakan himpunan {x | (S,x) di dalam F}. Contoh : Bila diinputkan string abb pada mesin tersebut maka : (q0,abb) = (q0,bb) = (q1,b) = q2 Karena q2 merupakan state terakhir maka abb berada dalam L(M) Bila diinputkan string baba pada mesin tersebut maka : (q0,baba) = (q1,aba) = (q1,ba) = (q2,a) = q1 Karena q1 tidak termasuk state terakhir maka baba tidak berada dalam L(M) Contoh soal : 1. Diberikan mesin DFA sebagai berikut :a q0 a,b b q1

Q = {q0,q1} = {a,b} S = q0 F = {q1} Buat tabel transisi dari mesin DFA diatas. Penyelesaian : q0 q