ptk

24

Click here to load reader

Upload: adjie-yusrikal

Post on 06-Aug-2015

37 views

Category:

Documents


3 download

DESCRIPTION

2db

TRANSCRIPT

Page 1: ptk

POKOK BAHASAN MINGGU I

TATA BAHASA (GRAMMAR) dan POHON DERIVASI

1. TATA BAHASA (GRAMMAR)

Bahasa merupakan himpunan kalimat (baik terhingga maupun tak

terhingga). Bahasa dapat disajikan dengan menyebut kalimatnya satu persatu. Untuk

bahasa tak hingga, penyebutan seperti itu tidak mungkin. Oleh karena itu diciptakan cara

penyajian yang mendeskripsikan bahasa secara efisien. Cara penyajian tersebut adalah

Tata Bahasa atau Grammar.

Sebuah Tata Bahasa (Grammar) didefinisikan sebagai 4 tupel :

G = (Vn, Vt, S, Q)

Vn dan Vt adalah simbol Non Terminal dan Simbol Terminal.

S adalah sebuah elemen anggota Vn yang disebut Simbol Start.

Q merupakan himpunan Produksi.

Chomsky mengelompokkan Grammar menjadi 4 kelompok :

1. Tipe nol : UnRestricted Grammar (Tata Bahasa Tidak Terbatasi)

Tata Bahasa UnRestricted yang tidak merupakan anggota dari klasifikasi lainnya ditandai

dengan aturan produksi yang bagian sebelah kirinya lebih panjang dari bagian sebelah

kanan. Aturan produksi yang mengandung simbol hampa (^) pasti merupakan Tata

Bahasa UnRestricted dan tidak termasuk klasifikasi lainnya.

2 Tipe satu : Context Sensitive Grammar (Tata Bahasa Tergantung Konteks)

Tata bahasa ini terdiri dari produksi berbentuk :

dengan

dimana adalah string dan adalah panjang string demikian juga adalah string

dan adalah panjang string . String adalah merupakan deretan simbol baik terminal

maupun non terminal.

Page 2: ptk

Contoh :G = ( {S, B, C}, {a, b, c}, S, Q )Dimana Q terdiri dari produksi berikut :

1. S aSBC abC

2. bB bb

3. BC bc

4. CB BC

5. CC cc

1. Tipe dua : Context Free Grammar ( Tata Bahasa Bebas konteks)

Tata bahasa ini terdiri dari produksi berbentuk :

dengan

dimana adalah anggota Vn sedangkan adalah string. Berarti Context Free Grammar

seluruh produksi ruas kirinya hanya terdiri dari satu simbol yaitu simbol non terminal.

Contoh :G = ( {S, C}, {a, b}, S, Q )Dimana Q terdiri dari produksi berikut :

1. S aSa

2. S aCa

3. C b

2. Tipe tiga : Regular Grammar

Tata bahasa ini terdiri dari produksi berbentuk :

dengan

dimana adalah anggota Vn dan mempunyai bentuk aB atau a dengan a anggota Vt dan

B anggota Vn.

Contoh :G = ( {S, A, B, C}, {a, b}, S, Q )Dimana Q terdiri dari produksi berikut :

1. S aS aB

2. B bC

3. C aC

Page 3: ptk

4. C a

Regular Grammar merupakan subset dari Context Free Grammar.

Context Free Grammar merupakan subset dari Context Sensitive Grammar.

Context Sensitive Grammar merupakan subset dari UnRestricted Grammar.

2. POHON DERIVASI

Pohon derivasi merupakan suatu untai terminal yang tersusun dalam bentuk tree yang merupakan suatu

himpunan produksi dengan cara melakukan sederetan produksi menggunakan produksi yang ada.

Pohon derivasi ini dapat diterapkan pada suatu ekspresi string ataupun pada ekspresi

aritmatika.

Pohon derivasi pada ekspresi string

Rumus :

<kalimat > <subyek> <predikat>

<subyek > <sandang> <benda> <keadaan>

<predikat > <kerja> <obyek>

<obyek> <benda> <keadaan>

