Teknik Kompilasi II

52
Teknik Kompilasi II 1/52 Ernastuti & Sulistyo TEKNIK KOMPILASI Ernastuti & Sulistyo P

Transcript of Teknik Kompilasi II

Page 1: Teknik Kompilasi II

Teknik Kompilasi II

1/52Ernastuti & Sulistyo

TEKNIK KOMPILASI

Ernastuti & Sulistyo P

Page 2: Teknik Kompilasi II

Teknik Kompilasi II

2/52Ernastuti & Sulistyo

MATERI

Page 3: Teknik Kompilasi II

Teknik Kompilasi II

3/52Ernastuti & Sulistyo

Pendahuluan

Tujuan Pembelajaran :

1. Mahasiswa memahami cara kerja serta proses yang terjadi pada sebuah Compiler

2. Mahasiswa memahami konsep pembuatan sebuah Compiler

3. Mahasiswa mengetahui bagaimana sebuah bahasa pemrograman dapat diterjemahkanoleh mesin.

Metari Pembelajaran

1. Bentuk-bentuk karakter dan kelas Grammar.

2. Ekspresi Regular dan Automata

3. Analisa Leksikal sebagai tahap awal kompilasi

4. Analisa Sintaks, bentuk-bentuk derivasi serta implementasi parsing.

5. Analisa Semantik dan tahapan Sintesa.

6. Penanganan kesalahan kompilasi dan fungsi tabel informasi.

Page 4: Teknik Kompilasi II

Teknik Kompilasi II

4/52Ernastuti & Sulistyo

1. Bahasa Pemrograman

BahasaPemrograman

Bahasamesin

BahasaAssembly

BahasaTingkat tinggi

BahasaProblem Oriented

Page 5: Teknik Kompilasi II

Teknik Kompilasi II

5/52Ernastuti & Sulistyo

Bahasa mesin merupakan bentukterendah dari bahasa komputer.

Instruksi direpresentasikan dalamkode numerik.

Bahasa Assembly merupakan bentuksimbolik dari bahasa mesin. Kode

misalnya ADD, MUL, dsb

Bahasa tingkat tinggi(user oriented) lebih banyakmemberikan fungsi kontrol

program, kalang, block, danprosedur.

Bahasa problem oriented sering juga dimasukkan sebagai

bahasa tingkat tinggi,misalnya SQL, Myob, dsb.

Program Language

Page 6: Teknik Kompilasi II

Teknik Kompilasi II

6/52Ernastuti & Sulistyo

2. Translator

Translator melakukan pengubahan source code / source program kedalam target code / object code

Interpreter dan Compiler termasuk dalam kategori translator.

Translator

Interpreter

Compiler

Tidak membangkitkan object code

Source code dan data diproses bersamaan

Contoh, BASICA, SPSS, DBASE III

Source Code adalah bahasa tingkat tinggi.

Object Code adalah bahasa mesin atau assembly

Source code dan data diproses tidak bersamaan

Contoh, PASCAL, C

Assembler

Source Code adalah bahasa Assembly

Object Code adalah bahasa mesin

Contoh, Turbo Assembler

Page 7: Teknik Kompilasi II

Teknik Kompilasi II

7/52Ernastuti & Sulistyo

Interpreter

AnalisaLeksikal

AnalisaSintaks

Intermediate Program Interpretasi

PengelolaanTabel

ProgramSumber

PenangananKesalahan

HasilOperasi

Page 8: Teknik Kompilasi II

Teknik Kompilasi II

8/52Ernastuti & Sulistyo

Assembler

• Source Code adalah bahasa Assembler, Object Code adalah bahasa mesin

• Object Code dapat berupa file object (.OBJ), file .EXE, atau file .COM

• Contoh : Turbo Assembler (dari IBM) dan Macro Assembler (dari Microsoft)

SourceCode

Object CodeAssemblerFile

TargetLingker

.ASM .OBJ .EXE / .COM

Proses Sebuah Kompilasi padaBahasa Assembler

Page 9: Teknik Kompilasi II

Teknik Kompilasi II

9/52Ernastuti & Sulistyo

Compiler

Compiler

Definisi : Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulisDalam suatu bahasa sumber (source language) dan menterjemahkannya kedalam suatubahasa sasaran (target language)

