1 / 37

Procedures, Functions and Methods

Procedures, Functions and Methods. 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 . ’ ;

ada
Download Presentation

Procedures, Functions and Methods

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procedures, Functions and Methods

  2. REVIEW Bahasaadalahkumpulankalimat. Kalimatadalahrangkaiankata. Kataadalah unit terkecilkomponenbahasa yang tidakbisadipisah-pisahkanlagi. Kalimat-kalimat : ‘Seekorkucingmemakanseekortikus.’; ‘Budi menendangsebuah 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: Dalambahasapemrogramankalimatlebihdikenalsebagaiekspresisedangkankatasebagaitoken.

  3. REVIEW 1.Spesifikasi leksikal, misalnyasetiapkataharustersusunatashurufmatidanhurufhidup yang disusunbergantian, atausetiap token harusdimulaidenganhurufdanselanjutnyabolehdiikutiolehhurufatauangka, 2.Spesifikasi sintaks, misalnyasetiapkalimatmengikutipolasubyek-predikat-obyekatauekspresifor_to_domengikutipola for-identifier-:=-identifier-to-identifier-do-ekspresi.

  4. REVIEW 3.Aturan-aturan semantik, misalnyakata yang mendahuluikatakerjaharuslahkatabenda yang menggambarkansesuatu yang hidupdanberkaki, atauoperasiperkalianhanyabisadilakukanantaradua operand dengantipe yang sama.

  5. Scope (Batasan) Alphabet ∑ : himpunankarakterhuruf, angkadankarakterkhusus String : urutanterbatasdarikarakterdalam alphabet ∑, termasukjuga empty ε. Language: himpunan string tertutuppadaoperasikonkatinasidan union. KleeneClosure (L*): empty ataulebihkonkatinasidari L. Positif Closure (L ) : 1 ataulebihkonkatinasidari L

  6. Ekspresi Regular ER merupakancara formal untukmenggambarkanpolalexim-lexim/token-token. ER mengikutioperasi yang terjadipada 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 Aturanaljabarbagikonkatinasi: Komutatif : r |s = s|r Asosiatif : r(s|t)= (r|s)|t KonkatinasiAsosiatif: (rs)|t = r|(st) KonkatinasiDistributif: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* Kelaskarakter : [abc] =a|b|cuntuka,b,cЄ∑atau [a-z] = a| … |z

  8. AturanProduksi Dalamspesifikasileksikalumumnyadigunakangrammar regular (GR) dalambentukekspresi regular (ER). Contohpola token identifier ditentukanolehgrammar regularberikut : • IaAbA...zAab...z, AaAbA...zA0A1A...9Aab... z01...9 yang ekuivalendenganekspresi regular berikut : • I = (ab...z)(ab...z01...9)* = huruf(hurufangka)*

  9. Token Recognition • ER mengefisienkanpengenal token pada FSA • ER dibangunmulaidari diagram transisi, ER dalam Automata diturunkansebagaialatpenggerakdalammenspesifikasibahasa. ER NDFA e-move NDFA tanpa e-move DFA

  10. Bottom-up Parsing Disebutjugateknikmengurangi(reduce) dengan parser yang membentuksebuah Token melaluisimbolyaitu : Repeat: -Identifikasi- urutan tereduksi: non-terminal tidak dibangun tetapisemua anak yang dibangun. -Reduksi - membangun non-terminal dan memperbarui stack Until(melakukanreduksisampaisimbol start)

  11. Bangunsebuahpohon parser untuksebuah input string, mulaidaridaunmemparserkeatassampaikeakar. Mengurangisimboldari string w ke state awal S. SaABe AAbc | b B d Proses w=‘abbcde’ ReduksiParser buttom up: abbcde aAbcde aAde aABe S PenurunanTerkanan: SaABeaAdeaAbcdeabbcde

  12. MasalahAmbigudariGrammar Contoh: EE+E E(E) Eid Dari contohdiatasmempunyaiperbedaanderivatif(penurunan) terkanan string yang samaid+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 E + (E) E E E E E 1 + ( 2 ) + 3 ( )

  14. AturanProduksimerupakanpusatdaritatabahasa, yang menspesifikasikanbagaimanasuatutatabahasamelakukantransformasisuatu string kebentuklainnya. • Melaluiaturanproduksidapatdidefinisikansuatubahasa yang berhubungandengantatabahasatersebut. • Aturanproduksidinyatakandalambentuk :    • Bisadibaca :  menghasilkan , atau  menurunkan 

  15. SIMBOL : • Simbol Terminal biasanyadinyatakandenganhurufkecil • misalnya : ‘a’, ’b’, ’c’ • Simbol Non Terminal/VariabelbiasadinyatakandenganHurufbesar • misalnya : ‘A’, ‘B’, ‘C’

  16. Diagram Keadaan • Diagram keadaan (State Transition Diagram) digunakanuntukmendapatkan token (token adalahsimbol terminal padateoribahasa) yaitumelakukananalisisleksikalterhadap program sumber. • Misalkansuatubahasamemilikihimpunansimbol terminal/token (t_PLUS, t_MIN, t_ID, t_INT).

  17. Contoh : VAR jumlah : integer • VAR dan Integer : Keyword • Jumlah : sebuahnama yang dideklarasikansendiriolehpemrogram • Token t_IDharusdiawalidengankarakterhuruf (A-Z, a-z) danbisadiikuti digit (0-9) atauhuruf • Token t_INTharusdiawali digit danbisadiikutidengan digit. • Blank merupakanbagian program sumber yang diabaikan (dilewati) sepertispasi.

  18. Dalamspesifikasisintaksbiasanyadigunakancontext free grammar (CFG). Sebagaicontohekspresiif-then E adalah : E if L then L  IOA I = huruf(hurufangka)* O  <=><=>= A01...9

  19. Scanner Scanner diimplementasikandenganAutomata HinggaDeterministik(AHD/FSA) . Siklustransformasi : GR  ER  AHN  AHD  GR. Contoh: scanner (yaitu AHD) untukmengenali identifier adalah : 1 2 huruf Huruf/angka

  20. Membaca program sumber Program Sumber PenunjukKarakter type Text_Pos = record {posisipenunjukkarakter} Row_Numb : word; {bariske-, bisaribuanbaris/program_sumber} Char_Numb : byte; {karakterke-, maksimum 255 karakter/baris} end; varNow_Pos : Text_Pos; {posisisekarang} Line : string; {baris yang sedangdiproses} End_of_line : byte; {posisiakhirbaris yang sedangdiproses}

  21. procedure Next_Character(var Ft : text); {bacakarakterberikut padaprogram_sumber} begin with Now_Pos do {cobatebak, apaituperintah with ... do ?} begin if Char_Numb = End_of_line then begin List_Line; {menampilkankembalibaris yang telahdibaca, besertaerrornya} Next_Line(Ft); {membacabarisberikutnya} Row_Numb := Row_Numb + 1; Char_Numb := 1; end else Char_Numb := Char_Numb + 1; character := Line[Char_Numb]; end; end;

  22. procedure List_Line; begin write{Now_Pos.Row_Numb : 3, ‘ ‘); writeln(Line); List_Error; {menampilkankesalahan-kesalahan yang terjadi padasuatubaris} End; procedure Next_Line(Ft : text); begin readln(Ft, Line); End_of_line := length(Line) + 1: Line := Line + #32; {karakterspasi} end;

  23. AturanTranslasi Contohaturantranslasi (translation rule) untukbeberapaekspresi regular (ER) atau token. token Aturantranslasi token Aturantranslasi . {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)}

  24. Current_Token(tipe,nilai) adalahprocedure yang memberikanspesifikasikepadasebuah token yang barusajaditemukan. • Argumentipeadalahkelompok token . • Argumennilaimerupakannilaidari token tersebut. Tipe = 0 ditetapkanbagitoken yang tidakdikenal.

  25. DFA dari ER danTabelTransisi

  26. Backus Naur Form • Salahsatucara formal untukmendefinisikansuatubahasa formal atau CFG. BNF memilikibanyakvariasi yang disesuaikankebutuhanpemakai. Salahsatunyagabunganoperasi + dan * dalamEkspresi Regular.

  27. NOTASI BNF Beberapasimbolnotasi BNF (Backus Naur Form/Backus Norm Form) :

  28. DIAGRAM SINTAKS : • Diagram sintaksmerupakanalat bantu dalampembentukan parser/analisissintaksis. • Notasi yang terdapatpada diagram sintaks : • Empatpersegipanjangmelambangkansimbolvariabel/non terminal. • Bulatanmelambangkansimbol terminal.

  29. Diagram Sintaks • Merupakancarauntukmerepresentasikansintakatau token dalambentukgambar. Bentukdarisintak diagram adalahkotakuntukmenampilkanelemen, elipsuntukmenampilkankarakteratauhimpunankarakter, sertapanahuntuk literal.

  30. Literal adalahrangkaiankarakter yang mendefinisikantipe data dasar, ada 3 macam: a. String: dimulaidandiakhirioleh ASCII 39 dan ASCII 34 atau ASCII 96 b. Integer: dimulaikarakter ASCII 45 atau ASCII 43 dandiikutisatuataulebihkarakter digit Digit + - Sintaks Diagram integer Token

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

  32. AturanPenulisan 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"

  33. AturanPenulisan 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";

  34. SELESAI……

More Related