Pohon derivasi pada ekspresi aritmatika

Ada beberapa ketentuan yang sering dipakai dalam suatu penyusunan pohon derivasi

untuk ekspresi aritmatika

Rumus :

<ekspresi> <ekspresi> <asop> <suku> <suku>

<suku> <suku> <mdop> <faktor> <faktor>

<faktor> ( <ekspresi> ) operand

<asop> + -

<mdop> * div

Contoh : Si adik kecil menendang bola besar.

Page 4: ptk

Bila disusun dalam suatu pohon derivasi maka ekspresi string berbentuk :

Bahasan :

<kalimat>

<subyek> <predikat>

<sandang> <benda> <keadaan> <kerja> <obyek>

Si adik kecil menendang <benda>

<keadaan>

bola besar

Contoh : ( x – y ) * 5

Bila disusun dalam suatu pohon derivasi maka ekspresi aritmatika berbentuk :

Page 5: ptk

Bahasan :

<ekspresi>

<suku>

<suku> <mdop> <faktor>

<faktor> * 5

<faktor>

( <ekspresi> )

<ekspresi> <adop> <suku>

<suku> + <faktor>

<faktor> y

x

Page 6: ptk

POKOK BAHASAN MINGGU II

MESIN TURING

Mesin Turing M atas alfabet terdiri atas :

1. Tape atau Pita yang terbentuk dari deretan sel. Tape mempunyai sel terkiri, tetapi

mempunyai tak hingga sel kanan. Setiap sel hanya bisa berisi satu simbol pita.

Simbol pita terdiri dari huruf dalam alfabet T, huruf pada alfabet V ( alfabet tambahan), serta simbol blank.

2. Tape Head atau Kepala Pita yang bergerak mengamati satu sel tape pada suatu

waktu. Head dapat bergerak. Pada setiap gerak, head mencetak sebuah simbol pada

sel yang diamati, menghaps apa yang telah tertulis sebelumnya pada sel itu, lalu

bergerak ke kiri atau ke kanan.

3. Sebuah program, merupakan digraph hingga. Ia merupakan sebuah finite control.

Simpul digraph merupakan Stata. Selalu terdapat Stata Awal yang disebut START

dan sebuah himpunan Stata Akhir (boleh hampa) yang disebut HALT.

Setiap arkus digraph berbentuk :

i j

Di sini a serta b dalam T V {blank} adalah simbol tape. Sedangkan arah dalam {L,

R}. Ini berarti : jika selama komputasi kita ada di Stata I, head mengamati simbol a, maka

kita menuju simbol j, sementara mencetak simbol b, kemudian bergerak satu sel ke kiri

atau ke kanan, tergantung apakah Arah = L (kiri) atau R (kanan).

Mula-mula string input w, ditempatkan di bagian paling kiri dari tape, sisa di bagian

kanan diisi simbol blank. Tape head menunuk pada sel paling kiri. Program bermula pada

Stata Start. Kalau tercapai Stata Halt, komputasi dihentikan, untai diterima mesin turing.

Apabila sampai pada simpul I terjadi situasi sebagai berikut :

(a, b, ARAH)

Page 7: ptk

Sedangkan simbol yang diamati bukan salah satu dari a1, a2, ….., an maka tidak ada

jalan untuk melanjutkan proses. Jika hal tersebut terjadi, maka proses dihentikan dan

string w ditolak oleh mesin.

Kasus lain penolakan w adalah pada saat tape head mengamati sel paling kiri,

ia diisntruksikan untuk bergerak ke kiri.

Contoh berikut adalah Mesin Turing atas alfabet T = {a, b} :

Mesin Turing dalam bentuk graf di atas dapat juga disajikan dalam bentuk diagram next state sebagai berikut :

Page 8: ptk

1 2 3 4 5 6

a A, 2, R A, 2, R A, 4, L A, 4, L xxxxx Xxxxx

b

A

xxxxx

xxxxx

B, 3, L

xxxxx

xxxxx

A, 5, R

xxxxx

A, 1, R

xxxxx

xxxxx

xxxxx

