Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Procedures, Functions and Methods

Presentasi serupa


Presentasi berjudul: "Procedures, Functions and Methods"— Transcript presentasi:

1 Procedures, Functions and Methods

2 REVIEW Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah unit terkecil komponen bahasa yang tidak bisa dipisah-pisahkan lagi. Kalimat-kalimat : ‘Seekor kucing memakan seekor tikus.’ ; ‘Budi menendang sebuah bola.’ atau ‘A cat eats a mouse’ ; ‘Budi kick a ball.’ atau ‘if a2 < 9.0 then b2 := a2+a3;’ ; ‘for i := start to finish do A[i] := B[i]*sin(i*pi/16.0).’ Note: Dalam bahasa pemrograman kalimat lebih dikenal sebagai ekspresi sedangkan kata sebagai token.

3 REVIEW 1.Spesifikasi leksikal, misalnya setiap kata harus tersusun atas huruf mati dan huruf hidup yang disusun bergantian, atau setiap token harus dimulai dengan huruf dan selanjutnya boleh diikuti oleh huruf atau angka, 2.Spesifikasi sintaks, misalnya setiap kalimat mengikuti pola subyek-predikat-obyek atau ekspresi for_to_do mengikuti pola for-identifier-:=-identifier-to-identifier-do-ekspresi.

4 REVIEW 3.Aturan-aturan semantik, misalnya kata yang mendahului kata kerja haruslah kata benda yang menggambarkan sesuatu yang hidup dan berkaki, atau operasi perkalian hanya bisa dilakukan antara dua operand dengan tipe yang sama.

5 Scope (Batasan) Alphabet ∑ : himpunan karakter huruf, angka dan karakter khusus String : urutan terbatas dari karakter dalam alphabet ∑, termasuk juga empty ε. Language: himpunan string tertutup pada operasi konkatinasi dan union. Kleene Closure (L*): empty atau lebih konkatinasi dari L. Positif Closure (L ) : 1 atau lebih konkatinasi dari L

6 Ekspresi Regular ER merupakan cara formal untuk menggambarkan pola lexim-lexim/token-token. ER mengikuti operasi yang terjadi pada alphabet. Misal r dan s adalah ER maka: ER: r|s L(r)U L(s) ER: r.s L(r).L(s) ER: r*  (L(r))* ER: r  (L(r))

7 Ekspresi Regular Aturan aljabar bagi konkatinasi: Komutatif : r |s = s|r Asosiatif : r(s|t)= (r|s)|t Konkatinasi Asosiatif: (rs)|t = r|(st) Konkatinasi Distributif:r(s|t) = rs | rt ,atau (s|t)r = sr| tr Identitas : ε.r = r atau r. ε=r Relasi * dan ε : r =(r| ε)* Idempoten : r** = r* r =r.r* Kelas karakter : [abc] =a|b|c untuk a,b,cЄ∑ atau [a-z] = a| … |z

8 Aturan Produksi Dalam spesifikasi leksikal umumnya digunakan grammar regular (GR) dalam bentuk ekspresi regular (ER). Contoh pola token identifier ditentukan oleh grammar regular berikut : I aAbA...zAab...z, AaAbA...zA0A1A...9Aab... z01...9 yang ekuivalen dengan ekspresi regular berikut : I = (ab...z)( ab...z01...9)* = huruf(hurufangka)*

9 Token Recognition ER mengefisienkan pengenal token pada FSA
ER dibangun mulai dari diagram transisi, ER dalam Automata diturunkan sebagai alat penggerak dalam menspesifikasi bahasa. ER NDFA e-move NDFA tanpa e-move DFA

10 Bottom-up Parsing Disebut juga teknik mengurangi(reduce) dengan parser yang membentuk sebuah Token melalui simbol yaitu : Repeat: -Identifikasi- urutan tereduksi: non-terminal tidak dibangun tetapi semua anak yang dibangun. -Reduksi - membangun non-terminal dan memperbarui stack Until (melakukan reduksi sampai simbol start)

