Professional Documents
Culture Documents
Teori Bahasa
Teori bahasa membicarakan bahasa formal (formal language), terutama untuk
kepentingan perancangan kompilator (compiler) dan pemroses naskah (text processor).
Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam sebuah bahasa
dibangkitkan oleh sebuah tata bahasa (grammar) yang sama. Sebuah bahasa formal bisa
dibangkitkan oleh dua atau lebih tata bahasa berbeda. Dikatakan bahasa formal karena
grammar diciptakan mendahului pembangkitan setiap kalimatnya. Bahasa manusia
bersifat sebaliknya; grammar diciptakan untuk meresmikan kata-kata yang hidup di
masyarakat. Dalam pembicaraan selanjutnya ‘bahasa formal’ akan disebut ‘bahasa’ saja.
Automata
Automata adalah mesin abstrak yang dapat mengenali (recognize), menerima (accept),
atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu.
Mekanisme kerja :
1. M di stack, FC dalam State q1
2. Input : 0, FC : q1 Þ Push : B Input : 1, FC : q 1 Þ Push : H Untuk kedua input
Þ FC tetap di q1
3. Input : c, FC : q 1 , FC : masuk q 2
4. Input : 0, FC dalam state : q2, top stack : B Þ Pop : B Input : 1, FC : q2, top
stack : H Þ Pop : H untuk kedua input : FC tetap di q2
5. FC dalam q 2 , top : M Þ pop : M
6. Di luar ketentuan di atas : PDA tidak bergerak.
Mekanisme kerja di atas digambarkan dalam tabel berikut :
Piring State Input
0 1 c
Biru Q1 Push b tetap Push H masuk q2
q1 tetap q1
Q2 pop top - -
tetap q2
Hijau Q1 Push B 1 Push H masuk q2
tetap q tetap q 1
Q2 - pop top -
tetap q 2
Merah Q1 push B Push H masuk q2
tetap q1 tetap q1
q 2 Pop top elemen dari Stack
Definisi :
PDA menerima language dengan dua cara :
1. Stack menjadi kosong
2. Finite Automaton masuk final state Secara formal, PDA :
M = ( Q,S,T,d, q 0 , Z 0 , F ) dimana :
Q : Himpunan state
S : Alphabet input
T : Alphabet Stack
q 0 ÎQ : State awal
Z0 ÎT : Start symbol stack
F ÍQ : Himpunan final state
d : Mapping :
Q´ (S È {e} )´ T® Subset Q´T
Move :
Langkah (Move) PDA didefinisikan sebagai :
1. d ( q,a,z ) = { (p1,g1), (p2,g2), ..., (pm,gm) }
dimana : q, pi, 1 £ i £ m, state aÎ S z : stack symbol gi Ît * , 1 £ i £ m
2. d (q,Î,z) = {(p1,g 1),(p 2, g2), … ,(pm, gm)} Instantenuous Description (ID) :
ID adalah triple: (q,w,y) dimana (q,aw,z ) (p,w, )
q = state
w = string of input symbols
y = string of stack symbol
1 jikad (q,a,z) berisi (p,ß)
Catatan : 'a' dapat sama denganÎ
Contoh :
Langkah-langkah PDA untuk menerima language :
L = { wcw R çw dalam ( 0+1 ) * } dengan empty stack, sebagai berikut:
M = ( {q1,q2}, {0,1,c}, {M,B,H}, d, q, M, Æ )
dimana didefinisikan sbb :
1.d ( q1,0,M ) = { ( q1,BM ) }
2.d ( q 1 ,0,B ) = { ( q 1 ,BB ) }
3.d ( q1,0,H ) = { ( q1,BH ) }
4.d ( q1,c,M ) = { ( q2,M ) }
5.d ( q1,c,B ) = { ( q2,B ) }
6.d ( q1,c,H ) = { ( q2,H ) }
7.d ( q 2 ,0,B ) = { ( q 2 ,Î) }
8.d ( q2,Î,M ) = { ( q2,Î) }
9.d ( q 1 ,1,M ) = { ( q 1 ,HM ) }
10.d ( q 1 ,1,B ) = { ( q 1 ,HB ) }
11.d ( q 1 ,1,H ) = { ( q 1 ,HH ) }
12.d ( q 2 ,1,H ) = { ( q 2 ,Î) }
Contoh :
PDA yang menerima :
L = { ww R çw dalam ( 0+1 ) * }
M = ( { q1,q2}, { 0,1 }, { M,B,H }, d, q, R, Æ ) dengan sebagai berikut :
1.d ( q1,0,M ) = { ( q1,BM ) }
2.d ( q1,1,M ) = { ( q1,HM ) }
3.d ( q1,0,B ) = { ( q1,BB ), ( q 2,Î) }
4.d ( q1,0,H ) = { ( q1,BH ) }
5.d ( q1,1,B ) = { ( q1,HB ) }
6.d ( q1,1,H ) = { ( q1,HH ), ( q 2,Î) }
7.d ( q2,0,B ) = { ( q2 ,Î) }
8.d ( q 2,1,H ) = { ( q2,Î ) }
9.d ( q1,Î,M ) = { ( q2,Î ) }
10.d ( q2,Î,M ) = { ( q2,Î) }