Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pengantar Teknik Kompilasi

Presentasi serupa


Presentasi berjudul: "Pengantar Teknik Kompilasi"— Transcript presentasi:

1 Pengantar Teknik Kompilasi
Konsep dan Notasi Bahasa

2 Bahasa dan Sintaks Bahasa: Si kucing kecil menendang bola besar
The little cat kicks a big ball for i := start to finish do A[i] := B[i]*sin(i/pi*16)

3 Bahasa dan Sintaks Dalam bahasa pemrograman, kalimat dikenal sebagai ekspresi, dan kata sebagai token Kata terdiri atas beberapa karakter, kelompok karakter yang membentuk sebuah token dinamakan lexeme untuk token tersebut Setiap token yang dihasilkan, disimpan dalam tabel simbol Derivasi adalah sebuah proses dimana suatu himpunan produksi akan diturunkan/dipilah- pilah dengan melakukan sederetan produksi sehingga membentuk untai terminal

4 Bahasa dan Sintaks Kalimat yang well formed selalu tersusun atas subjek yang diikuti predikat kalimat = subjek predikat S = A B A = “a” | “b” B = “c” | “d” L = {ac, ad, bc, bd}

5 Bahasa dan Sintaks Tata bahasa (grammar) adalah sekumpulan dari himpunan variabel-variabel, simbol terminal, simbol non-terminal, simbol awal yang dibatasi oleh aturan produksi Aturan produksi adalah pusat dari tata bahasa yang menspesifikasikan bagaimana suatu tata bahasa melakukan transformasi suatu string ke bentuk lainnya

6 Bahasa dan Sintaks Sebuah produksi dapat dilambangkan sebagai   , artinya: dalam sebuah derivasi dapat dilakukan penggantian simbol  dengan simbol  Simbol  dalam produksi berbentuk    disebut ruas kiri produksi sedangkan simbol  disebut ruas kanan produksi

7 Bahasa dan Sintaks S  A A  a | aA L = {a, aa, aaa, aaaa, …}
Jika w adalah sebuah string maka panjang string dinyatakan sebagai w dan didefinisikan sebagai cacahan (banyaknya) simbol yang menyusun string tersebut, sebagai contoh, jika w = abcb maka w= 4 String hampa adalah sebuah string dengan nol buah simbol, dinyatakan dengan simbol  (atau ^) sehingga = 0

8 Bahasa dan Sintaks <program>  BEGIN <Statement-list> END <Statement-list>  <statement> | <statement>; <statement-list> <statement>  <var> := <expression> <Expression>  <term> | <term><op1> <expression> <term>  <factor> | <factor> <op2> <term> <factor>  <var> | <constant> <var>  A | B | … | Z <op1>  + | - | = <op2>  ^ | * | / <constant>  <real_number> | <integer_part> <real_number>  <integer_part> . <fraction> <integer_part>  <digit> | <integer_part> < digit> <fraction>  <digit> | <digit> <fraction> <digit>  0 | 1 | … | 9

9 Bahasa dan Sintaks BEGIN A := 1; B := A + 2 END

10 Hirarki Chomsky Tahun 1956, Noam Chomsky melakukan penggolongan bahasa menjadi 4 tingkat Tahun 1959, John Backus memperkenalkan notasi formal baru untuk sintaks bahasa yang lebih spesifik Tahun 1960, Peter Naur merevisi sintaks Backus yang kemudian dikenal dengan BNF (Backus-Naur Form)

11 Hirarki Chomsky Grammar G didefinisikan sebagai pasangan 4 tupel: VN, VT, S, dan Q, dan dituliskan sebagai G(VN, VT, S, Q), dimana: VT: himpunan simbol-simbol terminal (atau himpunan token-token, atau alfabet) VN: himpunan simbol-simbol non terminal S  V: simbol awal (atau simbol start) Q: himpunan produksi

12 Hirarki Chomsky Tipe 0 Juga dikenal dengan Unrestricted Grammar
,   (VTVN)*, > 0 Tidak ada batasan pada aturan produksi Abc  dE

13 Hirarki Chomsky Tipe 1 Juga dikenal dengan Context Sensitive Grammar
,   (VTVN)*, 0 <    Panjang string ruas kiri harus lebih kecil atau sama dengan ruas kanan Ab  DeF CD  eF

14 Hirarki Chomsky Tipe 2 Juga dikenal dengan Context Free Grammar
  V,   (VTVN)* Ruas kiri haruslah tepat satu simbol variabel B  CDeFg D  BcDe

15 Hirarki Chomsky Tipe 3 Juga dikenal dengan Regular Grammar
  V,   {VT, VTVN} atau   V,   {VT, VNVT} Ruas kanan hanya memiliki maksimal 1 simbol non terminal A  e A  efg A  efgH B  D B  De

16 Hirarki Chomsky Unrestricted Context Sensitive Regular Context free

17 Mesin Pengenal Bahasa/Otomata
Hirarki Chomsky Grammar Mesin Pengenal Bahasa/Otomata Tipe 0 Mesin Turing Tipe 1 Linear Bounded Automata (LBA) Tipe 2 Push Down Automata (PDA) Tipe 3 Finite State Automata (FSA); mencakup Deterministic Finite Automata (DFA) dan Non-deterministic Finite Automata (NFA)

18 Hirarki Chomsky Simbol E tidak boleh berada pada ruas kiri
misal E  Abd Aturan produksi yang ruas kirinya hanya memuat simbol terminal saja misal : a  bd atau ab  bd

19 Notasi BNF Aturan produksi dapat juga dinyatakan dengan notasi BNF
BNF menggunakan abstraksi untuk struktur sintaks ::= identik dengan simbol  | sama dengan atau < > pengapit simbol non terminal { } pengulangan dari 0 sampai n kali

20 Notasi BNF E  T | T + E | T - E T  a menjadi

21 Diagram Sintaks Alat bantu (tools) dalam pembuatan parser/analisis sintaksis Persegi panjang untuk simbol non terminal Lingkaran untuk simbol terminal T + - E

22 Diagram Sintaks <Block> ::= BEGIN <statement> {SEMICOL <statement>} END BEGIN Statement END ;


Download ppt "Pengantar Teknik Kompilasi"

Presentasi serupa


Iklan oleh Google