11 Bangun sebuah pohon parser untuk sebuah input string, mulai dari daun memparser ke atas sampai ke akar. Mengurangi simbol dari string w ke state awal S. SaABe AAbc | b B d Proses w=‘abbcde’ Reduksi Parser buttom up: abbcde aAbcde aAde aABe S Penurunan Terkanan: SaABeaAdeaAbcdeabbcde

12 Masalah Ambigu dari Grammar
Contoh: EE+E E(E) Eid Dari contoh diatas mempunyai perbedaan derivatif(penurunan) terkanan string yang sama id+id*id E id dan EE+E menangani E=E+id

13 Bottom-up Parsing 1 + (2) + (3) E + (2) + (3) E + (E) + (3) E + (3) E

14 Batasan Aturan Produksi
Bahasa Mesin Otomata Batasan Aturan Produksi Regular/Tipe 3 Finite State Automata (FSA) meliputi Deterministic Finite Automata (DFA) & Non Deterministic Finite Automata (NFA)  Adalah sebuah simbol variabel.  Maksimal memiliki sebuah simbol variabel yang bila ada terletak di posisi paling kanan. Bebas Konteks / Tipe 2 Push Down Automata (PDA)  berupa sebuah simbol variabel. Context Sensitive / Tipe 1 Linier Bounded Automata    ≤    Unrestricted / Phase Structure / Natural Language / Tipe 0 Mesin Turing Tidak ada batasan

15 Aturan Produksi merupakan pusat dari tata bahasa, yang menspesifikasikan bagaimana suatu tata bahasa melakukan transformasi suatu string ke bentuk lainnya. Melalui aturan produksi dapat didefinisikan suatu bahasa yang berhubungan dengan tata bahasa tersebut. Aturan produksi dinyatakan dalam bentuk :    Bisa dibaca :  menghasilkan , atau  menurunkan 

16 SIMBOL : Simbol Terminal biasanya dinyatakan dengan huruf kecil
misalnya : ‘a’, ’b’, ’c’ Simbol Non Terminal/Variabel biasa dinyatakan dengan Huruf besar misalnya : ‘A’, ‘B’, ‘C’

17 Diagram Keadaan Diagram keadaan (State Transition Diagram) digunakan untuk mendapatkan token (token adalah simbol terminal pada teori bahasa) yaitu melakukan analisis leksikal terhadap program sumber. Misalkan suatu bahasa memiliki himpunan simbol terminal/token (t_PLUS, t_MIN, t_ID, t_INT).

18 Contoh : VAR jumlah : integer VAR dan Integer : Keyword Jumlah : sebuah nama yang dideklarasikan sendiri oleh pemrogram Token t_ID harus diawali dengan karakter huruf (A-Z, a-z) dan bisa diikuti digit (0-9) atau huruf Token t_INT harus diawali digit dan bisa diikuti dengan digit. Blank merupakan bagian program sumber yang diabaikan (dilewati) seperti spasi.

19 Dalam spesifikasi sintaks biasanya digunakan context free grammar (CFG). Sebagai contoh ekspresi if-then E adalah : E  if L then L  IOA I = huruf(hurufangka)* O  <=><=>= A 01...9

20 Scanner Scanner diimplementasikan dengan Automata Hingga Deterministik (AHD/FSA) . Siklus transformasi : GR  ER  AHN  AHD  GR. Contoh: scanner (yaitu AHD) untuk mengenali identifier adalah : 1 huruf 2 Huruf/angka

21 Membaca program sumber
an Penunjuk Karakter type Text_Pos = record {posisi penunjuk karakter} Row_Numb : word; {baris ke-, bisa ribuan baris/program_sumber} Char_Numb : byte; {karakter ke-, maksimum 255 karakter/baris} end; var Now_Pos : Text_Pos; {posisi sekarang} Line : string; {baris yang sedang diproses} End_of_line : byte; {posisi akhir baris yang sedang diproses}

