Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Kelompok 1 :
1. Fatimatu Zahro (10201433)
2. M. Alfanur Rizal M (10201107)
3. Novendra Dwi S (10201106)
4. Sasongko Hudi B (09201573)
Tata Bahasa Bebas Konteks
Motivasi awal :
Deskripsi bahasa alami
<kalimat> <subjek> <predikat>
<subjek> <kata benda>
<predikat> <kata kerja>
<kata benda> kucing
<kata kerja> berlari
<kata kerja> menyapu
Contoh kalimat yang dapat dihasilkan
kucing berlari
kucing menyapu (sintaks yes, semantik no)
Dalam tatabahasa bebas
konteks
Ruas kiri dari aturan produksi terdiri dari SATU
simbol non terminal
Ruas kanan dapat berupa string yang dibentuk
dari simbol terminal dan non terminal
Contoh
S aSb | c
Kalimat-kalimat yang dibangkitkan dari aturan
produksi itu
dalah c,ab,aabb,aaabbb,... , a
n
b
n
A 0A0
A 1A1
Aa
Kalimat-kalimat yang dibangkitkan dari aturan
produksi itu adalah a,01a10, 1001a1001 ,
110a011 |a|
R
S aSb | SS |c
Bahasa yang dihasilkan oleh tatabahasa
dengan
aturan produksi di atas adalah :
L = {w e (a + b)* |n
a
(w) =n
b
(w) }
Leftmost dan Rightmost Derivation
Leftmost dan Rightmost
Derivation
Suatu penguraian /penurunan
dikatakan leftmost derivation bila setiap
tahapan penurunan variabel / non
terminal terkiri yang diuraikan.
Apabila setiap tahapan penurunan
variabel / non terminal paling kanan
yang diuraikan disebut rightmost
derivation
Contoh 1
G=({A,B,S}, {a,b},S,P} dengan aturan produksi P
:
S AB
A aaA |
BBb |
Menspesifikasikan bahasa
L(G) = {a
2n
b
m
| n>0 , m>0}
Leftmost derivation untuk menghasilkan string
aab
S AB aaAB aaB aaBb aab
Righmost derivation untuk menghasilkan string
aab
S AB ABb aaABb aaAb aab
Contoh 2
G=({A,B,S}, {a,b},S,P} dengan aturan produksi P
:
S aAB
A bBb
B A |
Leftmost derivation untuk menghasilkan string
abbbb
S aAB abBbB abAbB abbBbbB
abbbbB abbbb
Righmost derivation untuk menghasilkan string
aab
S aAB aA abBb abAb
abbBbb abbbb
Pohon urai
Untuk menampilkan penguraian, dapat
dilakukan dengan membentuk pohon
urai (sayangnya, urutan penguraian
tidak terlihat).
Contoh pohon urai pada contoh
sebelumnya :
S
a
b B b
B A
b B b
A
b S a
S
b S a
S
S
|
.
|
|
(
(
(
L n z
z L z n
u v w x y
z uvwxy vwx n vx
i uv wx y L
i i
, , , ,
1
Contoh
Contoh tatabahasa dengan aturan produksi
S uAy
A vAx
A w
maka aturan derivasinya
S uAy uwy
S uAy uvAxy uvwxy
S uAy uvAxy uvvAxxy uvvwxxy
sehingga untuk setiap i >0 , uv
i
wx
i
y e L
Sifat sifat tertutup bahasa
bebas konteks
1. Gabungan dua CFL merupakan CFL juga
Jika diketahui dua buah CFG G
1
= (N
1
,T
1
,S
1
,P
1
)
dan G
2
=(N
2
,T
2
,S
2
,P
2
) yang menghasilkan bahasa
L
1
dan L
2
, maka CFG L
1
L
2
dapat dibentuk
dengan cara :
menggabungkan kedua himpunan dan
menambahkan satu simbol variabel baru S
menggabungkan kedua himpunan simbol
terminal
menggabungkan kedua himpunan aturan
produksi dan menambahkan satu aturan
produksi baru
S S
1
|S
2
yang digunakan untuk memilih
salah satu simbol awal S
1
atau S
2
dari simbol
awal baru S
G
3
= (N
1
N
2
{S},T
1
T
2
,S,P
1
P
2
{SS
1
|S
2
}}
Sifat sifat tertutup bahasa
bebas konteks
2. Penyambungan dua CFL merupakan
CFL juga
Jika diketahui dua buah CFG G
1
=
(N
1
,T
1
,S
1
,P
1
) dan G
2
=(N
2
,T
2
,S
2
,P
2
) yang
menghasilkan bahasa L
1
dan L
2
, maka
bahasa L
1
L
2
dapat dibentuk oleh :
G
4
= (N
1
N
2
{S},T
1
T
2
,S,P
1
P
2
{SS
1
S
2
}}
Sifat sifat tertutup bahasa
bebas konteks
3. Kleene Klosure dari CFL adalah CFL juga.
Kleene Klosure dari tatabahasa
G=(N,T,S
1
,P) adalah
G
5
= (N {S} , T , S , P {S S
1
S | c } )
Sifat sifat tertutup bahasa
bebas konteks
4. Bahasa bebas konteks tertutup
terhadap substitusi
Contoh
L
a
= {0
n
1
n
| n >1 } dan L
b
= { ww
R
| w e
(0+2)* }
dihasilkan oleh tatabahasa G
a
dengan
aturan produksi S
a
0S
a
1 | 01
serta tatabahasa G
2
dengan aturan
produksi
S
b
0S
b
0 | 2S
b
2 | c
Substitusi
Didefinisikan tatabahasa G dengan
aturan produksi S aSbS | bSaS | c
jika f adalah substitusi f(a)= L
a
dan f(b) =
L
b
maka f(L) adalah bahasa yang
dihasilkan oleh tatabahasa dengan
aturan produksi
S S
a
SS
b
S | S
b
SS
a
S | c
S
a
0S
a
1 | 01
S
b
0S
b
0 | 2S
b
2 | c
Tatabahasa Bebas Konteks
dan Bahasa Pemrograman
Tatabahasa bebas konteks digunakan untuk
mendefinisikan sintaks bahasa
pemrograman
Menggunakan notasi BNF (Backus-Naur
Form)
variabel / non terminal : <...>
terminal : tanpa tanda
diganti dengan ::=
Contoh statemen if then else
< if_statement> ::= if <expression>
<then_clause>
<else_clause>
Terima
Kasih
Selamat
Belajar...