Proses kompilasi dapat digambarkan melalui sebuah blok diagram sebagai berikut :

Program sumber Bahasa sasaran

Pesan-pesan kesalahan(error messages)

Proses Kompilasi dikelompokkan kedalam dua kelompok besar :1. Analisa : Program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (Intermediate

Representation )2. Sintesa : Membangun program sasaran yang diinginkan dari bentuk antara

Page 10: Teknik Kompilasi II

Teknik Kompilasi II

10/52Ernastuti & Sulistyo

PenganalisaLeksikal

(scanner)

PenganalisaSintaks(parser)

PenganalisaSemantik

PembangkitKode antara

Pembentukkode

Pengoptimalkode

ProgramSumber

ProgramSumber

ProgramSasaranProgramSasaran

TABELSIMBOLTABEL

SIMBOL

ANALISA SINTESA

Bagan pokok proses kompilasi

Blok Diagram

Page 11: Teknik Kompilasi II

Teknik Kompilasi II

11/52Ernastuti & Sulistyo

1. Program Sumber ditulis dalam bahasa sumber, misal Pascal, Assembler, dsb

2. Program Sasaran dapat berupa bahasa pemrograman lain atau bahasa mesin pada

suatu komputer

3. Scanner : Memecah program sumber menjadi besaran leksik/token

4. Parser : Memeriksa kebenaran dan urutan kemunculan token

5. Penganalisa semantik : Melakukan analisa semantik, biasanya dalam realisasi akan

digabungkan Dengan intermediate code generator (bagian yang berfungsi

membangkitkan kode antara)6. Pembentuk Kode : Membangkitkan kode objek

7. Pengoptimal Kode : Memperkecil hasil dan mempercepat proses

8. Tabel : Menyimpan semua informasi yang berhubungan dengan proses kompilasi

Keterangan

Page 12: Teknik Kompilasi II

Teknik Kompilasi II

12/52Ernastuti & Sulistyo

SourceCode 1

SourceCode 2

SourceCode n

ObjectCode 1

ObjectCode 2

ObjectCode n

Compiler 1

Compiler 2

Compiler n

Lingker Executable

Library Object Code

• Pembentukan file Executable berdasar dari beberapa Source Code

• Source Code dapat terdiri dari satu atau lebih behasa pemrograman.

Page 13: Teknik Kompilasi II

Teknik Kompilasi II

13/52Ernastuti & Sulistyo

Pembuatan Compiler

Pembuatan kompilator dapat dilakukan dengan :

1. Bahasa Mesin

Tingkat kesulitannya tinggi, bahkan hampir mustahil dilakukan

2. Bahasa Assembly

Bahasa Assembly bisa dan biasa digunakan sebagai tahap awal pada proses pembuatansebuah kompilator

3. Bahasa Tingkat Tinggi lain pada ,mesin yang sama

Proses pembuatan kopilator akan lebih mudah

4. Bahasa tingkat tinggi yang sama pada mesin yang berbeda

Misal, pembuatan kompilator C untuk DOS, berdasar C pada UNIX

5. Bootstrap

Pembuatan kompilator secara bertingkat.

Page 14: Teknik Kompilasi II

Teknik Kompilasi II

14/52Ernastuti & Sulistyo

Jenis Translator: ASSEMBLER

Page 15: Teknik Kompilasi II

Teknik Kompilasi II

15/52Ernastuti & Sulistyo

Jenis Translator: COMPILER

Page 16: Teknik Kompilasi II

Teknik Kompilasi II

16/52Ernastuti & Sulistyo

Jenis Translator: Interpreter

Page 17: Teknik Kompilasi II

Teknik Kompilasi II

17/52Ernastuti & Sulistyo

Page 18: Teknik Kompilasi II

Teknik Kompilasi II

18/52Ernastuti & Sulistyo

Page 19: Teknik Kompilasi II

Teknik Kompilasi II

19/52Ernastuti & Sulistyo

Lexical Analysis

Page 20: Teknik Kompilasi II

Teknik Kompilasi II

20/52Ernastuti & Sulistyo

Lexical Analysis

Page 21: Teknik Kompilasi II

Teknik Kompilasi II

21/52Ernastuti & Sulistyo