22 procedure Next_Character(var Ft : text); {baca karakter berikut pada program_sumber} begin with Now_Pos do {coba tebak, apa itu perintah with ... do ?} if Char_Numb = End_of_line then List_Line; {menampilkan kembali baris yang telah dibaca, beserta errornya} Next_Line(Ft); {membaca baris berikutnya} Row_Numb := Row_Numb + 1; Char_Numb := 1; end else Char_Numb := Char_Numb + 1; character := Line[Char_Numb]; end;

23 procedure List_Line; begin write{Now_Pos.Row_Numb : 3, ‘ ‘); writeln(Line); List_Error; {menampilkan kesalahan-kesalahan yang terjadi pada suatu baris} End; procedure Next_Line(Ft : text); readln(Ft, Line); End_of_line := length(Line) + 1: Line := Line + #32; {karakter spasi} end;

24 Aturan Translasi Contoh aturan translasi (translation rule) untuk beberapa ekspresi regular (ER) atau token. token Aturan translasi token Aturan translasi . {Current_Token(1,1)} = {Current_Token(15,1)} , {Current_Token(2,1)} <> {Current_Token(15,2)} ; {Current_Token(3,1)} < {Current_Token(15,3)} : {Current_Token(4,1)} <= {Current_Token(15,4)} := {Current_Token(12,1)} > {Current_Token(15,5)} + {Current_Token(13,1)} >= {Current_Token(15,6)} - {Current_Token(13,2)} identifier {Current_Token(27,Id)} * {Current_Token(14,1)} (+-)angka {Current_Token(28,IN)} / {Current_Token(14,2)} (+-)angka .angka {Current_Token(29,RN)}

25 Current_Token(tipe,nilai) adalah procedure yang memberikan spesifikasi kepada sebuah token yang baru saja ditemukan. Argumen tipe adalah kelompok token . Argumen nilai merupakan nilai dari token tersebut. Tipe = 0 ditetapkan bagi token yang tidak dikenal.

26 DFA dari ER dan Tabel Transisi

27

28 Backus Naur Form Salah satu cara formal untuk mendefinisikan suatu bahasa formal atau CFG. BNF memiliki banyak variasi yang disesuaikan kebutuhan pemakai. Salah satunya gabungan operasi + dan * dalam Ekspresi Regular.

29 NOTASI BNF Beberapa simbol notasi BNF (Backus Naur Form/Backus Norm Form) : ::= Identik dengan simbol  pada aturan produksi Sama dengan simbol serupa pada aturan produksi <> Mengapit simbol variabel/non terminal { } Pengulangan 0 sampai n kali

30 Notasi yang terdapat pada diagram sintaks :
Diagram sintaks merupakan alat bantu dalam pembentukan parser/analisis sintaksis. Notasi yang terdapat pada diagram sintaks : Empat persegi panjang melambangkan simbol variabel/non terminal. Bulatan melambangkan simbol terminal.

31 Diagram Sintaks Merupakan cara untuk merepresentasikan sintak atau token dalam bentuk gambar. Bentuk dari sintak diagram adalah kotak untuk menampilkan elemen, elips untuk menampilkan karakter atau himpunan karakter, serta panah untuk literal.

32 Literal adalah rangkaian karakter yang mendefinisikan tipe data dasar, ada 3 macam:
a. String: dimulai dan diakhiri oleh ASCII 39 dan ASCII 34 atau ASCII 96 b. Integer: dimulai karakter ASCII 45 atau ASCII 43 dan diikuti satu atau lebih karakter digit + Digit - Sintaks Diagram integer Token

33 Contoh Diagram Sintaks
If-statment if Condition Then statement End-if ; Else if else statement Condition Else-if Then statement

34

35 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"

36 Aturan Penulisan EBNF expression = term , {"+" , term}; term = factor , {"*" , factor}; f actor = constant | variable | "(" , expression , ")"; variable = "x" | "y" | "z"; constant = digit , {digit}; digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";

37 SELESAI……


Download ppt "Procedures, Functions and Methods"

Presentasi serupa


Iklan oleh Google