1 / 11

Lexical Analyzer (Scanner)

Lexical Analyzer (Scanner). Sigit Widiyanto , ST., MMSi ., MSc. Lexical Analyzer. Lexical Analyzer = scanner, Syntax Analyzer, dan Intermediate Code merupakan fungsi Analisis dalam compiler, yang bertugas mendekomposisi program sumber menjadi bagian-bagian kecil

amber-bowen
Download Presentation

Lexical Analyzer (Scanner)

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. Lexical Analyzer (Scanner) SigitWidiyanto, ST., MMSi., MSc

  2. Lexical Analyzer • Lexical Analyzer = scanner, Syntax Analyzer, dan Intermediate Code merupakanfungsiAnalisisdalam compiler, yang bertugasmendekomposisi program sumbermenjadibagian-bagiankecil • Code generation dan Code optimization adalahmerupakanfungsi synthesis yang berfungsimelakukanpembangkitan / pembuatandanoptimasi program (object program) • Scanner adalahmengelompok-an program asal/sumbermenjadi token • Parser (mengurai) bertugasmemeriksakebenarandanurutandari token-token yang terbentukoleh scanner

  3. Lexical Analysis (scanner) - berhubungandenganbahasa • Mengidentifikasikansemuabesaran yang membuatsuatubahasa • Mentransformasikanke token-token • Menentukanjenisdari token-token • Menanganikesalahan • Menanganitabelsimbol • Scanner, didesignuntukmengenali - keyword, operator, identifier • Token : separates characters of the source language into group that logically belong together • Misalnya : konstanta, namavariabelataupun operator dan delimiter (atauseringdisebutmenjadibesaran lexical)

  4. Lexical Analysis ( Besaran leksikal ) • Identifier dapat berupa keyword atau nama kunci, seperti IF..ELSE, BEGIN..END (pada Pascal), INTEGER (pascal), INT, FLOAT (Bhs C) • Konstanta : Besaran yang berupa bilangan bulat (integer), bilangan pecahan (float/Real), boolean (true/false), karakter, string dan sebagainya • Operator; Operator arithmatika ( + - * / ), operator logika ( < = > ) • Delimiter; Berguna sebagai pemisah/pembatas, seperti kurung-buka, kurung -tutup, titik, koma, titik-dua, titik-koma, white-space • White Space: pemisah yang diabaikan oleh program, seperti enter, spasi, ganti baris, akhir file

  5. Lexical Analysis - Contoh Ada urutankarakter yang disebutdengan statement fahrenheit := 32 + celcius * 1.8 Makaakanditerjemahkankedalam token-token sepertidibawahini identifier fahrenheit operator  := integer  32 operator penjumlahan + Identifier celcius operator perkalian * real / float  1.8

  6. Latihan • BuatlahAutomata HinggaDeterministik I = huruf(hurufangka)* Ket: Gunakanangkasebagai state

  7. Lexical Analysis – Contoh 2 • Setiapbentukdaritoken akandi representasisebagaiangkadalambentuk internal, danangkanyaadalahunik • Misalnyanilai 1 untukvariabel, 2 untukkonstanta, 3 untuk label dan 4 untuk operator, dst • Contohinstruksi : • Kondisi : IF A > B THEN C = D; • Maka scanner akanmentransformasikankedalam token-token, sbb:

  8. Lexical Analysis – Contoh 2 • Kondisi 3 • : 26 • IF 20 • A 1 • > 15 • B 1 • THEN 21 • C 1 • D 1 • ; 27 • Token-token inisebagaiinputanuntuksyntax Analyser , token-token inibisaberbentukpasangan item. Dimana Item pertamamenunjukkanalamatataulokasidari token padatabelsimbol. Item keduaadalahrepresentasi internal dari token. Semua token direpresentasikandenganinformasi yang panjangnyatetap (konstan), suatualamat (address atau pointer) dansebuah integer (bilanganbulat)

  9. Contoh Lain

  10. DFA untukbeberapa ER

  11. TabelTransisi

More Related