• Tidak ada hasil yang ditemukan

IF-UTAMA 1. Penurunan (Derivation) [2] Penurunan (Derivation) Contoh Penurunan [1] Parse Tree [1]

N/A
N/A
Protected

Academic year: 2021

Membagikan "IF-UTAMA 1. Penurunan (Derivation) [2] Penurunan (Derivation) Contoh Penurunan [1] Parse Tree [1]"

Copied!
5
0
0

Teks penuh

(1)

IF-UTAMA 1

Penurunan (Derivation)

Pertemuan : 5 Dosen Pembina : Danang Junaedi

IF-UTAMA 2

Penurunan (Derivation)

[2]

• Berfungsi untuk menggambarkan atau mengetahui bagaimana memperoleh suatu string dari dari suatu tata bahasa dengan cara menurunkan simbol-simbol variabel menjadi simbol-simbol terminal.

• Proses penurunan dilakukan dengan cara :

– Leftmost derivation : simbol variabel paling kiri yang diturunkan terlebih dahulu

– Rightmost derivation : simbol variabel paling kanan yang diturunkan terlebih dahulu

• Jenis Penurunan

– Derivation string / Penurunan String : dimulai dengan simbol awal dan menggunakan tanda “⇒” yang menunjukan hasil penurunannya.

– Derivation tree / Pohon Penurunan, disebut juga derivation

(parse) tree : root dari pohon penurunan adalah simbol awal,

sedangkan node (daun) dari pohon penurunan adalah simbol-simbol non terminal atau terminal dari tata bahasa tersebut atau kemungkinan simbol ε

Formally, let G = (V, T, P, S) be a CFG, a parse

tree for G must be such that:

• Every vertex has a label from V

T

{

ε

}.

• The root is labeled S.

• The label of any internal vertex is in V.

• If a vertex is labeled

ε

, it must be a leaf and has

no sibling.

• If a vertex is labeled A and its children are

labeled X

1

, X

2

, ..., X

k

from left to right, then A

X

1

X

2

X

3

is a production in P.

Parse Tree

[1]

Contoh Penurunan

[1]

Misalkan diketahui sebuah context free

grammar G

3

dengan aturan produksi sebagai

berikut:

E → E + E

E → E - E

E → (E)

E → V

V → x

V → z

V → y

(2)

IF-UTAMA 5

Contoh Penurunan (contd)

Kita bisa membuat pohon penurunan sebagai berikut :

Derivation String

:

E ⇒ E + E

V + E

x + E

x + (E)

x + (E - E)

x + (V - E)

x + (y - E)

x + (y - V)

x + (y - z)

String x+(y-z) diperoleh dengan cara membaca node daun) dari cabang paling bawah kiri ke kanan.

E E + E V ( E ) E - E V V x y z CFG G3: E → E + E | E - E | (E) | V V → x | y | z IF-UTAMA 6

Contoh Penurunan (contd)

Leftmost Derivation E ⇒ E + E ⇒V + Ex + Ex + (E)x + (E - E)x + (V - E)x + (y - E)x + (y - V)x + (y - z) E E + E V ( E ) E - E V V x y z Rightmost derivation E ⇒ E + E ⇒E + (E)E + (E - E)E + (E - V)E + (E - z)E + (V - z)E + (y - z)V + (y - z)x + (y - z) E E + E V ( E ) E - E V V x y z

• Each parse tree has one unique leftmost derivation and one unique rightmost derivation.

• A grammar is ambiguous if some strings in it have more than one parse trees, i.e., it has more than one leftmost derivations (or more than one rightmost derivations). • Consider the following grammar G:

S → AS | a | b A → SS | ab

A string generated by this grammar can have more than one parse trees. Consider the string abb:

Ambiguity

[1] A S S S b a b S A S a b b S E ⇒ E + E ⇒x + Ex + E + Ex + y + Ex + y + z E ⇒ E + E ⇒E + E + Ex + E + Ex + y + Ex + y + z E + E x y E z + E + E x y + z E

As another example, consider the following grammar:

E

E + E | E * E | (E) | x | y | z

There are 2 leftmost derivations for x + y + z:

