teknik kompilasi 4611413041 tugas4

4
Contoh Notasi BNF Pipit Riski S_4611413041 Teknik Kompilasi Beberapa simbol notasi BNF Konvensi/simbol Apa artinya ::= Setara dengan | ATAU X + Satu atau lebih X s. [X] X opsional. Opsional delimiters dilambangkan oleh []. {} Pengulangan 0 sampai n kali < > Mengapit symbol variable/non terminal , Penghubung Contoh pendefinisian kalimat legal: PRODUCTION <expression> → <operand><operator><operand> <operand> → A | B | C | D <operator> → + | - | / | * • Contoh : <PRINT statement> → <PRINT|PRINT expression > <expression > → <variable>|<variable>,|<variable>; <variable> → <letter> | <letter><digit> <letter> → A | B | C ...| Z | a | b | c | ... Z

Upload: pipit-riski-s

Post on 23-Dec-2015

245 views

Category:

Documents


12 download

DESCRIPTION

Notasi BNF

TRANSCRIPT

Page 1: Teknik Kompilasi 4611413041 Tugas4

Contoh Notasi BNFPipit Riski S_4611413041

Teknik Kompilasi Beberapa simbol notasi BNF

Konvensi/simbol Apa artinya

::= Setara dengan

| ATAU

X + Satu atau lebih X s.

[X] X opsional. Opsional delimiters dilambangkan oleh

[].

{} Pengulangan 0 sampai n kali

< > Mengapit symbol variable/non terminal

, Penghubung

Contoh pendefinisian kalimat legal: PRODUCTION

<expression> → <operand><operator><operand>

<operand> → A | B | C | D

<operator> → + | - | / | *

• Contoh :

<PRINT statement> → <PRINT|PRINT expression >

<expression > → <variable>|<variable>,|<variable>;

<variable> → <letter> | <letter><digit>

<letter> → A | B | C ...| Z | a | b | c | ... Z

<digit> → 0|1|2|3 ... 9

• Contoh :

PRINT A / PRINT A1 / PRINT 1A

Page 2: Teknik Kompilasi 4611413041 Tugas4

Contoh Notasi BNFPipit Riski S_4611413041

Teknik Kompilasi

Contoh Notasi BNF

Berikut merupakan grammar context free dinyatakan dalam notasi BNF (Backus Naur Form).

Lihat contoh grammar berikut (kita sebut ini grammar M) adalah:

<kalimat> ::= <katabenda> <katakerja> <katabenda>

<katabenda> ::= 'koala'|'KURSI'|'PISANG'

<katakerja> ::= 'MEMUKUL'|'MEMAKAN'|'MEMBUANG'

Semua kalimat ini valid menurut grammar di atas (atau dikatakan bahwa: kalimat-kalimat

berikut ini berada dalam bahasa yang didefinisikan oleh grammar M):

KOALA MEMAKAN KURSI

KOALA MEMAKAN PISANG

KOALA MEMUKUL KURSI

KOALA MEMUKUL KOALA

PISANG MEMAKAN KOALA

Lihat contoh lain berikut (kita sebut ini grammar N):

<kalimat> ::= <aksi>|<pernyataan>

<aksi> ::= <katabenda> <katakerja> <katabenda>

<pernyataan> ::= <katabenda> <adverb> <katasifat>

<katabenda> ::= 'KOALA'|'KURSI'|'PISANG'

<katakerja> ::= 'MEMUKUL'|'MEMAKAN'|'MEMBUANG'

<adverb> ::= 'SANGAT'|'AGAK'|''

<katasifat> ::= 'BESAR'|'KECIL'

Page 3: Teknik Kompilasi 4611413041 Tugas4

Contoh Notasi BNFPipit Riski S_4611413041

Teknik Kompilasi

Contoh kalimat untuk grammar tersebut:

KOALA MEMAKAN KURSI

KOALA AGAK BESAR

Perancangan Parser menggunakan BNF dan Diagram Sintaks

BNF dan Diagram Sintaks Kode sumber pada kompiler memerlukan BNF dan diagram

sintaks agar pembuat program mudah dalam membuat program. Adapun beberapa rancangan

BNF dari kompiler yang dibuat adalah sebagai berikut:

<simple_exp> ::= <term> { <add_operator> <term> }

<add_operator> ::= T_ADD | T_SUB

<term> ::= <signed_fact> { <mul_operator> <signed_fact> }

<signed fact> ::= <add_operator> <fact> | <fact>

<mul_operator> ::= T_MUL | T_DIV

<fact> ::= T_LPARENT <exp> T_RPARENT | T_NUMERIC

dimana:

T_ADD = ’+’

T_SUB = ’-‘

T_MUL = ’*’

T_DIV = ’/‘

T_LPARENT = ’(‘

T_RPARENT = ’)’

T_ANGKA = ’0’..’9’

Page 4: Teknik Kompilasi 4611413041 Tugas4

Contoh Notasi BNFPipit Riski S_4611413041

Teknik Kompilasi

Aturan Penulisan BNF

<expression> ::= <term> | <expression> "+" <term>

<term> ::= <factor> | <term> "*" <factor>

<factor> ::= <constant> | <variable> | "(" <expression> ")"

<variable> ::= "x" | "y" | "z"

<constant> ::= <digit> | <digit> <constant>

<digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"