CFG & CFL
• STIKOM Artha Buana
• Teknik Informatika
• 2014
Ir. Ahmad Haidaroh, M.Kom.
Sentensial
• Turunan (derivation) yang masih memiliki
variabel (non-terminal) disebut dengan
bentuk sentensial.
• Contoh:
S Ab
A adalah Non Terminal
Contoh Sentensial
• Dari aturan produksi (P):
S  A1 | 0B
A  0
B  1
• S  A1 merupakan bentuk sentensial dari P.
• S  0B merupakan bentuk sentensial dari P.
• Karena A dan B bukanlah Non Terminal
Sentens
• Turunan (derivation) yang hanya memiliki
terminal disebut dengan sentens.
• Contoh:
S b
S  0
S  1
Contoh Sentens
• Dari aturan produksi (P):
S  A1 | 0B
A  0
B  1
• S  A1  01 merupakan sentens dari P.
• S  0B  01 merupakan sentens dari P.
Pohon Penurunan (ParseTree)
• Turunan dapat juga dinyatakan
dalam bentuk tree/pohon.
• Sebagai root adalah simbol awal (S).
root
node
node
Pohon Penurunan (ParseTree)
• Turunan dapat juga dinyatakan
dalam bentuk tree/pohon.
• Sebagai root adalah simbol awal (S).
• Node dapat berupa terminal atau
variabel.
S
node
node
Pohon Penurunan (ParseTree)
• Turunan dapat juga dinyatakan
dalam bentuk tree/pohon.
• Sebagai root adalah simbol awal (S).
• Node dapat berupa terminal atau
variabel.
• Variabel harus diturunkan
sampai membentuk terminal.
S
a
A
Pohon Penurunan (ParseTree)
• Turunan dapat juga dinyatakan
dalam bentuk tree/pohon.
• Sebagai root adalah simbol awal (S).
• Node dapat berupa terminal atau
variabel.
• Variabel harus diturunkan
sampai membentuk terminal.
S
a
A
a
Contoh:
G = ({S, A}, {a,b}, P, S)
P adalah:
S  aAS
S  a
A  SbA
A  SS
A  ba
Salah satu turunannya adalah aabbaa, buktikan
dengan parse tree!
Contoh: Penyelesaian
String aabbaa diperoleh melalui:
Aturan
Produksi:
S  aAS
S  a
A  SbA
A  SS
A  ba
S
a A S
S b A a
a b a
Contoh: Penyelesaian
String aabbaa diperoleh melalui:
S
a A S
S b A a
a b a
Aturan
Produksi:
S  aAS
S  a
A  SbA
A  SS
A  ba
Latihan No.1
Diketahui suatu CFG,
G = ({S}, {a,b}, P, S)
dengan P:
S  aSb
S  aSbb
S  
a. Buatlah bentuk sentens dari aabbb!
b. Gambarkan parse tree untuk aabb!
Latihan No.2
Diketahui aturan produksi suatu CFG,
S  0A | 1B
A  0AA | 1S | 1
B  1BB | 0S | 0
a. Tuliskan quadruple dari CFG ini!
b. Buatlah derivation dari 001101 (LM dan RM)
c. Gambarkan parse tree untuk masing-masing
derivation tersebut (LM dan RM)!
Latihan No.3
Diketahui aturan produksi suatu CFG,
S  AB | CD
A  0A1 | 01
B  2B | 2
C  0C | 0
D  1D2 | 12
a. Tuliskan quadruple dari CFG ini!
b. Buatlah derivation dari 012 (LM dan RM)
c. Gambarkan parse tree untuk masing-masing
derivation tersebut (LM dan RM)!
Diketahui grammar G = {I  H | IH | IA, H  a|b|c|...|z, A  0|1|2|...|9}
dengan I adalah simbol awal.
Latihan No.4
Berikut ini kedua cara analisa sintaks untuk kalimat x23b.
I  IH
 IAH
IAAH
 HAAH
xAAH
x2AH
x23H
x23b
cara 1 (Derivasi) cara 2 (Parsing)
Latihan No.5
Diketahui grammar G = {S  SOS|A , O  *|+, A  0|1|2|...|9}
Kalimat : 2*3+7 mempunyai dua pohon sintaks berikut :
Sebuah kalimat yang mempunyai lebih dari satu pohon
sintaks disebut kalimat ambigu
S  SOS
 A