(3)

IF-UTAMA 9

• Note that a CFL L can be generated by several

different grammars, e.g., the language L={a

n

b

m

| n

> m > 0) can be generated by both G

1

and G

2

:

G

1

: S

aS’b S’

aS’b|A A

aA|a

G

2

: S

AB A

aA|a

B

aBb|ab

• A CFL L is said to be inherently ambiguous if all

its grammars are ambiguous. If any one of them is

unambiguous, L is unambiguous.

Ambiguity

[1]

IF-UTAMA 10

1. Consider the grammar of an if-statement:

<if>if <cond> then <stat>

<if>if <cond> then <stat> else <stat> <cond>P | Q

<stat><if> | R | S Consider the following if-statement:

if P then if Q then R else S

This grammar is ambiguous since the above statement can have two parse trees. What are they?

2. Consider the grammar:

S aB | bA A a | aS | bAA B b | bS | aBB

Generate 4 strings from this grammar.

Do you know what language does this CFG represent?

Studi Kasus

[1]

Penyederhanaan

[5]

• Tujuan : Melakukan pembatasan sehingga tidak

menghasilkan pohon penurunan yang memiliki kerumitan yang tidak perlu atau aturan produksi yang tidak berarti. • Contoh :

S  AB | a A  a

Kelemahan CFG di atas, aturan produksi S AB tidak berarti karena B tidak memiliki penurunan.

• Untuk CFG berikut :

S  A A  B B  C

C  D D  a | A

Memiliki kelemahan terlalu panjang jalannya padahal berujung pada S  a, produksi D  A juga

menyebabkan kerumitan.

Penyederhanaan

[5] (contd)

• Suatu CFG dapat disederhanakan dengan melakukan : 1. Penghilangan produksi ε

2. Penghilangan produksi unit

(4)

IF-UTAMA 13

Penghilangan Produksi ε

[5]

• Produksi ε adalah produksi dalam bentuk α ε

• Atau bisa dianggap sebagai produksi kosong (empty). • Penghilangan produksi ε dilakukan dengan

melakukan penggantian produksi yang memuat variabel yang bisa menuju produksi ε, atau biasa disebut nullable.

• Contoh

S  bcAd A  ε

A nullable serta A  ε satu-satunya produksi dari A, maka variabel A bisa ditiadakan

Hasil penyederhanaan tata bahasa bebas konteks menjadi:

S  bcd

IF-UTAMA 14

Penghilangan Produksi ε

[5] (contd) • Contoh

S  bcAd A  bd | ε

– A nullable, tapi A  ε bukan satu-satunya produksi dari A

– hasil penyederhanaan:

S  bcAd | bcd A  bd • Contoh

S  Ab | Cd A  d C  ε

– Variabel yang nullable adalah variabel C.

– Karena penurunan C  ε merupakan penurunan satu-satunya dari C, maka kita ganti S  Cd menjadi S  d – Kemudian produksi C  ε kita hapus.

– Setelah penyederhanaan menjadi:

S  Ab | d A  d

Penghilangan Produksi Unit

[5]

• Produksi dimana ruas kiri dan kanan aturan produksi hanya berupa satu simbol variabel, misalkan: A  B, C  D. • Keberadaannya membuat tata bahasa memiliki kerumitan

yang tak perlu.

• Penyederhanaan dilakukan dengan melakukan penggantian aturan produksi unit.

• Contoh:

S  Sb S  C C  D C  ef D  dd Dilakukan penggantian berturutan mulai dari aturan produksi yang paling dekat menuju ke penurunan terminal-terminal (‘⇒’ dibaca ‘menjadi’):

C  D => C  dd S  C => S  dd | ef

Sehingga aturan produksi setelah penyederhanaan: S  Sb

S  dd | ef

Penghilangan Produksi Unit [5] (contd)

• Contoh:

S  A S  Aa A  B B  C

B  b C  D C  ab D  b

Penggantian yang dilakukan : – C  D => C  b

– B  C => B  b | ab,

karena B  b sudah ada, maka cukup dituliskan B  ab

– A  B => A  ab | b – S  A => S  ab | b

