Materi Kompilasi
Tuesday, November 12, 2013 @ 12:28 AM | 0 Comment Box(s)
1. Pengertian
Kompilasi Adalah Proses Membaca Suatu Program Yang Ditulis Dalam Suatu Bahasa Sumber Dan Menerjemahkan - Nya Ke Dalam Suatu Bahasa Sasaran. Proses Kompilasi Dilakukan Oleh Kompilator Yang Merupakan Sebuah Program Untuk Melakukan Proses Kompilasi Ini. Proses Kompilasi Dapat Digambarkan Dalam Gambar Berikut :
2. Pengelompokkan Proses Kompilasi
Proses Kompilasi Dapat Dikelompokkan Ke Dalam Dua Kelompok Besar Berikut :
- Analisa
Program Sumber Dipecah - Pecah Dan Dibentuk Menjadi Bentuk Antara ( Intermediate Representation )
- Sintesa
Membangun Program Sasaran Yang Diinginkan Dari Bentuk Antara
3. Fase - Fase Kompilasi
Proses Kompilasi Harus Melewati Fase - Fase Yang Digambarkan Dalam Skema Berikut :
Berikut Ini Penjelasan - Nya :
- Penganalisa Leksikal
Membaca Program Karakter Demi Karakter. Sederetan Karakter Dikelompokkan Dalam Satu Kesatuan Yang Mengacu Pada Pola Kesatuan Kelompok Karakter ( Token ). Kelompok Karakter Yang Membentuk Sebuah Token Disebut Lexeme.Setiap Token Disimpan Dalam Tabel Simbol. Sederetan Karakter Yang Tidak Mengikuti Pola Token Akan Dianggap Sebagai Token Tak Dikenal ( Unidentified Token ). Contoh : Diketahui Pola Token : I = huruf ( huruf | angka )*, Maka Lexeme ab2c Dikenali Sebagai Token, Sedangkan 2abc Atau abC Tidak Dikenali Sebagai Token
- Penganalisa Sintaks
Memeriksa Kesesuaian Pola Deretan Token Dengan Aturan Sintaks Yang Ditentukan Dalam Bahasa Sumber. Sederetan Token Yang Tidak Mengikuti Aturan Sintaks Akan Dilaporkan Sebagai Kesalahan Sintaks ( Sintax Error ). Secara Logika, Deretan Token Yang Bersesuaian Dengan Sintaks Tertentu Akan DinyatakanSebagai Pohon Parsing ( Parse Tree ). Contoh : Diketahui Ekspresi : E = If L Then, L = IOA, I = huruf ( huruf | angka )*, O = < | = | > | <= | >=, A = 0 | 1 | ... | 9. Maka, Ekspresi If a2 < 9 Then Adalah Ekspresi Yang Sesuai Sintaks, Sedangkan If a2 < 9 Do Atau If Then a2B < 9 Tidak Sesuai
- Penganalisa Semantik
Memeriksa Token Dan Ekspresi Dari Batasan - Batasan Yang Ditetapkan. Batasan - Batasan Tersebut, Di Antara - Nya :
- Panjang Maksimum Token Identifier Adalah 8 Karakter
- Panjang Maksimum Ekpresi Tunggal Adalah 80 Karakter
- Nilai Bilangan Bulat Adalah - 32768 Sampai Dengan 32767
- Operasi Aritmatika Harus Melibatkan Operan - Operan Yang Bertipe Sama
- Pembangkit Kode Antara
Membangkitkan Kode Antara ( Intermediate Code ) Berdasarkan Pohon Parsing. Pohon Parse Selanjutnya Diterjemahkan Oleh Penerjemah Berdasarkan Syntax ( Syntax Directed Translator ). Hasil Penerjemahan Merupakan Perintah Tiga Alamat Yang Merupakan Representasi Program Untuk Suatu Mesin Abstrak. Perintah Tiga Alamat Ini Bisa Berbentuk Quadrapels ( Terdiri Dari Operator, Argument 1, Argument 2, Result ), Tripels ( Terdiri Dari Operator, Argument 1, Argument 2 ). Ekspresi Dengan Satu Argumen Biasa - Nya Dinyatakan Dengan Menetapkan Argument 2 Dengan Strip ( - )
- Pengoptimal Kode
Melakukan Optimasi, Yaitu Penghematan Space Dan Waktu Kompilasi ) Jika Mungkin Terhadap Kode Antara
- Pembangkit Kode
Membangkitkan Kode Dalam Bahasa Target Tertentu ( Misalnya Bahasa Mesin )
4. Contoh Proses Kompilasi
Berikut Contoh Proses Kompilasi Dengan Suatu Ekspresi Dalam Bahasa Sumber :
position := initial + rate * 60.
Keterangan :
- id Adalah Token Untuk Identifier. Tiga Lexeme Untuk Token Ini Adalah Position, Initial, Dan Rate
- Penganalisa Sintaks Secara Logika Membangkitkan Pohon Parse
- Penganalisa Semantik Mendeteksi Mismatch Type. Perbaikan Dilakukan Dengan Memanggil Procedure "inttoreal" Yang Mengkonversi Integer Ke Real
- Quadrapels Dari :
- temp1 := inttoreal ( 60 ) Adalah ( Inttoreal, 60, -, temp1 )
- temp2 := id3 * temp1 Adalah ( *, id3, temp1, temp2 )
- temp3 := id2 + temp2 Adalah ( +, id2, temp2, temp3 )
- id1 := temp3 Adalah ( Assign, temp3, -, id1 )
- Pembangkit Kode Dalam Contoh Ini Menghasilkan Kode Dalam Bahasa Mesin
Attention !!! :-) :-) :-)
- Put Your Link Or E-mail, And Real Nick Name
- Ask Something, Request Tutorial / Freebies?
- I Will Answer Your Mes On Your Blog Or Your E-Mail Or My Facebook Page(http://www.facebook.com/kormakka?ref=hl)
- And No Harsh Word!
- Keep Smiling :-) :-):-)
Labels: Tek. Kompilasi