CS3113 Teori Komputasi
STT Telkom 2007
Grammer dan Tingkat Bahasa
Agung Toto Wibowo [email protected]
Download via http://www.stttelkom.ac.id/staf/atw/
Materi dan Manfaat
perkuliahan – FA [1]
z Finite Automata : model yang sangat bermanfaat
untuk berbagai hardware dan software.
z FA meliputi DFA dan NFA. z Manfaat nyata :
z Software untuk mendesain dan mencek perilaku sirkuit
digital. Contoh : mesin ATM.
z Bagian “Lexical Analyzer” dari berbagai kompiler yang
berfungsi membagi teks input menjadi logical unit seperti Keyword, Identifier, dan pungtuasi.
z Search engine Æ menscan web, dan menemukan kata,
Materi dan Manfaat
perkuliahan – Grammer [2]
z
Grammer : model yang sangat bermanfaat
untuk mendesain software yang memproses
data secara rekursif.
z
Grammer meliputi apa yang di bahas /
dikategorikan di hirarki Chomsky
z
Contoh yang paling populer dalam dunia
komputer : Parser Æ bagian kompiler yang
mengecek kebenaran / validitas struktur dari
program sumber.
Materi dan Manfaat perkuliahan
– Regular Ekspression [3]
z
Ekspresi reguler menyatakan struktur dari
data khususnya dalam teks / string.
z
Contoh :
z Unix Style regular ekspression
‘[A-Z][a-z]*[ ][A-Z] [A-Z]’ yang merepresentasikan
kata berawalan huruf besar, yang diikuti spasi dan diakhiri dua huruf kapital.
z
Materi lainnya adalah Mesin Turing yang
merupakan model dari mesin
komputer-komputer canggih saat ini.
Konsep Sentral
Teori Automata
z
Beberapa istilah penting yang ada di dalam
teori automata :
z Alphabet – Himpunan simbol
z String – list simbol dari alphabet
z Language – himpunan string dari alphabet yang sama
Alphabet
z
Alphabet : finite set dan non-empty set dari
simbol. Di perkuliahan kita, akan digunakan Σ
untuk menyatakan alphabet.
z
Contoh :
z Σ = {0, 1}, merupakan alphabet biner
z Σ = {a, b, c, .., z}, merupakan alphabet dari lower case
z Semua himpunan ASCII adalah alphabet dari karakter ASCII
String [1]
z String / word : finite sequence symbols yang
diambil dari alphabet. Contoh : 01101 merupakan string dari alphabet Σ = {0, 1}.
z Empty string : string dengan kemunculan symbol
adalah nol. Empty string dinotasikan dengan ε (dibuku 3) atau λ (dibuku 1 – yang kita gunakan).
z Panjang String : panjang dari string w dinotasikan
dengan |w| adalah jumlah kemunculan symbol
String [2]
Power of an Alphabet
z Jika Σ adalah suatu alphabet, maka kita dapat
mengekspresikan sekumpulan string dengan panjang tertentu dari alphabet dengan cara Σk z Contoh : jika Σ = {0, 1}, maka
z Σ0 = {λ}
z Σ3 = {000, 001, 010, 011, 100,101, 110, 111}
z Σ* akan kita sebut sebagai himpunan string yang dapat
dibangun oleh alphabet
z {0, 1}* = {λ, 0, 1, 00, 01, 10, 11, 000, …} z Σ* = Σ0 U Σ1 U Σ2 U Σ3 U …
Laguage / Bahasa [1]
z Language : himpunan string yang dipilih dari Σ* .
z Jika Σ adalah alphabet, dan L ⊆ Σ* , maka L adalah
language yang bisa di hasilkan oleh himpunan alphabet Σ.
z Contoh :
z Kata-kata bahasa Indonesia adalah himpunan string dari
alphabet yang semuanya terdiri atas huruf.
z Di bahasa C atau pemrograman lain, program yang legal
adalah subset dari semua kemungkinan string yang dibangun dari alphabet di bahasa pemrograman itu.
Laguage / Bahasa [2]
z
Contoh lain : jika kita punya Σ = {0, 1}, maka
definisikan bahasa dari himpunan string
berikut :
z X = {λ, 01, 0011, 000111, …}
z Y = {λ, 01, 10, 0011, 0101, 1001, …} z Z = {10, 11, 101, 111, 1011, …}
Bahasa sebagai
Alat Komunikasi
Point Diskusi
z
Apa yang diucapkan oleh Pembicara???
z
Bagaimana Pendengar dapat memahami
maksud pembicara?
z
Sebenarnya….
z Pembicara menggenerate kata-kata (grammer) z Pendengar mengenali kata-kata (recognizer) z Pendengar memahami maksud kata-kata
Komponen Grammer [1]
z Suatu Grammer / tata bahasa dapat didefinikan ke
dalam bentuk formal : G = (VN, VT, S, F)
z Di mana VN (variabel non terminal) adalah
himpunan simbol yang masih bisa diturunkan. z VN biasanya dituliskan dalam huruf kapital.
z Contoh ‘A’, ‘B’, ‘C’, ‘S’
z VT (variabel terminal) adalah himpunan simbol yang
sudah tidak bisa diturunkan lagi.
z VT biasanya dituliskan dalam hurul kecil, dan bisa berupa
angka atau simbol lain.
Komponen Grammer [2]
z S (starting symbol) adalah variabel non terminal
yang digunakan sebagai awal penurunan produksi.
z F (aturan produksi) adalah aturan yang
menspesifikasikan bagaimana mentransformasi suatu string ke bentuk lainnya.
z Kita akan menuliskan aturan produksi dalam bentuk α Æ β. z Contoh :
z T Æa (dibaca T menghasilkan a) z E Æ T | T+E
Penggolongan Tingkat / Tipe
Bahasa [1]
z Pada tahun 1959, Noam Chomsky menggolongkan bahasa
Penggolongan Tingkat / Tipe
Bahasa [2]
Bahasa Mesin Automata Batasan Produksi
Regular / Tipe 3
Finite State Automata (FSA) meliputi
Deterministic Finite
Automata (DFA) dan Non Deterministic Finite
Automata (NFA)
α adalah sebuah simbol variabel
β maksimal memiliki sebuah simbol variabel yang bila ada terletak paling kanan
Bebas Konteks / Context Free / Tipe 2
Push Down Automata (PDA)
α adalah sebuah simbol variabel
Penggolongan Tingkat / Tipe
Bahasa [3]
Bahasa Mesin Automata Batasan Produksi
Context Sensitive / Tipe 1
Linier Bounded Automata |α| <= |β|
Unrestricted / Phase Structure / Natural Language / Tipe 0
Penggolongan Tingkat / Tipe
Bahasa [4]
z
Bahasa manusia / natural language masuk
ke dalam grammer Tipe 0 / Unrestricted,
dimana tidak ada batasan pada aturan
produksinya.
z Contoh : Abc Æ De
Penggolongan Tingkat / Tipe
Bahasa [5]
z
Pada bahasa Context Sensitive, |α| <= |β|.
z Contoh :Ab Æ DeF CD Æ eF
z Perhatikan SÆ ε.
Apakah masuk ke Context Sensitive???? z Context Sensitive digunakan untuk proses
Penggolongan Tingkat / Tipe
Bahasa [6]
z
Pada bebas konteks, (context free grammer)
batasan bertambah dengan ruas kiri harus
tepat 1 simbol variabel.
z Contoh :
BÆ CDeFg D Æ BcDe
z Bahasa bebas konteks menjadi dasar dalam pembentukan suatu parser / analisis sintaksis.
Penggolongan Tingkat / Tipe
Bahasa [7]
z
Pada bahasa reguler, batasan ini bertambah
dengan ruas kanan maksimal memiliki
sebuah simbol variabel yang letaknya paling
kanan.
z Contoh :
AÆ e | efgC C Æ cD | D D Æ e
Penggolongan Tingkat / Tipe
Bahasa [8]
z Aturan produksi beriku ini tidak legal :
ε Æ Abd
karena ruas kiri tidak boleh berupa ε.
z Aturan berikut juga tidak legal :
a Æ bd ab Æ bd
karena ruas kiri harus memuat simbol yang bisa diturunkan.
z Aturan di atas tidak legal untuk aturan produksi
Studi Kasus dan Diskusi [1]
z Tentukan jenis grammer dari aturan produksi berikut
: z 1. : a Æ bd z 2. : E Æ ( E ) | AOE | EOA | A A Æ0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 O Æ * | + | - | : z 3 : S Æ xX X Æ yY Y Æ xX | λ
Studi Kasus dan Diskusi [2]
z4.
<sentence> Æ <subject> <predicate> <subject> Æ <noun>
<noun> Æ jhon | mary
<predicate> Æ <intransitive verb>
<predicate> Æ <transitive verb> <object> <object> Æ <noun>
<intransitive verb> Æ skates <transitive verb> Ælikes
Tugas :
Daftar Pustaka
1.
Brookshear, Glen. J. “Theory of Computation :
Formal Language, Automata and Complexity”,
The Benjamin/Cummings Publishing Company,
1989
2.
Hopcroft, Jhon E. and Jeffery D. Ullman,
“Introduction to Automata Theory, Language,
and Computation”
3.