xxxxx

B xxxxx B, 2, R B, 3, L xxxxx B, 5, R xxxxx

^ ^, 6, R xxxxx xxxxx xxxxx ^, 6, R xxxxx

Pada diagram next state tersebut, kolom menyatakan himpunan stata dari Mesin Turing,

sedangkan baris menyatakan himpunan string input dari Mesin Turing. Isi sel di tengah

berturut-turut menyatakan :

Simbol Output pada stata tersebut

Simbol Next State

Simbol Arah gerakan tape ( L = ke kiri, R = ke kanan ).

Page 9: ptk

POKOK BAHASAN IIIAUTOMATA HINGGA DETERMINISTIK (AHD)

Dan

AUTOMATA HINGGA NON – DETERMINISTIK (AHN)

Automata Hingga merupakan mesin abstrak yang terdiri dari Head

Pembaca dan Kotak Kontrol Stata Hingga. Mesin ini membaca sebuah pita (tape), satu

persatu karakter, dari kiri ke kanan. Perubahan stata terjadi pada mesin jika suatu karakter

pita dibaca.

PITA

a a a b b b ^ … …

Read Head

Pada saat Automata Hingga mulai membaca Pita, ia harus selalu mulai dengan berada

pada suatu stata, yang ditunjuk sebagai stata awal. Sebuah Automata Hingga

Deterministik (AHD) terdiri atas 5 tupel (K, VT, f, q0, Z).

Dimana :

1. K adalah Himpunan Hingga berisi Stata.

2. VT adalah Himpunan Hingga berisi Simbol Input.

3. Sebuah fungsi f : K x VT, dimana K merupakan fungsi next-state.

4. q0 adalah Stata Awal anggota K.

5. Z adalah subset dari K yang berisi Stata Akhir atau Stata Penerima.

Contoh :

VT = (a,b) adalah himpunan simbol input.

K = (q0, q1, q2) adalah himpunan stata.

Z = (q0, q1) adalah himpunan stata penerima.

q0 adalah stata awal.

Page 10: ptk

Fungsi Next-State f : K x VT K didefinisikan sebagai tabel berikut :

f a b

q0

q1

q2

q0 q1

q0 q2

q2 q2

Automata Hingga Deterministik dapat dinyatakan dalam diagram berupa Graph Berarah.

Pada graph berarah tersebut terdapat sebuah simpul sebagai stata awal q0. Lingkaran

berlapis dua digunakan untuk menyatakan stata penerima.

Bila f(q0, a) = q0, maka terdapat busur dari q0 ke q0 dengan label a.

Graph berarah dari Automata Hingga Deterministik di atas terlihat pada gambar berikut :

Automata M dikatakan dapat menerima atau mengenal string w jika Stata Akhir

merupakan Stata Penerima. Himpunan semua string yang dapat diterima oleh Automata

M dinotasikan dengan L (M).

Sebagai contoh, Automata M di atas dapat menerima untai :

aabababa

aaa

baab

serta menolak untai berikut :

bbaaaa

aababb

babbaa

Ada tiga tipe Automata Hingga, yaitu :

1. Automata Hingga Deterministik (AHD)

2. Automata Hingga Non-Deterministik (AHN)

3. Automata Hingga Non-Deterministik dengan transisi hampa

Page 11: ptk

1. AUTOMATA HINGGA DETERMINISTIK (AHD)

AHD dapat dilengkapi dengan fungsi Next-State berikut :a) M(q, ^) = q untuk semua q anggota K

b) M(M(q, t), T), untuk semua t anggota VT dan T anggota VT

Dari definisi pertama, terlihat bahwa sebuah AHD tidak bisa mengubah stata tanpa

membaca sebuah karakter masukan. Definisi kedua adalah sebuah definisi yang bersifat

rekursif, yang menunjukkan di stata mana AHD berada pada saat di mulai di stata q

dengan mendapat input berupa string w = tT.

Sebuah string w adalah diterima oleh sebuah F = (K, VT, M, S, Z) jika M(S, W) = p,

