Tahapan Teknik Kompilasi

by johanesadika on 17/03/2014

Tahapan kompilasi dibagi menjadi 2 bagian besar , yaitu :

  • Phase Analysis
  •         Lexical Analyzer
  •         Syntax Analyzer
  •         Semantic Analyzer
  • Phase Synthesis
  •         Intermediate Code Generator
  •         Code Optimizer
  •         Code Generator

Fase – fase tersebut digambarkan dalam diagram berikut :

Fase Kompilasi

Phase Analysis

1. Lexical Analyzer

Lexical analyzer merupakan tahapan awal yang dilakukan di compiler. Biasa suka disebut juga sebagai scanner.

Proses utama yang dilakukan dalam Lexical Analyzer adalah : mengubah suatu baris kalimat input menjadi ‘token’ lalu mengelompokkan ke dalam urutan ( lexemes ) , penghilangan whitespace , konversi konstanta numerik menjadi tipe data yang spesifik / tertentu

Barisan token tersebut merupakan kumpulan string yang memiliki jenis pola tertentu dgn bentuk <token-name , attribute-value> . Lalu selanjutnya , token tersebut akan dikirimkan ke tahapan selanjutnya , yaitu Syntax Analysis

2. Syntax Analyzer

Syntax analyzer biasa disebut juga analisis parser karena proses yang dilakukan dalam tahapan ini adalah hasil dari lexical analysis (token) akan disusun serta dikelompokkan dalam suatu struktur tertentu yang memiliki definisi secara spesifik.

Dari struktur tersebut , program yang dibangun dari struktur tersebut dapat diidentifikasi ( di dalamnya terdapat variable-variable yang dibutuhkan seperti statement , expression , dll ).

Tahapan syntax analyzer yaitu :

1. Pengurutan token yg merupakan hasil lexical analysis

2. Melanjutkan dengan memanggil proses selanjutnya , yaitu Semantic Analyzer

3. Semantic Analyzer

Tahapan ini adalah pusat dari tahapan kompilasi karena dari struktur syntaktik dari proses-proses sebelumnya diproses dan struktur objek executable sudah mulai dibentuk.

Tahapan ini menjadi jembatan antara analysis dan synthesis dari suatu kompilasi.

Hasil akhir dari tahapan ini adalah suatu kode yang executable dalam kompilasi yang sederhana yang kemudian dimanipulasi dengan berbagai optimization dari translator sebelum akhirnya benar-benar executable dihasilkan.


Berikut contoh proses Phase Analysis :

Phase Analysis


Phase Synthesis

4. Intermediate Code Generator

Proses untuk me-generate code berdasarkan parsing tree (sesuai dengan rumus / syntax yang berhubungan ).

Hasil dari proses ini adalah suatu perintah yang merupakan 3-address-code ataupun quadruples.

5. Code Optimizer

Proses untuk mengoptimisasi code yang telah mengalami proses-proses sebelum akhirnya dibentuk suatu code executable.

Dalam tahapan ini , salah satunya yaitu dilakukan proses pengurangan redundancy dalam code sehingga lebih efficient dan effective.

6. Code Generator

Proses untuk membuat code yang dikenal oleh bahasa mesin yang merupakan suatu bahasa assembler.

Biasanya , code tersebut terdiri dari suatu perintah dengan address dan akumulator yang masing-masing terdiri dari 1 komponen.


Berikut contoh dari diagram Phase Synthesis :

Phase Synthesis


Credit : www.binus.ac.id

johanes.adika@binusian.org

No comments yet.

Write a comment: