/
Pengenalan Kompilasi & Klasifikasi Tatabahasa Formal menurut Chomsky Pengenalan Kompilasi & Klasifikasi Tatabahasa Formal menurut Chomsky

Pengenalan Kompilasi & Klasifikasi Tatabahasa Formal menurut Chomsky - PowerPoint Presentation

olivia-moreira
olivia-moreira . @olivia-moreira
Follow
366 views
Uploaded On 2018-12-18

Pengenalan Kompilasi & Klasifikasi Tatabahasa Formal menurut Chomsky - PPT Presentation

By KustantoSTMEng 5152013 Pengenalan Kompilasi pertemuan ke 2 1 Pengenalan Kompilasi pertemuan ke 2 2 Pendahuluan Tujuan Pembelajaran Mahasiswa memahami cara kerja serta proses yang terjadi pada sebuah Compiler ID: 743022

kompilasi bahasa code program bahasa kompilasi program code adalah kode dan mesin pengenalan penurunan pertemuan suatu proses sumber assembler

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Pengenalan Kompilasi & Klasifikasi T..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Pengenalan Kompilasi & Klasifikasi Tatabahasa Formal menurut Chomsky

ByKustanto,S.T.,M.Eng

5/15/2013

Pengenalan Kompilasi pertemuan ke 2

1Slide2

Pengenalan Kompilasi pertemuan ke 2

2

Pendahuluan

Tujuan Pembelajaran :

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

Mahasiswa memahami konsep pembuatan sebuah Compiler.

Mahasiswa mengetahui bagaimana sebuah bahasa pemrograman dapat diterjemahkan oleh mesin.Slide3

Pengenalan Kompilasi pertemuan ke 2

3

1. Bahasa Pemrograman

Bahasa

Pemrograman

Bahasa

mesin

Bahasa

Assembly

Bahasa

Tingkat tinggi

Bahasa

Problem OrientedSlide4

Pengenalan Kompilasi pertemuan ke 2

4

Bahasa mesin

merupakan bentuk terendah dari bahasa komputer.

Instruksi direpresentasikan dalam

kode numerik.

Bahasa Assembly

merupakan bentuk

simbolik dari bahasa mesin. Kode

misalnya ADD, MUL, dsb

Bahasa tingkat tinggi

(user oriented) lebih banyak memberikan fungsi kontrol program, block, dan prosedur.

Bahasa problem oriented

sering juga dimasukkan sebagai

bahasa tingkat tinggi,

misalnya SQL, Myob, dsb.

Program

LanguageSlide5

Pengenalan Kompilasi pertemuan ke 2

5

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.Slide6

Pengenalan Kompilasi pertemuan ke 2

6

Interpreter

Analisa

Leksikal

Analisa

Sintaks

Intermediate

Program

Interpretasi

Pengelolaan

Tabel

Program

Sumber

Penanganan

Kesalahan

Hasil

OperasiSlide7

Pengenalan Kompilasi pertemuan ke 2

7

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).

Source

Code

Object Code

Assembler

File

Target

Lingker

.ASM

.OBJ

.EXE / .COM

Proses Sebuah Kompilasi pada Bahasa AssemblerSlide8

Pengenalan Kompilasi pertemuan ke 2

8

Compiler

Compiler

Definisi : Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulis

Dalam suatu bahasa sumber (

source language

) dan menterjemahkannya kedalam suatu bahasa 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.Slide9

Pengenalan Kompilasi pertemuan ke 2

9

Penganalisa

Leksikal

(scanner)

Penganalisa

Sintaks

(parser)

Penganalisa

Semantik

Pembangkit

Kode antara

Pembentuk

kode

Pengoptimal

kode

Program

Sumber

Program

Sasaran

TABEL

SIMBOL

ANALISA

SINTESA

Bagan pokok proses kompilasi

Blok Diagram Slide10

10

Proses kompilasi dikelompokkan menjadi :

Analisa

: program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (

intermediate presentation

)

Sintesa

: membangun program sasaran yang

diinginkan dari bentuk antaraSlide11

11

Contoh skema penerjemaham suatu ekspresi dalam bahasa sumber, yaitu : position := initial + rate * 60

penganalisa semantik

Pembangkit

kode

pengoptimal kode

position := initial + rate * 60

penganalisa sintaks

(parser)

penganalisa leksikal

(scanner)

Id1 : = id2 + id3 * 60

id3

+

: =

id1

id2

*

60

+

: =

id1

id3

id2

*

intoreal

60

pembangkit

kode antara

temp1 := inttoreal(60)

temp2 := id3 * temp1

temp3 := id2 + temp2

id1 := temp3

temp1 := id3 * 60.0

id1 := id2 + temp1

MOVF id3. R2

MULF #60.0, R2

MOVF id2, R1

ADDF R2, R1

MOVF R1, id1Slide12

12

Keterangan:

id adalah token untuk identifier

. Tiga lexeme untuk token ini adalah position, initial, dan rate.

Penganalisa semantik secara logika membangkitkan pohon parse.

Penganalisa semantik mendeteksi

mismatch type.

Perbaikan dilakukan dengan memanggil

procedure

