bab 1: pengantar teori bahasa dan...

12
10/09/2019 1 Prio Handoko, S.Kom., M.T.I. Program Studi Informatika Universitas Pembangunan Jaya BAB 1: Pengantar Teori bahasa dan Otomata

Upload: others

Post on 24-Jan-2020

35 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

1

Prio Handoko, S.Kom., M.T.I.Program Studi Informatika Universitas Pembangunan Jaya

BAB 1: Pengantar Teori bahasa dan Otomata

Page 2: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

2

Capaian Pembelajaran

• Mahasiswa memahami konsep Teori Bahasa dan Otomata

(Teknik Komputasi dan Teknik Kompilasi)

• Mahasiswa jenis-jenis translator (penterjemah)

• Mahasiswa memahami bahasa pemrograman dalam

pembuatan compiler

• Mahasiswa memahami proses dan tahapan kompilasi

Teori Bahasa dan Otamata | 3

Bab 1: Pendahuluan

Agenda

• Teori bahasa dan Otomata (Teori Komputasi dan Teknik Kompilasi)

• Translator

• Pembuatan Compiler

• Proses dan Tahapan Kompilasi

• Mengukur Mutu Compiler

Teori Bahasa dan Otamata | 4

Page 3: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

3

Teori Bahasa dan Otomata

• Teori Bahasa dan Otomata (TBO) merupakan gabungan dari teknik komputasi dan teknik kompilasi

• Teknik: metode atau cara

• Komputasi: proses/pengolahan data yang dilakukan oleh komputer.

• Teknik Komputasi:

“suatu metode/cara dalam melakukan proses/pengolahan data yang dilakukan oleh komputer.”

Teori Bahasa dan Otamata | 5

Teori Komputasi dan Teknik Kompilasi

• to compile...

“to translate a program written in high-level programming

language into machine programming language (low-level

programming language).”

• Teknik Kompilasi:

“suatu metode/cara dalam menggabungkan serta

menterjemahkan program sumber (source program/source

code) menjadi bentuk lain (machine language).:

Teori Bahasa dan Otamata | 6

Page 4: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

4

Teori Komputasi dan Teknik Kompilasi

Teori Bahasa dan Otamata | 7

Translator

• Translator:“suatu program yang mengambil input sebuah program yang ditulis pada satu bahasa pemrograman (source language) ke

dalam bahasa lain (the object on target language).”

• Mengapa dalam proses komputasi dibutuhkan translator?1. bahasa mesin adalah bentuk bahasa yang terendah pada

komputer;

2. bahasa mesin tidak lebih dari urutan bit 0 dan 1;

3. instruksi dalam bahasa mesin dapat dibentuk menjadi sebuah microcode; dan

4. user tidak memahami bahasa mesin

Teori Bahasa dan Otamata | 8

Page 5: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

5

Jenis Translator

1. Assembler, source code bahasa assembly, object codeadalah bahasa mesin.

Teori Bahasa dan Otamata | 9

assemblerobject code

*.exe*.asm

Jenis Translator

2. Compiler, source code bahasa high-level, object codeadalah bahasa mesin. Source code dan data diproses terpisah.

Teori Bahasa dan Otamata | 10

compiler

object code

outputexecution

data

sourcecode

Page 6: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

6

Jenis Translator

3. Interpreter, interpreter tidak menghasilkan bentuk object code, hasil translasinya dalam bentuk internal, dimana source code harus selalu ada.

Teori Bahasa dan Otamata | 11

outputinterpreterdata

object code

Pembuatan Compiler

• Bahasa Mesin

• sukar;

• tergantung pada jenis mesin (semakin baik semakin rumit); dan

• lebih besar kemungkinan digunakan saat pembuatan assembler

• Bahasa Rakitan (Assembly)

• hasil program memiliki ukuran yang sangat kecil;

• sulit dipahami karena perintahnya singkat-singkat;

• fasilitas terbatas.

Teori Bahasa dan Otamata | 12

