Tahapan Teknik Kompilasi
by johanesadika on 17/03/2014Tahapan 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 :
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 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 :
Credit : www.binus.ac.id
johanes.adika@binusian.org
No comments yet.