Lompat ke konten Lompat ke sidebar Lompat ke footer

Lexical Analysis

Lexical Analisys atau Analisis Leksikal adalah analisis yang menguraikan source code menjadi unit-unit kecil yang mempunyai arti dan disebut sebagai TOKEN.


Contoh: 

for i:=1 to max do

x[i] :=0;


Penguraian ke dalam bentuk token disebun TOKENIZING.

Keyword        : for, to, do

Identifier        : i, max, x

Constants       : 1, 0

Operator        : :=

Puctuation     : ;

Brackets        : [ , ]


Tokenizing berguna untuk:

  • membuang command line
  • mengurai semua huruf besar/kecil menjadi bentuk yang seragam (terutama, untuk case intensitif seperti Pascal).


Tugas utama penganalisis Leksikal adalah memecah tiap baris source menjadi token-token.

  1. Membuang komentar
  2. Menyeragamkan hutuf kapital
  3. Membuang white space
  4. Menginterpretasi kompiler directive
  5. Berkomunikasi degngan symbol table (identifier - type - size)
  6. Membuat listing


Token dan Lexemes

Untuk keperluan parsing, identifier tidak dibedakan satu dengan lainnya atau operasi relasi tidak dibedakan antara >, <, >=, dan sebagainya. Pada saat parsing, bila ditemukan identifier (id), maka id tersebut akan dimasukkan dalam symbol table yang sama. Demikian juga untuk operasi relasi. Untuk kepentingan selanjutnya identifier-identifier tersebut perlu dibedakan satu sama lainnya. Demikian juga dengan operasi relasi, > harus dibedakan dengan <. Jadi dapat dikatakan bahwa token adalah kumpulan dari lexemes-lexemes. Token menyatakan suatu kelompok, misalnya kelompok identifier (id) atau kelompok operasi relasi (relop), sedangkan lexemes menjelaskan anggota-anggota dari token yang bersangkutan.

Contoh :

if distance >=rate * (end_time - start_time) then distance := maxdist; dipisahkan menjadi token dan lexemes berikut:

Token - Lexemes
Token - Lexemes

Parse menerima hasil dari lexical analizer dalam bentuk:

if id relop id * (id-id) then id :=id;

Tugas lain dari penganalisis leksikal adalah bila menemukan Id maka harus berhubungan dengan bagian pengendali symbol table. Bila id telah dideklrasikan typenya maka lexemes-nya akan disimpan pada symbol table di penganalisis semantic.