sedemikian hingga w adalah anggota VT dan p anggota Z.

Atau dengan kata lain, string w diterima oleh AHD jika setelah membaca habis semua

karakter dari untai, AHD berada pada sebuah Stata Akhir. Himpunan semua untai w

anggota VT yang diterima oleh AHD F dinotasikan sebagai L(F).

Gambar berikut merupakan digraph Transisi dari sebuah AHD.

AHD pada contoh ini merupakan sebuah AHD yang menerima untai yang terdiri dari

simbol 0 dan 1. AHD tersebut dapat dinyatakan sebagai berikut :

F = ( {S, A, B, C}, {0, 1}, M, S, {S} ) dimana fungsi next state M adalah :

M(S, 0) = B M(S, 1) = A

M(A, 0) = C M(A, 1) = S

M(B, 0) = S M(B, 1) = C

M(C, 0) = A M(C, 1) = B

Fungsi stata berikut dari AHD kadang-kadang lebih mudah disajikan dalam bentuk tabel.

Untuk contoh di atas tabel yang terbentuk adalah :

Page 12: ptk

STATA

INPUT0 1

SA

B

C

B A

C S

S C

A B

Contoh dari string yang diterima AHD di atas adalah 110101 dan contoh string yang

tidak dapat diterima adalah 11101. Bagan operasi AHD pada kedua untai di atas adalah

sebagai berikut :

Penelusuran string 110101 : Penelusuran string 11101 :

M(S, 110101) = M(A, 10101) M(S, 11101) = M(A, 1101)

= M(S, 0101) = M(S, 101)

= M(B, 101) = M(A, 01)

= M(C, 01) = M(C, 1)

= M(A, 1) = M(B, ^)

= M(S, ^) = B (ditolak)

= S (diterima)

2. AUTOMATA HINGGA NON-DETERMINISTIK (AHN)

AHN pada hakekatnya adalah sama seperti AHD, hanya saja pada AHN

dimungkinkan adanya transisi dari suatu stata ke lebih dari satu stata, untuk sebuah

karakter input yang sama. Sebagai contoh, AHN berikut menerima untai dalam bentuk

ambn, dimana m dan n bilangan bulat positif.

Sebuah untai akan diterima AHN, jika sedikitnya satu urutan transisi state berakhir pada

Stata Akhir. Untuk AHN di atas terlihat bahwa jika AHN menerima sebuah string, maka

Page 13: ptk

penelusuran akan tetap di Stata A sampai dengan karakter a yang terakhir selesai dibaca.

AHN kemudian berubah mencapai stata B dan tetap pada stata B tersebut sampai karakter

b yang terakhir selesai dibaca. Selanjutnya terjadi transisi ke stata C.

AHN terdiri dari 5 tupel (K, VT, M, S, Z) dengan :

1. K adalah Himpunan Hingga Stata.

2. VT adalah Himpunan Simbol Input.

3. M adalah fungsi (pemetaan) next-state.

4. S adalah Stata Awal (anggota K).

5. Z adalah himpunan Stata Akhir (subset dari K).

Di sini fungsi next state dapat ditulis :

M(q, t) = {p1, p2, ….., pn}

Yang berarti bahwa pada saat pembacaan simbol input dapat terjadi transisi dari stata q

menjadi stata p1 atau p2 … atau pn. Sebagai contoh, sebuah AHN menerima untai yang

huruf awal dan huruf akhirnya sama. AHN tersebut dideskripsikan sebagai berikut :

F = ( {q0, q1, q2, q3, q4}, {a, b, c}, M, q0, {q0} )

Digraph AHN adalah sebagai berikut :

Tabel transisi yang ekuivalen dengan graph di atas adalah sebagai berikut :

INPUT

Page 14: ptk

STATA a b c

q0q1

q2

q3

q4

{q0, q1} {q0, q2} {q0, q3}

{q1,q4} {q1} {q1}

{q2} {q2,q4} {q2}

{q3} {q3} {q3,q4}

^ ^ ^

Sebagai contoh, dengan input aca, nilai dari M(q0, aca) dapat ditentukan sebagai berikut :

