Anda di halaman 1dari 15

Teknik Kompilasi

BY: MARIZA DEVEGA, ST., M.KOM


Referensi

Teori Bahasa dan Otomata, John E. Hopcroft dkk


(Edisi terjemahan, Edisi 2, 2007).
Teori Bahasa dan Otomata, Firrar Utdirartatmo
Introduction to Languges and The Theory of
Computation, John C. Martin.
An Introduction to Formal Language and Automata,
Peter Linz.
Pendahuluan
Teori Bahasa

Teori bahasa membicarakan bahasa formal (formal language),


terutama untuk kepentingan perancangan kompilator (compiler)
dan pemroses naskah (txt processor).
Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam
sebuah bahasa dibangkitkan oleh tata bahasa (Grammar) yang sama.
Sebuah bahasa formal bisa dibangkitkan oleh dua atau lebih tata
bahasa berbeda.
Dikatakan bahasa formal karena grammar diciptakan mendahului
pembangkitan setiap kalimatnya.
Bahasa natural/ manusia bersifat sebaliknya; grammar diciptakan
untuk meresmikan kata-kata yang hidup dimasayarakat. Dalam
pembicaraan selanjutnya “bahasa formal” akan disebut “bahasa” saja.
Pendahuluan
Otomata

Otomata adalah MODEL.


Model dari sistem apapun yang akan kita komputasikan.

Otomata adalah mesin abstrak yang dapat mengenali


(recognize), menerima (accept), atau
membangkitkan (generate) sebuah kalimat dalam
bahasa tertentu.
0 0

Gnp
1 Gjl

1
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:
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).
Pendahuluan

Noam Chomsky,  membuat model matematis untuk mendeskripsikan bahasa


sekaligus menjawab pertanyaan ttg 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
Pendahuluan

Model Komputasi Awal :

CPU Memori

Model Komputasi Sekarang :


Memori Sementara

Memori Keluaran CPU Memori Masukan

Memori Program
Pendahuluan

Bagaimana proses komputasi untuk :

f(x) = x + x + x
Pendahuluan

1)
Memori Sementara
3) Memori Sementara
z = 3 + 3 = 6
f(x) = z + 3 = 9

Memori Keluaran CPU Memori Masukan


Memori Masukan
Memori Keluaran CPU
misal, x = 3

Memori Program

hitung x + x Memori Program


hitung 2x + x
hitung x + x
hitung 2x + x

2) 4)
Memori Sementara
Memori Sementara
z = 3 + 3 = 6
f(x) = z + 3 = 9

Memori Masukan
Memori Keluaran CPU
misal, x = 3 Memori Keluaran Memori Masukan
CPU
f(x) = 9 misal, x = 3

Memori Program

hitung x + x Memori Program


hitung 2x + x
hitung x + x
hitung 2x + x
Pendahuluan
Beberapa pengertian dasar

Simbol : sebuah entitas abstrak (seperti halnya pengertian titik


dalam geometri). Sebuah huruf atau sebuah angka adalah simbol.
String adalah deretan terbatas (finate) simbol-simbol. Contoh: jika
a,b,dan c adalah tiga buah simbol maka abcb adalah sebuah string
yang dibangun dari tiga simbol tersebut.
Jika w adalah sebuah string makan panjang string dinyatakan
dengan |w| dan didefenisikan sebagai cacahan (banyaknya) simbol
yang menyusun string tersebut. Contoh: jika w=abcd maka |w|=4.
String hampa adalah sebuah string dengan nol buah simbol. String
hampa dinyatakan dengan simbol ℇ (atau ^) sehingga |ℇ|=0.
Alfabet adalah himpunan hingga (finate state) simbol-simbol.
Pendahuluan
Operasi Dasar String

Diberikan dua string : x = abc, dan y = 123


Prefik string w adalah string yang dihasilkan dari string w dengan

menghilangkan nol atau lebih simbol-simbol paling belakang dari string w
tersebut.
Contoh : abc, ab, a, dan ℇ adalah semua Prefix(x)
ProperPrefix string w adalah string yang dihasilkan dari string w dengan

menghilangkan satu atau lebih simbol-simbol paling belakang dari string w
tersebut.
Contoh : ab, a, dan ℇ adalah semua ProperPrefix(x)
Postfix (atau Sufix) string w adalah string yang dihasilkan dari string w

dengan menghilangkan nol atau lebih simbol-simbol paling depan dari string
w tersebut.
Contoh : abc, bc, c, dan ℇ adalah semua Postfix(x)
Cont..

 ProperPostfix (atau PoperSufix) string w adalah string yang


dihasilkan dari string w dengan menghilangkan satu atau
lebih simbol-simbol paling depan dari string w tersebut.
Contoh : bc, c, dan ℇ adalah semua ProperPostfix(x)
 Head string w adalah simbol paling depan dari string w.
Contoh : a adalah Head(x).
 Tail string w adalah string yang dihasilkan dari string w
dengan menghilangkan simbol paling depan dari string w
tersebut.
Contoh : bc adalah Tail(x).
Cont..

Substring string w adalah string yang dihasilkan dari string w dengan


menghilangkan nol atau lebih simbol-simbol paling depan dan/atau simbol-
simbol paling belakang dari string w tersebut.
Contoh : abc, ab, bc, a, b, c, dan ℇ adalah semua Substring(x)
ProperSubstring string w adalah string yang dihasilkan dari string w dengan
menghilangkan satu atau lebih simbol-simbol paling depan dan/atau simbol-
simbol paling belakang dari string w tersebut.
Contoh : ab, bc, a, b, c, dan ℇ adalah semua Substring(x)
Subsequence string w adalah string yang dihasilkan dari string w dengan
menghilangkan nol atau lebih simbol-simbol dari string w tersebut.
Contoh : abc, ab, bc, ac, a, b, c, dan ℇ adalah semua Subsequence(x).
ProperSubsequence string w adalah string yang dihasilkan dari string w
dengan menghilangkan satu atau lebih simbol-simbol dari string w tersebut.
Contoh : ab, bc, ac, a, b, c, dan ℇ adalah semua Subsequence(x)
Cont..

Concatenation adalah penyambungan dua buah


string. Operator concatenation adalah concate atau
tanpa lambang apapun.
Contoh : concate(xy) = xy = abc123
Alternation adalah pilihan satu di antara dua buah
string. Operator alternation adalah alternate atau |.
Contoh : alternate(xy) = x|y = abc atau 123
Kleene Closure : x* = ℇ|x|xx|xxx|… = ℇ|x|x2 |x3…
Positive Closure : x = x|xx|xxx|… = x|x2 |x3…
Tugas

Tentukan seluruh operasi dasar string, jika diberikan


dua string x=pqrs, dan y 1234.

Anda mungkin juga menyukai