--> Skip to main content

Fase-fase Compiler

Compilere yang memiliki peran dalam menterjemahkan High Level Language seperti bahasa Pemrograman bahasa C ke dalam bahasa mesin, memiliki beberapa fase :

  1. Analisis Lexical (Lexical Analysis)
  2. Analisis Syntax (Syntax Analysis)
  3. Analisis Semantic (Semantic Analysis)

Analisis Lexical

Tugas dari Analisis Lexical membaca input karakter dan menghasilkan output urutan token yang oleh parser digunakan untuk analisis sintaks seperti yang ditunjukkan gambar berikut:
Gambar.1 Mekanisme Kerja Analisis Lexical

Penjelasan dari gambar.1:

  • Lexical Analyzer merupakan fase pertama dari compiler
  • Input/Masukan dari Lexical Analyzer berupa source code
  • Analisis Lexical mengidentifikasi unit-unit lexical yang berbeda dalam suatu source code.
  • Berbagai Token atau Lexical class:
    • Identifier
    • Konstanta
    • Keyword
    • Operator
  • Contoh : sum =num1+num2. Maka statement tersebut akan dipetakan (mapping) oleh analisis lexical seperti yang  ditunjukkan oleh gambar.2  :

Gambar.2 Mapping Analisis Lexical Analyzer
(Sumber : http://www.c4learn.com/c-programming/syntax-analysis/)

Sehingga Lexical Analyzer akan menghasilkan tabel simbol sebagai berikut:


Tabel.1 Tabel Simbol Analisis Lexical
(Sumber : http://www.c4learn.com/c-programming/syntax-analysis/)
  • Lexical Analyzer disebut juga "Linear Phase"atau "Linear Analysis" atau Scanning
  • Token yang berdiri sendiri (individual token) disebut juga "Lexeme".
  • Output dari Lexical Analyzer ditransfer ke Analisis Syntax (Syntax Analysis).

Analisis Syntax

Pada fase Analisis Lexical, tabel simbol yang dihasilkan oleh compiler berisikan daftar lexim atau token. Analisis Syntax disebut juga dengan Analisis Hirarki atau Analisis Parsing. Dalam proses Analisis Syntax dikelompokkan token-token ke dalam "Gramatical Production" yang menghasilkan "Parse Tree".

Proses Parse Tree
Misal kita memiliki suatu statement seperti berikut:
                         sum = num1 + num2

Maka parse tree-nya diperlihatkan oleh gambar.3:
Gambar.3 Hasil Parse Tree
Contoh lain:
Misalkan kita memiliki statement:
                         result := salary + bonus * 1.10

Maka hasil parse tree diperlihatkan oleh gambar berikut:

Analisis Semantic

Bersambung....

         
Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar