TEKNIK KOMPILASI -...

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

Transcript of TEKNIK KOMPILASI -...

Teknik Kompilasi II

1/52Ernastuti & Sulistyo

TEKNIK KOMPILASI

Ernastuti & Sulistyo P

Teknik Kompilasi II

2/52Ernastuti & Sulistyo

MATERI

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.

Teknik Kompilasi II

4/52Ernastuti & Sulistyo

1. Bahasa Pemrograman

BahasaPemrograman

Bahasamesin

BahasaAssembly

BahasaTingkat tinggi

BahasaProblem Oriented

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

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

Teknik Kompilasi II

7/52Ernastuti & Sulistyo

Interpreter

AnalisaLeksikal

AnalisaSintaks

Intermediate Program Interpretasi

PengelolaanTabel

ProgramSumber

PenangananKesalahan

HasilOperasi

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

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

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

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

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.

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.

Teknik Kompilasi II

14/52Ernastuti & Sulistyo

Jenis Translator: ASSEMBLER

Teknik Kompilasi II

15/52Ernastuti & Sulistyo

Jenis Translator: COMPILER

Teknik Kompilasi II

16/52Ernastuti & Sulistyo

Jenis Translator: Interpreter

Teknik Kompilasi II

17/52Ernastuti & Sulistyo

Teknik Kompilasi II

18/52Ernastuti & Sulistyo

Teknik Kompilasi II

19/52Ernastuti & Sulistyo

Lexical Analysis

Teknik Kompilasi II

20/52Ernastuti & Sulistyo

Lexical Analysis

Teknik Kompilasi II

21/52Ernastuti & Sulistyo

Lexical Analysis

Teknik Kompilasi II

22/52Ernastuti & Sulistyo

Lexical Analysis

Teknik Kompilasi II

23/52Ernastuti & Sulistyo

Lexical Analysis

Teknik Kompilasi II

24/52Ernastuti & Sulistyo

Teknik Kompilasi II

25/52Ernastuti & Sulistyo

Lexical Analysis

Teknik Kompilasi II

26/52Ernastuti & Sulistyo

Syntax Analysis

Teknik Kompilasi II

27/52Ernastuti & Sulistyo

Tugas dari Syntax Analizer adalah:

Teknik Kompilasi II

28/52Ernastuti & Sulistyo

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

Teknik Kompilasi II

29/52Ernastuti & Sulistyo

Syntax Tree

Teknik Kompilasi II

30/52Ernastuti & Sulistyo

Penurunan untuk menghasilkanstring aabbb

Teknik Kompilasi II

31/52Ernastuti & Sulistyo

Teknik Kompilasi II

32/52Ernastuti & Sulistyo

Parsing atau Proses Penurunan

Teknik Kompilasi II

33/52Ernastuti & Sulistyo

Teknik Kompilasi II

34/52Ernastuti & Sulistyo

Metode Parsing

Teknik Kompilasi II

35/52Ernastuti & Sulistyo

Parsing digolongkan menjadi :

Teknik Kompilasi II

36/52Ernastuti & Sulistyo

Parsing: BRUTE FORCE

Teknik Kompilasi II

37/52Ernastuti & Sulistyo

Parsing: BRUTE FORCE

Teknik Kompilasi II

38/52Ernastuti & Sulistyo

Teknik Kompilasi II

39/52Ernastuti & Sulistyo

Kelemahan metode BRUTE FORCE

Teknik Kompilasi II

40/52Ernastuti & Sulistyo

Teknik Kompilasi II

41/52Ernastuti & Sulistyo

Teknik Kompilasi II

42/52Ernastuti & Sulistyo

Teknik Kompilasi II

43/52Ernastuti & Sulistyo

Teknik Kompilasi II

44/52Ernastuti & Sulistyo

Teknik Kompilasi II

45/52Ernastuti & Sulistyo

Teknik Kompilasi II

46/52Ernastuti & Sulistyo

Teknik Kompilasi II

47/52Ernastuti & Sulistyo

Teknik Kompilasi II

48/52Ernastuti & Sulistyo

Teknik Kompilasi II

49/52Ernastuti & Sulistyo

Teknik Kompilasi II

50/52Ernastuti & Sulistyo

Teknik Kompilasi II

51/52Ernastuti & Sulistyo

Parsing: RECURSIVE DESCENT PARSER

Teknik Kompilasi II

52/52Ernastuti & Sulistyo

• Lanjut ke TEKNIK KOMPILASI III. ppt