Bahasa Otomata 1
-
Upload
gogol-dwi-santang -
Category
Documents
-
view
64 -
download
8
description
Transcript of Bahasa Otomata 1
Pengantar Otomata
Pendahuluan
Referensi
Evaluasi
2/1/2016 2
Otomata adalah MODEL.
Model dari sistem apapun yang akan kita komputasikan.
Tidak ada bidang apapun dalam teknologi informasi yang tidak terkait dengan
teori otomata.
Semua bentuk sistem, diskrit, kontinu, bahkan hibrida (gabungan event diskrit dan
kontinu dalam satu sistem) dapat dimodelkan oleh teori otomata.
Sementara, Kompilasi adalah ilmu yang mempelajari bagaimana kita dapat
merancang & membangun bahasa pemrograman.
Kompilasi merupakan bidang yang memanfaatkan teori otomata ini.
2/1/2016 3
Teori otomata adalah studi tentang peralatan atau “mesin” komputasi abstrak, yang dapat didefinisikan secara matematis.
Tujuan utama adalah mendefinisikan:
◦ apa yang bisa dilakukan oleh komputer dan apa yang tidak
◦ bagaimana komputasi dilakukan
Tipe paling sederhana dari mesin abstrak adalah finite automaton atau finite state machine.
Prinsip yang mendasari mesin ini adalah sistem pada setiap saat berada dalam salah satu dari sejumlah state berhingga dan bergerak antar state-state tersebut dalam merespon sinyal input individual.
2/1/2016 4
Komputasi menjadi isu penting karena mempelajari bagaimana kita dapat merancang mesin yang mampu melakukan proses-proses intelektual (yang mulanya hanya dapat dilakukan manusia) Namun dalam merancang seringkali kita terkendala dengan berbagai macam batasan. Tetapi apakah benar jika batasan batasan (yang dimiliki komputer) pada dasarnya disebabkan oleh kelemahan programmer (manusia)? bukan batasan intrinsik yang dimiliki mesin/komputer ?! Jika Ya, maka kita berharap agar batasan-batasan tersebut dapat terreduksi melalui pengembangan teori komputasi.
2/1/2016 5
Sub bidang apapun dalam ilmu informatika pasti memiliki 2 komponen :
1. Ide/gagasan dirupakan ke dalam bentuk MODEL KOMPUTASI
Beberapa disiplin ilmu yang diadopsi :
Neuron Nets Finite Automata
Sistem Logika Formal Proof Methods
Sistem Tata Bahasa Psycho-Linguistic
2/1/2016 6
1. Apakah arti bahasa itu ?
2. Bagaimana manusia mengembangkan bahasa ?
3. Bagaimana manusia memahami bahasa ?
4. Bagaimana manusia mengajarkan bahasa ke anak-anaknya ?
5. Bagaimana cara menyatakan gagasan ?
6. Bagaimana manusia membangun kalimat dari gagasan yang
ada dalam pikirannya ?
2. Teknik rekayasa untuk mengimplementasikan model ke dalam sebuah bentuk sistem yang terkomputasi (programming/coding)
Noam Chomsky, membuat model matematis untuk mendeskripsikan bahasa
sekaligus menjawab pertanyaan tentang psycho-linguistic
membuat perangkat formal untuk memodelkan properti
bahasa (disebut Grammar)
McCulloch & Pitts, merancang Finite Automata untuk memodelkan neuron
nets
Stephen Kleene, menemukan model representasi lain dari automata melalui
Regular Expression
Alan Turing, menemukan model untuk mengidentifikasi apakah sebuah
permasalahan dapat dikomputasi Mesin Turing
2/1/2016 7
Open Question :
Perbedaan antara bahasa manusia dan bahasa
komputer adalah kita sampai sekarang belum
mengetahui bagaimana cara kita mengartikan
bahasa? (sementara kita dapat mengetahui
secara pasti cara komputer mengartikan bahasa)
Memberikan fondasi teori komputasi: ◦ Decidability/Computability
What can a computer do at all?
◦ Tractability/Complexity
What can a computer do efficiently?
Konsep bahasa secara formal: ◦ Syntax
◦ Grammar
◦ Parsing
Teknik Parsing/Compiler
Regular expression (regex) e.g., Searching/Information retrieval
Pengenalan Bahasa Alami
Simulasi komputasi (dengan automata)
Set theory
Relations and functions
Recursive definitions
Strings and languages
Proofs
Group of objects represented as a unit
May contain any type of object: numbers, symbols, other sets,… ◦ Set membership:
◦ Non-membership:
◦ Subset:
Proper subset
◦ Empty set:
◦ Infinite set contains infinitely many elements
E.g., set of integers {…-2, -1, 0, 1, 2,…}
If X is a set, the notations |X| and card(X) both
refer to the number of elements in X.
Determine the union (), intersection (),
difference (-), complement, and power set P(X) =
2X of any given sets.
Prove the equality of sets X and Y: show every
element of X is an element of Y and vice versa
(i.e., show that X Y and Y X to show X = Y.)
Cartesian product builds a set consisting of ordered pairs
of elements from two or more existing sets.
X Y = {[x, y] | x X and y Y}
A binary relation on sets X and Y is a subset of X Y.
An n-ary relation on sets X1, X2, ..., Xn is a subset of
X1 X2 ... Xn
A function from a set X to a set Y is a mapping of
elements of X to elements of Y such that each
element of X maps to exactly one element of Y.
f : X Y X is the domain of f.
The range of f : X Y is the set {y Y | y = f (x) for
some x X}.
A total function f from X to Y is a binary relation
on
X Y such that i. For each x X there is a y Y such that [x, y] f.
ii. If [x, y] f and [x, z] f, then y = z.
f : X Y is one-to-one if each element of
X maps to a distinct element in the
range.
f : X Y is onto if the range is the entire
set Y.
Model Komputasi Awal :
2/1/2016 16
CPU Memori
CPU
Memori Sementara
Memori MasukanMemori Keluaran
Memori Program
Model Komputasi Sekarang :
Bagaimana proses komputasi untuk :
f(x) = x + x + x
2/1/2016 17
2/1/2016 18
CPU
Memori Sementara
Memori MasukanMemori Keluaran
Memori Program
hitung x + x
hitung 2x + x
CPU
Memori Sementara
Memori Masukan
misal, x = 3
Memori Keluaran
Memori Program
hitung x + x
hitung 2x + x
CPU
Memori Sementara
z = 3 + 3 = 6
f(x) = z + 3 = 9
Memori Masukan
misal, x = 3
Memori Keluaran
Memori Program
hitung x + x
hitung 2x + x
CPU
Memori Sementara
z = 3 + 3 = 6
f(x) = z + 3 = 9
Memori Masukan
misal, x = 3
Memori Keluaran
f(x) = 9
Memori Program
hitung x + x
hitung 2x + x
1) 3)
2) 4)
3 model mesin komputasi yang akan kita pelajari dalam otomata :
2/1/2016 19
1. Finite Automata (FA)
(sejauh ini) telah dimanfaatkan untuk merancang lexical analyzer, aplikasi editor teks, pengenalan pola, fault tolerant system, dll
2. Pushdown Automata (PDA)
(sejauh ini) telah dimanfaatkan untuk mengenali bahasa yang berstruktur context- free grammar, kamus data, query, script, parsing, dll
3. Turing Machine (TM)
mesin turing dapat dimanfaatkan untuk mengidentifikasi ketidakmungkinan penulisan sebuah program komputer. Sejauh ini kita dapat meyakini bahwa jika suatu persoalan tidak dapat dimodelkan oleh mesin turing, maka persoalan tersebut tidak akan mungkin dapat diselesaikan secara komputatif oleh mesin komputasi apapun!
Hariyanto, Bambang, Teori Bahasa, Otomata, dan Komputasi serta Terapannya, Informatika, Bandung, 2004
Kelly, Dean, Otomata Dan Bahasa-Bahasa Formal : Sebuah Pengantar, PT Prenhallindo, Jakarta, 1999
Utdirartatmo, Firrar, Teori Bahasa Dan Otomata, J & J Learning, Yogyakarta, 2001
Utdirartatmo Firrar, Teknik Kompilasi, J & J Learning, Yogyakarta, 2001
2/1/2016 20
Xavier, Eugene S.P. Theory of Automata, Formal Languange and Computation, New Age International Publishing, 2005
Cohen, Daniel I.A., Introduction to Computer Theory, John Wiley & Sons, 1990
UTS : 25%
UAS : 25%
TUGAS : 50%
2/1/2016 21