Pelajaran hari ini tentang “Teknik Kompilasi”. Tapi sebelumnya penulis mohon maaf pada pembaca sekalian jika dalam tulisan ini terdapat banyak kesalahan, ma’lum penulis juga cuma manusia biasa. Yang perlu kita ketahui di sini bahwa proses untuk mengkompilasi memerlukan yang namanya kompilator atau bahasa kerennya Compiler. Kompilator sendiri merupakan sebuah program yang berfungsi menerjemahkan source code program ke program target, misalnya source code program dari bahasa c dikompilasi menjadi sebuah file yang bisa tereksekusi (file *.exe, *.com, dll). Adapun proses yang terjadi dapat diuraikan sebagai berikut:
1. Scanner (Lexical Analyzer)
Proses ini berfungsi untuk membaca setiap string yang dimasukkan seperti variabel, konstanta, keyword (if, then, else, do, while, dll). String-string tersebut disebut dengan token. Setiap string yang dimasukkan diperiksa, apakah sudah memenuhi dari aturan yang disebut pattern. Misalnya sebuah variabel tidak boleh menggunakan nama-nama dari keyword, seperti: if, else, then, while, dll.
2. Parser (Syntactic Analyzer)
Setelah melalui proses scanner, token-token tersebut diperiksa urutan grammarnya. Jika urutan grammar salah maka akan muncul pesan eror. Contohnya: terdapat token-token:
- if
- nilai
- then
- 0
- print
- ‘lebih dari satu’
- >
Statement:
If nilai > 0 end
print ‘lebih dari satu’
then
Maka source code di atas akan diperiksa susunannya, aturan penulisannya sebagai berikut:
If [Kondisi 1] then
[Statement 1]
Else
[Statement 2]
End
Ternyata source code tadi tidak memenuhi aturan, token ‘end’ tertukar dengan token ‘then’, maka akan terjadi yang namanya debugging, atau laporan adanya eror dalam program.
3. Semantic Analyzer
Proses ini memeriksa arti dari source code secara keseluruhan, apakah sudah tepat pengkondisiannya. Jika tidak memenuhi maka akan menampilkan pesan eror. Biasanya dalam proses ini akan dilakukan juga intermediate code generator. Code generator akan dijelaskan pada langkah berikutnya.
4. Code Generator
Setelah semantik dari source code tersebut diperiksa dan tidak terjadi eror, maka source code tersebut akan diterjemahkan ke bahasa assembly/machine language pada proses ini.
5. Code Optimizer
Seteleh dihasilkan bahasa assembly, maka source code tersebut akan lebih disederhanakan lagi prosesnya, agar lebih cepat.
6. Table Symbol
Dalam proses ini seluruh informasi akan disimpan selama proses kompilasi berlangsung.
7. Object Code
Proses ini akan menghasilkan program target (file *.exe, *.com, dll)
Sekian penjelasan dari penulis, semoga dapat bermanfaat bagi yang membacanya.
Source:
- Otak yang diberikan Allah SWT
- Artikel ‘Teknik Kompilasi’ yang disajikan oleh Setiawardhana.
- Artikel ’Teknik Kompiler 1’ oleh Antonius Rachmat C, S. Kom.
Tidak ada komentar:
Posting Komentar