– Sehingga aturan produksi setelah penyederhanaan:

(5)

IF-UTAMA 17

Penghilangan Produksi Useles

[5]

Produksi useless didefinisikan sebagai :

– Produksi yang memuat simbol variabel yang tidak memiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya.

– Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simbol awal, sehingga produksi itu redundan (berlebih)

• Contoh :

S  aSa | Abd | Bde A  Ada B BBB | a Maka :

– Simbol variabel A tidak memiliki penurunan yang menuju terminal, sehingga bisa dihilangkan

– Konsekuensi : aturan produksi S  Abd tidak memiliki penurunan

– Penyederhanaan menjadi:

SaSa | Bde B BBB | a

IF-UTAMA 18

Penghilangan Produksi Useles

[5] (contd) • Contoh :

S Aa | B Aab | D B b | E

C bb E aEa

Maka :

– Aturan produksi A  D, simbol variabel D tidak memiliki penurunan.

– Aturan produksi C  bb, Penurunan dari simbol S, dengan jalan manapun tidak akan pernah mencapai C

– Simbol variabel E tidak memiliki aturan produksi yang menuju terminal

– Konsekuensi no (3) Aturan produksi B  E, simbol variabel E tidak memiliki penurunan.

Maka produksi yang useless:

A  D C  bb E  aEa B  E

Penyederhanaannya menjadi:

S  Aa | B A  ab B  b

Studi Kasus

Buat penyederhanaan untuk aturan-aturan produksi berikut ini :

1.Aturan Produksi 1 :

S  aAb | cEB A  dBE | eeC B  ff

C  ae D  h 2.Aturan Produksi 2 : S  Cba | D A  bbC B  Sc | ddd C  eAn | f | C D  E | SABC E  gh 3.Aturan Produksi 3 : S  AaCD A  CD | AB B  b | ε C  d | ε D  ε

Berdasarkan ke tiga aturan di atas buat string hasil penurunannya

Referensi

1.

http://www.cse.cuhk.edu.hk/~csc3130/

2.

Swinglly

Purba, “Otomata

dan

Bahasa

Formal”, Graha Ilmu,Yogyakarta, 2008

3.

Firrar

Utdirartatmo, “Teori

Bahasa

dan

Otomata”, Graha Ilmu, Yogyakarta, 2005

4.

Roni Djuliawan, M.T., “Diktat & Handout

Kuliah Teori Bahasa & Otomata”, Teknik

Informatika – Universitas Widyatama, 2003

5.

http://idhaclassroom.com/download/Teknik-

Otomasi-Bahasa-Kompilasi/Bahasa-Kompilasi.pdf

Referensi

Dokumen terkait

penelitian ini adalah untuk mengetahui kualitas limbah IPAL Kedung Tungkul serta untuk mengetahui pengaruh aerasi dan penambahan bakteri Pseudomonas putida dalam pengolahan

Upaya juga berarti usaha, akal, ikhtiar untuk mencapai suatu maksud, memecahkan persoalan mencari jalan keluar.9 Pendidik atau guru adalah orang yang mengajar dan memberi

Keredit perumahan rakyat ini muncul karena kebanyakan manusia tidak mampu untuk membeli rumah secara tunai, dikarenakan harga rumah yang mahal dan tidak sesuai dengan

Penelitian ini dilakukan di Desa Pantai Gading Kecamatan Secanggang Kabupaten Langkat. Penelitian ini bertujuan untuk mengetahui apa peranan ibu rumah tangga dalam

Kejang demam atau febrile convulsion ialah bangkitan kejang yang terjadi pada kenaikan suhu tubuh (suhu rektal di atas 38 o C) yang disebabkan oleh proses ekstrakranium

Alur penelitian yang dilakukan ditunjukkan pada Gambar 4. Secara garis besar penelitian ini dibagi menjadi tiga tahapan, yaitu tahapan segmentasi, tahapan pengukuran fitur dan

Hasil kegiatan menunjukkan bahwa penyuluhan telah memberikan perubahan sikap dan pengetahuan khalayak sasaran (kelompok mitra) terhadap pemanfaatan media sosial