• Tidak ada hasil yang ditemukan

CS3113 Teori Komputasi STT Telkom 2007

N/A
N/A
Protected

Academic year: 2021

Membagikan "CS3113 Teori Komputasi STT Telkom 2007"

Copied!
28
0
0

Teks penuh

(1)

CS3113 Teori Komputasi

STT Telkom 2007

Grammer dan Tingkat Bahasa

Agung Toto Wibowo [email protected]

Download via http://www.stttelkom.ac.id/staf/atw/

(2)

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,

(3)

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.

(4)

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.

(5)

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

(6)

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

(7)

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

(8)

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 …

(9)

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.

(10)

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, …}

(11)

Bahasa sebagai

Alat Komunikasi

(12)
(13)
(14)

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

(15)

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.

(16)

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

(17)

Penggolongan Tingkat / Tipe

Bahasa [1]

z Pada tahun 1959, Noam Chomsky menggolongkan bahasa

(18)

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

(19)

Penggolongan Tingkat / Tipe

Bahasa [3]

Bahasa Mesin Automata Batasan Produksi

Context Sensitive / Tipe 1

Linier Bounded Automata |α| <= |β|

Unrestricted / Phase Structure / Natural Language / Tipe 0

(20)

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

(21)

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

(22)

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.

(23)

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

(24)

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

(25)

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 | λ

(26)

Studi Kasus dan Diskusi [2]

z

4.

<sentence> Æ <subject> <predicate> <subject> Æ <noun>

<noun> Æ jhon | mary

<predicate> Æ <intransitive verb>

<predicate> Æ <transitive verb> <object> <object> Æ <noun>

<intransitive verb> Æ skates <transitive verb> Ælikes

(27)

Tugas :

(28)

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.

Utdirartatmo, Firrar “Teknik Kompilasi”, J&J

Referensi

Dokumen terkait