Page 7: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

7

Pembuatan Compiler

• High-Level Language• bahasa yang lebih dikenal dan lebih dapat dipahami oleh manusia

karena statement (pernyataan) dibuat dalam bahasa yang mudah dimengerti oleh manusia, yaitu bahasa Inggris;

• memberikan fasilitas dan kemudahan yang lebih banyak bagi user;

• program mudah untuk diperbaiki dan dikoreksi (debug); dan

• tidak bergantung pada salah satu jenis mesin komputer dan masih membutuhkan translator.

• Bootstrap“Untuk membangun sesuatu yang besar maka dibuat dahulu bagian intinya” (Niklaus Wirth).

Teori Bahasa dan Otamata | 13

Pembuatan Compiler

Teori Bahasa dan Otamata | 14

Statement yang dibuat

oleh manusia pada

sebuah bahasa

pemrograman (source

language) dilihat

sebagai barisan bit 0

dan 1 oleh mesin

(machine language)

Page 8: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

8

Proses dan Tahapan Kompilasi

• Terbagi ke dalam 2 kelompok besar:

1. Analisa (Front End)

Melakukan dekomposisi program sumber (source code) menjadi bagian-bagian dasarnya (intermediate representation).

2. Sintesa (Back End)

Melakukan pembangkitan dan optimasi program objek

Teori Bahasa dan Otamata | 15

Tahapan Proses Kompilasi

Teori Bahasa dan Otamata | 16

Lexical

Analyzer

(Scanner)

Syntactic

Analyzer

(Parser)

Semantic

Analyzer

Intermmediate

Code

Generator

Intermmediate

CodeCode

Generator

ANALYSIS SYNTHESIS

Tabel Simbol

Object

Code

Code

Optimizer

Source

Code

Page 9: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

9

Proses dan Tahapan Kompilasi

1. Scanner

Memecah program sumber menjadi besaran leksikal/token

Contoh: Perhitungan aritmatika A + B

Teori Bahasa dan Otamata | 17

A + B

id1 id2+

Proses dan Tahapan Kompilasi

2. Parser

Memeriksa kebenaran dan urutan kemunculan token

Teori Bahasa dan Otamata | 18

id1 + id2

Id1 id2 +

Page 10: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

10

Proses dan Tahapan Kompilasi

3. Semantic Analyzer

Analisis yang membangkitkan kode antara (intermmediate form)

Teori Bahasa dan Otamata | 19

Id1 id2 +

( + , id1 , id2 , T1)

Proses dan Tahapan Kompilasi

4. Code Generator

Membangkitkan kode objek

Teori Bahasa dan Otamata | 20

( + , id1 , id2 ,T1)

LDA id1ADD id2STO T1

Page 11: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

11

Proses dan Tahapan Kompilasi

5. Code Optimizer

Memperkecil hasil dan mempercepat proses

Teori Bahasa dan Otamata | 21

LDA id1ADD id2STO T1

LDA id1ADD id2STO T1

Proses dan Tahapan Kompilasi

6. Pembuatan Object Code

Menuliskan dalam bahasa assembly

Teori Bahasa dan Otamata | 22

LDA id1ADD id2STO T1

MOV T1, id1ADD T1, id2

Page 12: BAB 1: Pengantar Teori bahasa dan Otomataocw.upj.ac.id/files/...INF305-TM1-Pengantar-Teori-Bahasa-dan-Otomata.pdf · BAB 1: Pengantar Teori bahasa dan Otomata. 10/09/2019 2 Capaian

10/09/2019

12

Mengukur Mutu Compiler

1. Kecepatan Waktu Proses

• Penulisan Algoritma Compiler

• Kompilator Compiler

2. Mutu Program Object

• Ditentukan oleh ukuran dan kecepatan eksekusi program object

3. Integrated Environment

• Fasilitas-fasilitas yang terintegrasi yang dimiliki oleh sebuah compiler

Teori Bahasa dan Otamata | 23

Until next Week…