Nama Ketua Kelompok
Petrus Kayun
Nama Anggota Kelompok
Ramadan P. Pello
Ridho A. Poy
Sadam
Saferius M. Wake
KELOPOK #3
Contoh
Jika CFG pada polindrom {a,b} dapat di definisikan sebagai contoh sebelumnya, maka CFG untuk bahasa komplemennya (non polindrom) dapat di defenisikan dengan aturan sebagai berikut :
S à aSa"bSb"D
Dà aAb"bAa
AàA"aA"bA
Suatu contex free grammar CFG adalah G = (V,Σ,S,P) dimana :
V dan Σ adalah himpunan disjoin, V disebut himpunan nonterminal, Σ disebut himpunan terminal
P himpunan berhingga aturan produksi berbentuk A à α dengan A € V dan α €
V dan α € (V- Σ)*
Aturan- aturan produksi dari satu variabel yang sama menjadi alternatif string yang berbeda dapat dipersingkat penulisannya dalam suatu ekspresi aturan produksi dengan setiap alternatif dipisahkan oleh garis tegak '"'. Misalnya Aà α,Aà β, Aàγ, dapat ditulis menjadi A à α" β" γ.
Notasi : =>G' dan =>G '
Bentuk umun dari notasi '=>G' di atas adalah '=>*G' yang berarti penurunan dilakukan dalam nol langkah atau lebih.
Jika menurut grammar G terjadi serangkaian penurunan
Α=> α1 =>α2 =>… β
Maka penulisannya dapat disingkat menjadi
α =>* β
Context Free Grammar ( CFG ) menjadi dasar dalam pembentukan suatu parser/proses analisis sintaksis. Bagian sintaks dalam suatu kompilator kebanyakan di definisikan dalam tata bahasa bebas konteks. Pohon penurunan ( derivation tree/parse tree) berguna untuk menggambarkan simbol-simbol variabel menjadi simbol-simbol terminal setiap simbol variabel akan di turunkan menjadi terminal sampai tidak ada yang belum tergantikan.
Contoh, terdapat CFG dengan aturan produksi sebagai berikut dengan simbol awal S :
S AB
A aA " a
B bB " b
Maka jika ingin dicari gambar pohon penurunan dengan string : 'aabbb' hasilnya adalah seperti di bawah :
Proses penurunan / parsing bisa dilakukan dengan cara sebagai berikut :
Penurunan terkiri (leftmost derivation): simbol variabel terkiri yang di perluas terlebih dahulu.
Penurunan terkanan ( rightmost derivation ) : simbol variabel terkanan yang diperluas terlebih dahulu.
Misal : Grammar sbb :
S aAS " a
A SbA " ba
Untuk memperoleh string 'aabbaa' dari grammar diatas dilakukan dengan cara :
Penurunan terkiri: S => aAS => aSbAS => aabAS => aabbaS => aabbaa
Penurunan terkanan : S => aAS => aAa => aSbAa => aAbbaa => aabbaa
d. Huruf kecil akhir dalam abjad, biasanya u, v,…z mempresentasikan sekumpulan terminal.
e. Huruf yunani kecil, seperti α β sebagai contoh, mempresentasikan sekumpulan umum symbol grammar. Pada umunya produksi dapat ditulis menjadi A α, menyatakan bahwa pada produksi itu ada sebuah non terminal a pada sisi bagian kiri dan sebuah string dari symbol grammar α pada sisi bagian kanan.
f. Apabila tidak ada pernyataan lain, maka bagian kiri dari produksi merupakan symbol awal.
Notasi untuk menyatakan "operasi penurunan" dari satu string menjadi string yang lain menjadi aturan produksi.
Jika satu string α= α1 Aα2 diturunkan menjadi string β= α1 αα 2 dalam satu langkah yang mengikuti suatu aturan produksi Aà γ dari gambar G maka penurunan itu dinyatakan dengan notasi αà G β
Kita mengatakan bahwa β diturunkan dari α dan sebaliknya α diturunkan menjadi β. Apabila sudah jelas berdasar grammar mana penurunan itu dilakukan, maka kadang-kadang notasi tersebut disederhanakan cukup dengan '=>'.
Simbol CFG (Contex Free Grammar)
Dalam Contex Free Grammar perlu diketahui beberapa istilah berikut yang berhubungan dengan grammar untuk bisa membedakan satu symbol dan lainnya:
a. Simbol berikut adalah terminal :
Huruf kecil, awal dari abjad seperti a, b, c
Simbol operator seperti – dll.
Angka 0,1. . . . . . .9
Kata tercetak tebal seperti id atau if
Context Free Grammar
Contex Free Grammar diperkenalkan oleh Chomsky (1956) sebagai bagian dari pembelajaran bahasa alami. CFG / Bahasa Bebas Konteks adalah suatu metode rekursif yang paling sederhana untuk menspesifikan aturan-aturan dalam menyusun string dari bahasanya. CFG dapat pula menspesifikasikan bahasa-bahasa non reguler tertentu, misalnya aturan tingkat dari bahasa pemerograman serta dari bahasa formal lainnya
b. Simbol beriktu adalah non terminal :
Huruf besar, awal dari abjad seperti A, B, C
Huruf S yang ada biasanya sebagai symbol awal.
c. Huruf besar akhir adalah abjad seperti X, Y Z mempresentasikan simbol grammar yaitu terminal atau non terminal
Secara formal, CFG didefinisikan : CFG G = (V,T,P,S), dimana V adalah daftar variabel produksi T, adalah daftar simbol atau terminal yang dipakai dalam CFG P, adalah aturan produksi CFG S, adalah variabel start aturan produksi CFG dapat 'dinormalkan' dengan pola tersendiri supaya tidak ambigu dan lebih sederhana, meskipun normalisasi CFG kadang membuat aturan produksi menjadi lebih banyak dari sebelumnya. Teknik normalisasi yang digunakan dalam makalah ini adalah CNF (Chomsky Normal Form).
Setelah terbentuk CFG yang telah dinormalkan secara CNF, dalam implementasi parsing, terdapat algoritma yang berguna untuk menentukan apakah suatu untai 'valid', atau dapat diciptakan dari aturan-aturan CFG yang ada. Salah satu algoritma yang dapat dipakai adalah Algoritma Cocke-Younger-Kasami (CYK). Algoritma ini menyelesaikan masalah analisa kembali sebuah sub-untai yang sama karena seharusnya analisa sub-untain dependen terhadap parsing sub-untai yang diparsing setelahnya. Dengan Program Dinamis, independensi yang
Terinspirasi dari bahasa natural manusia, ilmuwan-ilmuwan ilmu komputer yang mengembangkan bahasa pemrograman turut serta memberikan tata bahasa (pemrograman) secara formal. Tata bahasa ini diciptakan secara bebas-konteks dan disebut CFG (Context Free Grammar). Hasilnya, dengan pendekatan formal ini, kompiler suatu bahasa pemrograman dapat dibuat lebih mudah dan menghindari ambiguitas ketika parsing bahasa tersebut. Contoh desain CFG untuk parser, misal : B -> BB " (B) " e untuk mengenali bahasa dengan hanya tanda kurung {'(',')'} sebagai terminal-nya. Proses parsing adalah proses pembacaan untai dalam bahasa sesuai CFG tertentu, proses ini harus mematuhi aturan produksi dalam CFG tersebut.
diinginkan dapat dicapai ketika parsing. Algoritma CYK termasuk dalam bidang Program Dinamis karena algoritma ini membangun tabel status dua dimensi ketika parsing dimana penentuan parsing elanjutnya diturunkan atau dihasilkan dari parsing sebelumnya, hingga akhir untai. Selain untuk mengetahui validitas untai dalam suatu CFG, algoritma CYK yang dimodifikasi dapat dipergunakan pula untuk membangun pohon parsing
Komponen Contex Free Grammar
Contex Free Grammar memiliki 4 komponen :
1.Sekumpilan token yang di kenal sebagai terminal
2. Sekumpulan nol terminal.
3. Sekumpulan produksi dimana setiap produksi memiliki nol terminal disebut sebagai bagian kiri dari produksi, sebuah panah dan seurutan token dan non terminal atau seurutan token atau non terminal yang disebut sebagai bagian kanan dari produksi.
4. Pemilihan dari salah satu non terminal sebagai simbol awal.
Click to edit Master title style
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
9/28/2014
#
9/28/2014
#
Click to edit Master title style
Click to edit Master text styles
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
9/28/2014
#
Click to edit Master text styles
Click icon to add picture
9/28/2014
#
Click to edit Master title style
9/28/2014
#
Click to edit Master title style
Click to edit Master title style
Click to edit Master text styles
Click to edit Master text styles
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
9/28/2014
#
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
9/28/2014
#
Click to edit Master title style
Click to edit Master title style
Click to edit Master text styles
9/28/2014
#
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
9/28/2014
#
Click to edit Master title style
Click to edit Master title style
Click to edit Master subtitle style
9/28/2014
#
Click to edit Master title style
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
9/28/2014
#
Click to edit Master title style
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
9/28/2014
#