O  *
 +
A  0
 1
 2
 3
 …..
Diketahui Grammar {S → S + S | S * S | angka,
angka → 0 |1 |2 |3 |… |9}
Latihan No.6
kalimat ambigu
S  S + S
 S * S
 angka
Angka  0
 1
 2
 3
 …..
Latihan No.6
• Karena hasil keduanya tidak sama maka tidak
dapat diimplementasikan pada pelajaran
matematika.
• Untuk menyempurnakannya maka diberi tanda
kurung = UNAMBIGOUS
S → (S + S) | (S * S) | angka
angka → 0 |1 |2 |3 …….| 9
Contoh
• CFG
S → a S | S a | a
bentuk tree dari kata aaa
Ambiguous
Contoh
Perbaikan CFG diatas
S → a S | a  UNAMBIGOUS
Contoh Implementasi
Diketahui CFG :
• S → * | + | Angka
• + → + + | + * | + Angka | * + | * * | * Angka |
Angka + | Angka * | Angka Angka
• * → * * | + * | + Angka | * + | * * | * Angka |
Angka + | Angka * | Angka Angka
• Angka → 0 | 1 | 3 | …… | 9
PREORDER
* + * + 1 2 + 3 4 5 6
* + * + 1 2 7 5 6
* + * 3 7 5 6
* + 21 5 6
* 26 6
156
Contoh Implementasi
Contoh Implementasi
Diberikan Rule Grammar sebagai berikut
1. S → x
2. S → y
3. S → z
4. S → S + S
5. S → S - S
6. S → S * S
7. S → S / S
8. S → (S)
Diberikan string  ( x + y ) * x – z * y / ( x + x )
Contoh Implementasi
( x + y ) * x – z * y / ( x + x )
1. S → x
2. S → y
3. S → z
4. S → S + S
5. S → S - S
6. S → S * S
7. S → S / S
8. S → (S)
Rules
Parsing Tree

