Anda di halaman 1dari 8

TEKNIK KOMPILASI

PERTEMUAN III
Analisa Sintaks (Parser)
Analisa Leksikal (Scanner)
Analisa leksikal (scanner) merupakan antarmuka antara kode
program sumber (source program) dan analisis sintaks (parser)
atau dalam pengertiannya adalah sebuah proses yang mendahului
parsing sebuah rangkaian karakter.

Scanner melakukan pemeriksaan karakter per karakter pada teks


masukan, memecah sumber program menjadi bagian bagian yang
disebut sebagai Token.

Proses parsing akan lebih mudah dilakukan bila inputnya sudah


berupa token.
Model dasar untuk membentuk suatu Analisis Leksikal adalah
Finite-State Automata. FSA dapat dengan mudah digunakan untuk
mengenali konstruksi Bahasa yang digambarkan dengan Bahasa
regular.
Analisa Leksikal (Scanner)

Token adalah level entias yang paling rendah dalam diagram sintaks

Jenis jenis token antara lain :

• Identifiers (contohnya adalah variable dan function names)


• Keywords (seperti while, if, function, dsb)
• Operators (seperti +,-,*,++,+,=, dsb)
• Literals (nilai konstanta seperti 27.3, “Hello”, dsb)
• Punctuation (pemisah/ pembatas pada program seperti ‘;’,’:’,’,’ dsb)
Analisa Leksikal (Scanner)

package HelloWorldApp;
public class TestJava {
public static void main (string[ ] args) {
System.out.println (“Hello, World”);
}
}

Variable
Identifiers Keywords Operators Literals Punctuation
HelloWorldApp Package, public, Hello World ;,{,},[],“,
TestJava class, string, spasi , enter
static, void, main,
args, println
Analisa Leksikal (Scanner)

PROGRAM Latihan (Pascal)


VAR x : INTEGER ;
BEGIN
x := x + 1 ;
END. { Latihan }

Variable
Identifiers Keywords Operators Literals Punctuation
Latihan PROGRAM :,:=,+ 1 ; , spasi , enter
x VAR
INTEGER
BEGIN
END
Analisa Leksikal (Scanner)

Fungsi Scanner :

• Melakukan pembacaan kode sumber dengan merunut karakter demi karakter


• Mengenali besaran leksikal
• Mentrasformasi menjadi sebuah token dan menentukan jenis tokennya
• Mengirim token
• Membuang blank dan komenter dalam program (spasi dan enter dsb tidak dilanjutkan ke proses
parsing)
• Menangani kesalahan
• Beberapa scanners memasukan symbol ke dalam table simbol
Analisa Leksikal (Scanner)

token
Source
Program
Lexical Analyzer Syntax Analyzer
get next
token

Anda mungkin juga menyukai