Karena diketahui

M(q0, a) = {q0, q1}

Maka

M(q0, aca) = M(q0, ca) M(q1, ca)

Dan karena

M(q0, c) = {q0, q3}

M(q1, c) = {q1}

Maka

M(q0, ca) = M(q0, a) M(q3, a)

= {q1,q2} M(q3)

= {q0, q1, q3}

M(q1, ca) = M(q1, a) = {q1, q4}

Sehingga

M(q0, aca) = {q0,q1,q3} {q1,q4}

= {q0,q1,q3,q4}

dan karena stata yang tercapai memuat q4 yaitu stata akhir, maka untai aca diterima. Jadi, perbedaan antara AHD dan AHN adalah bahwa AHD banyaknya lintasan penelusuran untuk suatu untai adalah unik. Sementara pada AHN banyaknya lintasan mungkin lebih dari satu. Pada kenyataannya AHN dapat dikonversi menjadi AHD yang ekuivalen

Virtual Lab ATA 2008 – 2009

Page 15: ptk

Tugas PengantarTeknik Kompilasi ( PTK )

1. Jelaskan apa yang dimaksud dengan Otomata dan Finite Automata (otomata

berhingga)!

2. Jelaskan apa yang di maksud dengan Regular Expresion (RE) !

3. Diketahui Grammar, dengan himpuinan simbol terminal { a, b} dan produksi sebagai

berikut ( huruf kecil menyatakan simbol terminal )

S a

S Sa

S b

S bS

Jelaskan bagaimana bentuk umum dari untai yang dibentuk oleh Grammar tersebut.

4. Buatlah pohon derivasi untuk ekspresi bentuk berikut :

( x – y * 2 + z ) div ( x div z )

a * ( 2 * c – b ) * 2

x * ( y – 5 ) * ( y div 4 + x )

( x * 2 * y ) – ( ( z + 32 ) div y )

5. Terdiri atas apa sajakah mesin turing, sebutkan dan jelaskan !

6. Diketahui Mesin Turing sebagai berikut :

Telusuri apakah untai berikut diterima atau ditolak :

a. ab b. aaabb c. abba

Page 16: ptk

7. Gambarkan diagram transisi dari Deterministic Finite Automata berikut :

Q : {q0, q1, q2, q3}

∑ : {a, b}

S : q0

F : {q0, q1, q2}, dengan fungsi transisi dari DFA tersebut adalah :

Δ a b

q0 q0 q1

q1 q0 q2

q2 q0 q3

q3 q3 q4

8. Buatlah tabel transisi dari Deterministic Finite Automata berikut, dan tentukan

apakah string berikut dapat diterima oleh Deterministic Finite Automata :

a. 1101

b. 0101

c. 1001

9. Gambarlah diagram transisi untuk NFA berikut :

Q : {q0, q1, q2, q3, q4}

∑ : {0, 1}

S : q0

F : {q2, q4}, dengan fungsi transisi dari NFA tersebut adalah :

Δ 0 1

q0 {q0, q3} {q0, q1}

q1 Ø {q2}

q2 {q2} {q2}

q3 {q4} Ø

q4 {q4} {q4}

Start

1

q0

0

q3q2

q1

0

1

1

00

1

Page 17: ptk

Apakah string berikut ini :

a. 001

b. 10010

c. 111000

Dapat diterima oleh Non-deterministik Finite Automata pada Diagram Transisi untuk

NFA diatas?

10. Diketahui bentuk AHD seperti terlihat pada gambar.

Tuliskan tupel dari AHD

Buatlah tabel dari AHD

Telusuri untai berikut apakah diterima atau ditolak :

aabbaba

baaaba

abbbaab

********* Selamat Mengerjakan **********

Keterangan :

Page 18: ptk

1. Tugas Diatas dikumpulkan dalam bentuk print dan di jilid.

2. Tugas ini adalah tugas Peorangan bukan tugas kelompok

3. Bisa dikumpulkan perkelas atau perorangan ( Nanti akan

mendapatkan tanda / bukti mengumpulkan tugas )