Lexical Analysis

Page 22: Teknik Kompilasi II

Teknik Kompilasi II

22/52Ernastuti & Sulistyo

Lexical Analysis

Page 23: Teknik Kompilasi II

Teknik Kompilasi II

23/52Ernastuti & Sulistyo

Lexical Analysis

Page 24: Teknik Kompilasi II

Teknik Kompilasi II

24/52Ernastuti & Sulistyo

Page 25: Teknik Kompilasi II

Teknik Kompilasi II

25/52Ernastuti & Sulistyo

Lexical Analysis

Page 26: Teknik Kompilasi II

Teknik Kompilasi II

26/52Ernastuti & Sulistyo

Syntax Analysis

Page 27: Teknik Kompilasi II

Teknik Kompilasi II

27/52Ernastuti & Sulistyo

Tugas dari Syntax Analizer adalah:

Page 28: Teknik Kompilasi II

Teknik Kompilasi II

28/52Ernastuti & Sulistyo

Statement: (A+B)*(C+D)

Page 29: Teknik Kompilasi II

Teknik Kompilasi II

29/52Ernastuti & Sulistyo

Syntax Tree

Page 30: Teknik Kompilasi II

Teknik Kompilasi II

30/52Ernastuti & Sulistyo

Penurunan untuk menghasilkanstring aabbb

Page 31: Teknik Kompilasi II

Teknik Kompilasi II

31/52Ernastuti & Sulistyo

Page 32: Teknik Kompilasi II

Teknik Kompilasi II

32/52Ernastuti & Sulistyo

Parsing atau Proses Penurunan

Page 33: Teknik Kompilasi II

Teknik Kompilasi II

33/52Ernastuti & Sulistyo

Page 34: Teknik Kompilasi II

Teknik Kompilasi II

34/52Ernastuti & Sulistyo

Metode Parsing

Page 35: Teknik Kompilasi II

Teknik Kompilasi II

35/52Ernastuti & Sulistyo

Parsing digolongkan menjadi :

Page 36: Teknik Kompilasi II

Teknik Kompilasi II

36/52Ernastuti & Sulistyo

Parsing: BRUTE FORCE

Page 37: Teknik Kompilasi II

Teknik Kompilasi II

37/52Ernastuti & Sulistyo

Parsing: BRUTE FORCE

Page 38: Teknik Kompilasi II

Teknik Kompilasi II

38/52Ernastuti & Sulistyo

Page 39: Teknik Kompilasi II

Teknik Kompilasi II

39/52Ernastuti & Sulistyo

Kelemahan metode BRUTE FORCE

Page 40: Teknik Kompilasi II

Teknik Kompilasi II

40/52Ernastuti & Sulistyo

Page 41: Teknik Kompilasi II

Teknik Kompilasi II

41/52Ernastuti & Sulistyo

Page 42: Teknik Kompilasi II

Teknik Kompilasi II

42/52Ernastuti & Sulistyo

Page 43: Teknik Kompilasi II

Teknik Kompilasi II

43/52Ernastuti & Sulistyo

Page 44: Teknik Kompilasi II

Teknik Kompilasi II

44/52Ernastuti & Sulistyo

Page 45: Teknik Kompilasi II

Teknik Kompilasi II

45/52Ernastuti & Sulistyo

Page 46: Teknik Kompilasi II

Teknik Kompilasi II

46/52Ernastuti & Sulistyo

Page 47: Teknik Kompilasi II

Teknik Kompilasi II

47/52Ernastuti & Sulistyo

Page 48: Teknik Kompilasi II

Teknik Kompilasi II

48/52Ernastuti & Sulistyo

Page 49: Teknik Kompilasi II

Teknik Kompilasi II

49/52Ernastuti & Sulistyo

Page 50: Teknik Kompilasi II

Teknik Kompilasi II

50/52Ernastuti & Sulistyo

Page 51: Teknik Kompilasi II

Teknik Kompilasi II

51/52Ernastuti & Sulistyo

Parsing: RECURSIVE DESCENT PARSER

Page 52: Teknik Kompilasi II

Teknik Kompilasi II

52/52Ernastuti & Sulistyo

• Lanjut ke TEKNIK KOMPILASI III. ppt