Dosen Pengampu :
Budiman, S.kom, M.kom
Disusun Oleh :
Rendra Eka Saputra (172355201007)
UNIVERSITAS DARUL’ULUM
JOMBANG
2020
Otomata
Otomata adalah mesin abstrak yang menggunakan model matematika, tetapi matematika
yang digunakan benar-benar berbeda dibanding matematika klasik dan kalkulus. Model
yang digunakan adalah model mesin state (state machine model) atau model trnasisi state
(state transition model).
Memori Otomata
Otomata bermula sebelum komputer ada pada teori di bidang sistem logika matematika
atau formal, ilmuwan David Hilbert telah mencoba menciptakan algoritma umum untuk
pembuktian (seluruh) persoalan matematika secara otomatis yaitu mampu menentukan
salah benarnya sembarang prosisi matematika.
G�del membangun rumus di kalkulus predikat yang diterapkan pada bilangan bulat yang
memiliki pernyataan-pernyataan definisi yang tidak dapat dibuktikan maupun dibantah di
dalam sistem logika yang mungkin dibangun manusia.
Sekitar tahun 1950-an, Noam Chomsky menciptakan model matematika sebagai sarana
untuk mendeskripsikan bahasa serta menjawab pertanyaan-pertanyaan di atas. Saat ini
dimulai pendalaman bidang bahasa komputer.
Perbedaan antara bahasa komputer dan bahasa manusia adalah sampai sekarang belum
diketahuinya bagaimana cara manusia mengartikan bahasa, sementara dengan pasti dapat
mengartikan bahasa pada komputer.
Bahasa berisi semua string yang dapat dihasilkan menggunakan aturan-aturan grammar.
McCulloch dan Pitts mengemukakan Mesin Abstrak sederhana yaitu finite automata untuk
memodelkan neuron nets.
Finite automata juga digunakan untuk merancang switching circuit. Studi mengenai teori
otomata terkait bidang-bidang lain di ilmu komputer.
Kemudian ekivalensi antara finite automata dan ekspresi reguler (reguler expression)
dikemukakan Stephen Kleene. Sejak saat itu teori bahasa dikaitkan secara erat dengan teori
bahasa formal. ubungan teori otomata dan teori pengkodean (coding theory) juga banyak
diteliti.
Turing machine seperti komputer modern saat ini dapat mengolah (simbol-simbol di tape)
dan mengahasilkan keluaran (simbol-simbol yang berada di tapenya setelah berakhirnya
sebarisan pergerakkan) merupakan karya teoritis dari Alan Turing.
Karena banyak yang berperan pada pengembangannya, bidang teori ini diberi aneka ragam
nama yaitu:
- teori otomata (theory of automata)
- teori bahasa formal (theory of formal language)
- teori mesin turing (theory of Turing machine).
Teknik Kompilasi
TUJUAN
Mengetahui Penerapan konsep ilmu komputer pada perilaku komputer yaitu algoritma,
arsitektur komputer, stuktur data maupun penerapan teori bahasa dan automata
Jika source language adalah high level language, seperti cobol, pascal, fortran maka object
language adalah low-level language atau mesin language. Translator seperti ini disebut
COMPILER
Biasanya program yang dihasilkan compiler lebih cepat dari waktu pelaksanaan program
dengan interpreter.
Kalau compiler menghasilkan kode antara (misal object code) dan harus digabungkan /
dilink menjadi bentuk yang dapat dijalankan mesin / komputer (executable). Kalau
Interpreter biasanya tidak menghasilkan kode antara.
Kalau hendak menjalankan program hasil kompilasi bisa dilakukan tanpa kode sumber.
Kalau interpreter butuh kode sumber
Kalau dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan
dalam 2 tahap terpisah, yaitu parsing / pembuatan kode objek dan linking / penggabungan
kode objek dengan library. Kalau interpreter tidak ada proses terpisah.
Kalau compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai
macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau
interpreter tidak butuh linker.
Pada kompiler bisa dilakukan optimisasi / peningkatan kwalitas kode yang bisa dijalankan.
Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi
untuk sistem dengan banyak processor. Kalau interpreter susah / tidak bisa dioptimasikan
Penganalisa Leksikal
membaca program sumber, karakter demi karakter. Sederetan (satu atau lebih) karakter
dikelompokkan menjadi satu kesatuan mengacu kepada pola kesatuan kelompok karakter
(token) yang ditentukan dalam bahasa sumber. Kelompok karakter yang membentuk
sebuah token dinamakan lexeme untuk token tersebut. Setiap token yang dihasilkan
disimpan di dalam tabel simbol. Sederetan karakter yang tidak mengikuti pola token akan
dilaporkan sebagai token tak dikenal (unidentified token)
Penganalisa Sintaks
memeriksa kesesuaian pola deretan token dengan aturan sintaks yang ditentukan dalam
bahasa sumber. Sederetan token yang tidak mengikuti aturan sintaks akan dilaporkan
sebagai kesalahan sintaks (sintax error). Secara logika deretan token yang bersesuaian
dengan sintaks tertentu akan dinyatakan sebagai pohon parsing (parse tree)
Penganalisa Semantik
memeriksa token dan ekspresi dari batasan-batasan yang ditetapkan. Batasan-batasan
tersebut misalnya :
a. panjang maksimum token identifier adalah 8 karakter,
b. panjang maksimum ekspresi tunggal adalah 80 karakter,
c. nilai bilangan bulat adalah -32768 s/d 32767,
d. operasi aritmatika harus melibatkan operan-operan yang bertipe sama
Pengoptimal kode
melakukan optimasi (penghematan space dan waktu komputasi), jika mungkin, terhadap
kode antara
Pembuatan compiler
Bahasa mesin
-Sangat sukar dan sangat sedikit kemungkinannya untuk membuat compiler dengan bahasa
ini, karena manusia susah mempelajari bahasa mesin,
-Sangat tergantung pada mesin,
-Bahasa Mesin kemungkinan digunakan pada saat pembuatan Assembler
Assembly
-Hasil dari program mempunyai Ukuran yang relatif kecil
-Sulit dimengerti karena statement/perintahnya singkat-singkat, butuh usaha yang besar
untuk membuat
-Fasilitas yang dimiliki terbatas
-TASSKAF. Bahasa TASSKAF ini merupakan subset dari Java. Dapat disusun suatu
program ke byte code yang dapat dijalankan di Java Virtual Machine (JVM).
Pada site tersebut juga tersedia informasi materi kuliah dengan LEX, YACC
http://rw4.cs.uni-sb.de/~martin/COMP/TK/
-GENTLE. Gentle ini merupakan perangkat bantu (toolkit) modern untuk menulis
compiler dan mengimplemntasikannya pada bahasa tertentu. Perangkat bantu ini
mendukung semua proses translasi, dari definisi tree sintaks abstrak, pater matching, smart
traversal dan lain sebagainya. Toolkit ini telah digunakan secara luas di riest dan industri
.http://www.first.gmd.de/gentle/
POSTFIX :
20 a 30 x
21 b 31 z
22 > 32 :=
23 30 33
24 BZ
25 x
26 y
27 :=
28 BR
29 33
11 c 21 g
12 d 22 y
13 > 23 :=
14 21 24
15 BZ
16 g
17 y
18 :=
19 BR
20 24
3. b := 3
WHLE b < 5 DO
b := b + 3
jawab :
10 b 18 b
11 3 19 b
12 := 20 3
13 b 21 +
14 5 22 :=
15 < 23 13
16 25 24 BR
17 BZ 25
4. x := 2
WHLE x < 5 DO
x := x + 2
jawab :
10 x 18 x
11 2 19 x
12 := 20 2
13 x 21 +
14 5 22 :=
15 < 23 13
16 25 24 BR
17 BZ 25
TRIPLES NOTATION :
1. b := c * d + a / e
jawab :
1 *, c, d
2 /, a, e
3 +, (1), (2)
4 :=, b, (3)
2. f := b * c + d / e
jawab :
1 *, b, c
2 /, d, e
3 +, (1), (2)
4 :=, f, (3)
3. IF b < c THEN
b := d – e
ELSE
b := d + e
jawab :
1 <, b, c
2 BZ, (1), (6) bila kondisi 1 loncat ke 6
3 -, d, e
4 :=, b, (3)
5 BR, (8)
6 +, d, e
7 :=, b, (6)
8
4. IF y < z THEN
y := a – b
ELSE
y := a + b
jawab :
9 <, y, z
10 BZ, (9), (16) bila kondisi 9 loncat ke 16
11 -, a, b
12 :=, b, (11)
13 BR, (16)
14 +, d, e
15 :=, b, (14)
16
5. a := c + d * f / e
b:=d * f
jawab :
6. x := a + b * c / d
y:= b * c
jawab :
QUARDRUPLES NOTATION :
1 a := d * c + b / e
jawab :
1 *, d, c, t1
2 /, b, e, t2
3 +, t1, t2,a
2 b := x * y + d / e
jawab :
4 *, x, y, t1
5 /, d, e, t2
6 +, t1, t2, b
Quardruple :
1 (x+y)*(a+b)
Jawab :
1 +, x, y, t1
2 +, a, b, t2
3 *, t1, t1,t3
Code generator :
LDA x (isi x kedalam acumulator)
ADA y (isi accumulator dijumlahkan dengan y)
STO t1 (simpan accumulator ke t1)
LDA a
ADD b
STO t2
LDA t1
MUL t2
STO t3
LDA x
ADA y
STO t1
LDA a
ADD b
STO t2
2 (d+e)*(y+z)
Jawab :
1 +, d, e, t1
2 +, y, z, t2
3 *, t1, t1,t3
Code generator :
LDA d (isi d kedalam acumulator)
ADA e (isi accumulator dijumlahkan dengan e)
STO t1 (simpan accumulator ke t1)
LDA y
ADD z
STO t2
LDA t1
MUL t2
STO t3
LDA d
ADA e
STO t1
LDA y
ADD z
STO t2