inttoreal yang mengkonversi integer ke real.

Quadruples dari :

temp2 := id3 * temp1

adalah

(*,id3,temp1,temp2),

id := temp 3 adalah (assign,temp3,-,id1), temp1:=inttoreal(60)

adalah (intoreal,60,-,temp1).Pembangkit kode dalam contoh ini menghasilkan kode dalam bahasa mesin.Slide13

Pengenalan Kompilasi pertemuan ke 2

13

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.

KeteranganSlide14

Konsep dan notasi bahasa

14

Unrestricted

Cotext Sensitive

Kontext free

regular

Hirarki Chomsky

Type

Grammar

Kelas Bahasa

Mesin Pengenal Bahasa

Unrestricted Grammar

(UG)/type-0

Unrestricted

Mesin Turing (

Turing Machine

), TM

Context Sensitive Grammar

(CSG)/type-1

Context Sensitive

Linear Bounded Automaton

, LBA

Context Free Gammar

(CFG)/type-2

Context Free

Automata Pushdown (

Pushdown Automata

), PDA

Regular Grammar

(RG)/type-3

Regular

Automata Hingga (

Finite Automata

)

Mesin Pengenal bahasa

Kelas

Bahasa

Catatan :

Pengenal bahasa adalah salah satu kemampuan mesin turing.

LBA adalah variasi dari Mesin Turing Nondeterministik.Slide15

CFG / Tata

Bahasa

Bebas

Konteks

Pada

tata

bahasa

bebas

konteks

tidak

terdapat pembatasan

hasil produksinya.

Batasan ruas

kiri adalah

sebuah

simbol variabel

.

Contoh

:

CFG

: B →

CDeFg

D

BcDe

Pada

bhs

regular,

bagian

yg

belum

terturunkan

tsb

selalu

terjadi

pd

suatu

ujung

.

Pada

bhs

bebas

konteks

/CFG

bisa

terdapat

lebih

banyak

bagian

yg

belum

terturunkan

itu

,

dan

bisa

terjadi

dimana

saja

.

Bhs

bebas

konteks

menjadi

dasar

dlm

pembentukan

suatu

parser /

proses

analisis

sintaksis

.Slide16

Tree :

suatu

graph terhubung

tidak

sirkuler

,

yg

memiliki

satu

simpul

(node) / vertex

disebut akar (root)

dan situ memiliki lintasan

setiap simpul.

Pohon penurunan

berguna

untuk menggambarkan

bagaimana memperoleh

suatu string (

untai

)

dgn

cara

menurunkan

simbol2

variabel

mjd

simbol2 terminal

sampai

tdk

ada

yg

belum

tergantikan

.

Misal

: Bhs

bebas

konteks

S → AB

A →

aA

| a

B →

bB

| bSlide17

Digambar

pohon penurunan

utk

untai

: ‘

aabbb

S

A

B

b

A

a

B

a

b

B

b

Simbol

awal

menjadi

root.

Setiap

kali

penurunan

dipilih

aturan

produksi

yg

menuju

ke

solusi

.

Bhs

bebas

konteks

S → AB

A →

aA

| a

B →

bB

| bSlide18

Proses

penurunan / parsing :

Penurunan

terkiri

/ leftmost derivation :

simbol

variabel

paling

kiri

yg

diperluas

terlebih

dulu.

Penurunan terkanan / rightmost derivation : simbol

variabel terkanan

yg diperluas

dulu.Slide19

CONTOH :

S →

aAS

| a

A →

SbA

|

ba

Untuk

memperoleh

untai

:

aabbaa

’Penurunan

terkiri : S → aAS →

aSbAS → aabAS → aabbaS

→ aabbaa

Penurunan

terkanan : S → aAS

→ aAa →

aSbAa

aSbbaa

aabbaa

S

a

A

S

S

b

A

a

a

a

bSlide20

Tugas

:

S →

aB

|

bA

A → a |

aS

|

bAA

B → b |

bS

|

aBB

Utk

untai ‘aaabbabbba

’Slide21

AMBIGUITAS

Terjadi

bila

terdapat

lebih

dari

1

pohon

penurunan

yg

berbeda

utk memperolah suatu

untai.

Contoh :S → A | B

A → a

B → a

Utk

untai : ‘a’ terdapat 2

cara

penurunan

:

S → A → a

S → B → a Slide22

S →

SbS

| ScS | a

Utk

untai

: ‘abaca’

terdapat

2

cara

penurunan

:

S →

SbS

→ abS →

abScS → abacS → abacaS →

ScS → SbScS →

abScS → abacS → abaca

S

S

b

S

a

S

c

S

a

a

S

S

c

S

S

b

S

a

a

aSlide23

Tugas

:

S →

aAd

|

aB

A → b | c

B →

ccd

|

ddc

Utk

memperoleh

untai

: ‘accd’

Buktikan bahwa

tata bahasa

bebas konteks

berikut

ambigu :S →

aB | bA

A → a |

aS

|

bAA

B → b |

bS

|

aBB

Untuk

memperoleh

untai

: ‘

aabbab

’Slide24

Selesai

Pengenalan Kompilasi pertemuan ke 2

24

5/15/2013