• Tidak ada hasil yang ditemukan

Pemrograman Berorientasi Objek <PBO>

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "Pemrograman Berorientasi Objek <PBO>"

Copied!
23
0
0

Teks penuh

(1)

MATERI PERKULIAHAN

TEKNIK KOMPILASI

Ken Kinanti Purnamasari

4

ANALISIS SINTAKSIS / Parser

(2)

Analisis Sintaksis / Parsing

Tahapan kompilasi yang memeriksa urutan

kemunculan token.

(3)

Grammar

Berdasarkan rule dibagi 4 (Noam Chomsky) : 3 – Reguler Grammar

2 – Context-Free Grammar

1 – Context-Sensitive Grammar 0 – Unrestricted Grammar

(4)

Grammar

G = { V

n

, V

t

, P , S } dimana S

V

n

Vn = non terminal Vt = terminal

P = aturan / produksi S = simbol awal

(5)

Grammar

Sebuah string diterima oleh grammar, jika simbol awal dapat diturunkan dengan

menggunakan 0 atau lebih rule sehingga menghasilkan string tersebut,

dimana string ⊆ (Vt )*

(6)

Notasi

Ruas kiri diturunkan menjadi ruas kanan dengan:

NOTASI BIASA ( ) : tepat 1 rule

NOTASI CLOSER ( * ) : 0/lebih rule NOTASI POSITIVE CLOSER ( + ) : 1/lebih rule

(7)

Notasi BNF

(Backus-Naur Form)

Grammar

1. <S> ::= a <A>

<B> d

2. <S> ::= a <A>

d

3. <S> ::= a <B>

4. <A>::= b 5. <A>::= c

6. <B> ::= ccd 7. <B> ::= ddc

Notasi

G = ( Vn, Vt, P, S ) G = ({S,A,B},

{a,b,c,d}, P, S)

(8)

Apakah benar ? 1. <S>

a<A>d

2. <S> abd 3. <S> * <S>

4. <S> * abd 5. <S> *

a<A>d

6. <S> + abd Grammar

1. <S> ::= a <A>

<B> d

2. <S> ::= a <A>

d

3. <S> ::= a <B>

4. <A>::= b 5. <A>::= c

6. <B> ::= ccd 7. <B> ::= ddc

Notasi BNF

(Backus-Naur Form)

(9)

Apakah accd diterima

?

YA

<S>

rule 3

a<B>

rule 6

accd

Grammar

1. <S> ::= a <A>

<B> d

2. <S> ::= a <A>

d

3. <S> ::= a <B>

4. <A>::= b 5. <A>::= c

6. <B> ::= ccd 7. <B> ::= ddc

Notasi BNF

(Backus-Naur Form)

(10)

Grammar

1. <S> ::= a <A>

<B> d

2. <S> ::= a <A>

d

3. <S> ::= a <B>

4. <A>::= b 5. <A>::= c

6. <B> ::= ccd 7. <B> ::= ddc

<S> rule 1 a<A><B>d

rule 5

ac<B>d

rule 7

acddcd Apakah acddcd diterima

?

Notasi BNF

(Backus-Naur Form)

(11)

Left Most Derivation

Mengutamakan penurunan nonterminal di sebelah KIRI.

Grammar

1. <program> ::= begin <stmt_list> end

.

2. <stmt_list> ::= <stmt> | <stmt> ;

<stmt_list>

3. <stmt> ::= <var> := <expression>

4. <var> ::= A | B | C

5. <expression> ::= <var> + <var> | <var> - <var> | <var>

(12)

Left Most Derivation

G = ( {program, stmt_list, stmt, var, expression},

{begin, end., ;, :=, A, B, C, +, -}, P, program )

(13)

Left Most Derivation

Grammar

1. <program> ::= begin <stmt_list> end.

2. <stmt_list> ::= <stmt> | <stmt> ;

<stmt_list>

3. <stmt> ::= <var> := <expression>

4. <var> ::= A | B | C

5. <expression> ::= <var> + <var> | <var> - <var> | <var>

Apakah begin A := B + C; B := C end. diterima

?

(14)

Pohon Sintaks

Merupakan suatu graf terhubung tidak sirkuler, yang memiliki satu simpul (node / akar)

dan memiliki lintasan

ke setiap simpul akhir (daun).

(15)

Pohon Sintaks

Simbol awal  menjadi akar

Simbol terminal  menjadi daun

<program>

Begin <stmt_list> end.

<stmt> ; <stmt_list>

<var> := <expression> <stmt>

A <var> + <var> <var> :=

<expression>

B C B

<var>

C

(16)

Ambigous Grammar

Kondisi ketika suatu string dieksekusi dengan grammar yang sama,

menghasilkan pohon sintaks yang berbeda.

 hasil eksekusi nya akan berbeda.

(17)

Grammar

Berdasarkan rule dibagi 4 (Noam Chomsky) : 3 – Reguler Grammar

2 – Context-Free Grammar

1 – Context-Sensitive Grammar 0 – Unrestricted Grammar

(18)

Diagram Sintaks

: Simbol non terminal : Simbol terminal

: Diagram pertama yang dibuat

: Arah

b A

Simbol awal

(19)

Grammar ke Diagram Sintaks

RUAS KIRI  menjadi JUDUL diagram RUAS KANAN  menjadi diagram

<A> ::= a <B> c | <D> <C> d menjadi

A

a B

C

c

d

D

(20)

Grammar ke Diagram Sintaks

<B> ::= ab | a <B>

menjadi

B

a b

B

(21)

LATIHAN

Buatlah DIAGRAM SINTAKS dari grammar berikut !

<program> ::= begin <stmt_list> end

.

<stmt_list> ::= <stmt> | <stmt> ;

<stmt_list>

<stmt> ::= <var> := <expression>

<var> ::= A | B | C

<expression> ::= <var> + <var> | <var> - <var> | <var>

(22)

Tugas Perorangan

(print di HVS A4)

Buatlah Grammar untuk bahasa C atau Pascal dalam notasi BNF, lengkap dengan Diagram Sintaks-nya!

(minimal 10 aturan) Catatan :

Paling lambat dikumpulkan via KM pada H-1 perkuliahan selanjutnya.

(23)

REFERENSI . . .

Firrar U., Teknik Kompilasi, J&J Learning Yogyakarta, 2001

Alfred v. a. & ullman J.D., Compilers Principles Technique and Tools, Addison Wesley, 1988

Referensi

Dokumen terkait

Scholars suggest that when a customer experiences a high level of brand trust, the customer simultaneously experiences higher brand satisfaction Ercis et al., 2012; Kurniawan and

Safe Spaces for Women in Revolutionary and Post-Revolutionary Egypt Language Editing, Layout, and Typesetting Willem Oliver  [email protected] Editorial Peer Reviewers for