Materi 7 Context Free Grammar

  • 1.
    CFG & CFL •STIKOM Artha Buana • Teknik Informatika • 2014 Ir. Ahmad Haidaroh, M.Kom.
  • 2.
    Sentensial • Turunan (derivation)yang masih memiliki variabel (non-terminal) disebut dengan bentuk sentensial. • Contoh: S Ab A adalah Non Terminal
  • 3.
    Contoh Sentensial • Dariaturan produksi (P): S  A1 | 0B A  0 B  1 • S  A1 merupakan bentuk sentensial dari P. • S  0B merupakan bentuk sentensial dari P. • Karena A dan B bukanlah Non Terminal
  • 4.
    Sentens • Turunan (derivation)yang hanya memiliki terminal disebut dengan sentens. • Contoh: S b S  0 S  1
  • 5.
    Contoh Sentens • Dariaturan produksi (P): S  A1 | 0B A  0 B  1 • S  A1  01 merupakan sentens dari P. • S  0B  01 merupakan sentens dari P.
  • 6.
    Pohon Penurunan (ParseTree) •Turunan dapat juga dinyatakan dalam bentuk tree/pohon. • Sebagai root adalah simbol awal (S). root node node
  • 7.
    Pohon Penurunan (ParseTree) •Turunan dapat juga dinyatakan dalam bentuk tree/pohon. • Sebagai root adalah simbol awal (S). • Node dapat berupa terminal atau variabel. S node node
  • 8.
    Pohon Penurunan (ParseTree) •Turunan dapat juga dinyatakan dalam bentuk tree/pohon. • Sebagai root adalah simbol awal (S). • Node dapat berupa terminal atau variabel. • Variabel harus diturunkan sampai membentuk terminal. S a A
  • 9.
    Pohon Penurunan (ParseTree) •Turunan dapat juga dinyatakan dalam bentuk tree/pohon. • Sebagai root adalah simbol awal (S). • Node dapat berupa terminal atau variabel. • Variabel harus diturunkan sampai membentuk terminal. S a A a
  • 10.
    Contoh: G = ({S,A}, {a,b}, P, S) P adalah: S  aAS S  a A  SbA A  SS A  ba Salah satu turunannya adalah aabbaa, buktikan dengan parse tree!
  • 11.
    Contoh: Penyelesaian String aabbaadiperoleh melalui: Aturan Produksi: S  aAS S  a A  SbA A  SS A  ba S a A S S b A a a b a
  • 12.
    Contoh: Penyelesaian String aabbaadiperoleh melalui: S a A S S b A a a b a Aturan Produksi: S  aAS S  a A  SbA A  SS A  ba
  • 13.
    Latihan No.1 Diketahui suatuCFG, G = ({S}, {a,b}, P, S) dengan P: S  aSb S  aSbb S   a. Buatlah bentuk sentens dari aabbb! b. Gambarkan parse tree untuk aabb!
  • 14.
    Latihan No.2 Diketahui aturanproduksi suatu CFG, S  0A | 1B A  0AA | 1S | 1 B  1BB | 0S | 0 a. Tuliskan quadruple dari CFG ini! b. Buatlah derivation dari 001101 (LM dan RM) c. Gambarkan parse tree untuk masing-masing derivation tersebut (LM dan RM)!
  • 15.
    Latihan No.3 Diketahui aturanproduksi suatu CFG, S  AB | CD A  0A1 | 01 B  2B | 2 C  0C | 0 D  1D2 | 12 a. Tuliskan quadruple dari CFG ini! b. Buatlah derivation dari 012 (LM dan RM) c. Gambarkan parse tree untuk masing-masing derivation tersebut (LM dan RM)!
  • 16.
    Diketahui grammar G= {I  H | IH | IA, H  a|b|c|...|z, A  0|1|2|...|9} dengan I adalah simbol awal. Latihan No.4 Berikut ini kedua cara analisa sintaks untuk kalimat x23b. I  IH  IAH IAAH  HAAH xAAH x2AH x23H x23b cara 1 (Derivasi) cara 2 (Parsing)
  • 17.
    Latihan No.5 Diketahui grammarG = {S  SOS|A , O  *|+, A  0|1|2|...|9} Kalimat : 2*3+7 mempunyai dua pohon sintaks berikut : Sebuah kalimat yang mempunyai lebih dari satu pohon sintaks disebut kalimat ambigu S  SOS  A O  *  + A  0  1  2  3  …..
  • 18.
    Diketahui Grammar {S→ S + S | S * S | angka, angka → 0 |1 |2 |3 |… |9} Latihan No.6 kalimat ambigu S  S + S  S * S  angka Angka  0  1  2  3  …..
  • 19.
    Latihan No.6 • Karenahasil keduanya tidak sama maka tidak dapat diimplementasikan pada pelajaran matematika. • Untuk menyempurnakannya maka diberi tanda kurung = UNAMBIGOUS S → (S + S) | (S * S) | angka angka → 0 |1 |2 |3 …….| 9
  • 20.
    Contoh • CFG S →a S | S a | a bentuk tree dari kata aaa Ambiguous
  • 21.
    Contoh Perbaikan CFG diatas S→ a S | a  UNAMBIGOUS
  • 22.
    Contoh Implementasi Diketahui CFG: • S → * | + | Angka • + → + + | + * | + Angka | * + | * * | * Angka | Angka + | Angka * | Angka Angka • * → * * | + * | + Angka | * + | * * | * Angka | Angka + | Angka * | Angka Angka • Angka → 0 | 1 | 3 | …… | 9
  • 23.
    PREORDER * + *+ 1 2 + 3 4 5 6 * + * + 1 2 7 5 6 * + * 3 7 5 6 * + 21 5 6 * 26 6 156 Contoh Implementasi
  • 24.
    Contoh Implementasi Diberikan RuleGrammar sebagai berikut 1. S → x 2. S → y 3. S → z 4. S → S + S 5. S → S - S 6. S → S * S 7. S → S / S 8. S → (S) Diberikan string  ( x + y ) * x – z * y / ( x + x )
  • 25.
    Contoh Implementasi ( x+ y ) * x – z * y / ( x + x ) 1. S → x 2. S → y 3. S → z 4. S → S + S 5. S → S - S 6. S → S * S 7. S → S / S 8. S → (S) Rules
  • 26.