Pages

Senin, 21 Februari 2011

TEKNIK KOMPILASI

TEKNIK KOMPILASI
Teknik Kompilasi Merupakan Teknik dalam  melakukan  pembacaan suatu program yang ditulis dalam bahasa sumber , kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran. Atau, Teknik Kompilasi merupakan suatu metode/cara dimana menggabungkan gabungan dari banyak program (untuk merubah suatu yang besar (B. Pemrograman) menjadi objek yang lain (kecil).
Definisi : Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulis dalam suatu bahasa sumber (source language) dan menterjemahkannya ke dalam suatu bahasa sasaran (target language).

1.    Bahasa mesin 


Bahasa Mesin, adalah pemograman perama kali yang pernah ada. Bahasa pemograman ini sulit dimengerti karena bahasa pemograman ini menggunakan kode bineri. Contohnya adalah:
10110010110
110101100110
merupakan bahasa terendah dari bahasa komputer. Setiap instruksi dalam program direpresentasikan dengan kode numerik, yang secara fisik berupa angka 0 dan 1. Sekumpulan instruksi dalam bahasa mesin bisa dibentuk menjadi microcode, yaitu semacam prosedur dalam bahasa mesin.
2.    Bahasa assembly




Bahasa Assumbly, adalah bahasa pemograman yang ada setelah bahasa mesin ada. Atau bisa dikatakan perkembangan bahasa pemograman setelah bahasa mesin. Bahasa pemograman ini berupa kode-kode atau singkatan-singkatan. Contohnya adalah:
MOX
ADD
MUL
MAL
Merupakan bentuk simbolik dari bahasa mesin. Setiap kode operasi memiliki kode simbolik, misalnya ADD untuk penjumlahan (addition) dan MUL untuk perkalian (Multiplication). Sekumpulan instruksi dalam bahasa assembly bisa dibentuk menjadi makroinstruksi. Pada bahasa assembly tersedia alat bantu untuk diagnostik atau debug  yang tidak terdapat pada bahasa mesin. Contoh produk yang ada utnuk pengembangan dan debug bahasa assembly di pasaran saat ini, misalnya Turbo Assembler dari Borland, Macro Assembler dari Microsoft, DEBUG yang tersedia pada DOS, dan Turbo Debugger. Instruksi dalam bahasa Assembly biasanya terdiri dari beberapa field, misalnya field operasi diikuti satu atau lebih operan.
3.    Bahasa Tingkat Tinggi (user oriented)

Bahasa Tingkat Tinggi, adalah bahasa pemograman yang ada setelah bahasa assembly ada. Atau bisa dikatakan perkembangan bahasa pemograman setelah bahasa assembly. Bahasa tingkat tinggi ini lebih menyerupai bahasa manusia (menggunakan keyword) jadi lebih mudah dalam pemahamannya. Contohnya adalah:
Print
Write
Copy
Disebut tingkat tinggi karena lebih dekat dengan manusia. memberikan fasilitas yang lebih banyak, kontrol program yang terstruktur, kalang (nested), block, dan prosedur. Contohnya : Pascal, BASIC, java.
4.    Bahasa yang problem oriented
Memungkinkan penyelesaian untuk suatu masalah atau aplikasi yang spesifik. Contohnya : SQL (Structured Query Language) untuk aplikasi database, COGO untuk aplikasi teknik sipil. Bahasa yang problem oriented kadang dimasukkan pula sebagai bahasa tingkat tinggi.




Kompilasi ke Assembly
Kode C

int sum(int x, int y)
{
    int t = x+y;
    return t;
}

Assembly diperoleh

_sum:
       pushl %ebp
       movl %esp,%ebp
       movl 12(%ebp),%eax
       addl 8(%ebp),%eax
    movl %ebp,%esp
       popl %ebp
       ret


Model Mesin

                     C




Assembly
ALU
 
regs
 
Cond. Codes
 
                               
                                               
                                Prosessor

 
stack
 
MEM
 

Data
1) char
2) int, float
3) double
4)struct, array
5) pointer



1) byte
2) 2-byte word
3) 4-byte long word
4) contiguous byte allocation
5) address of initial byte
Kontrol
1) loops
2) conditionals
3) switch
4) Proc. call
5) Proc. Return


1) branch/jump
2) call
3) ret







Contoh dari source program ke dalam kode mesin
Source code
IF COUNT=10
GOTO DONE
ELSE
GOTO AGAIN
ENDIF
Assembly Language
Compare A to B
If equal go to C
Go to D
Machine Language
Compare 3477 2883
If = go to 23883
Go to 23343

Actual machine code
10010101001010001010100
10101010010101001001010
10100101010001010010010

Contoh lain :
•    C:
#include <stdio.h>
int main () {
        printf(“A”);
        return 0;
}
•    Assembly (dengan DEBUG):
mov ah, 02
mov dl, 41
int 21
int 20
________________________________________________________________________


Daftar pustaka:
1.    Firrar Utdirartatmo, teknik kompilasi, edisi pertama 2001, penerbit : J & J Learning, Jogyakarta. 55511.
2.    Google.com (search teknik kompilasi)
3.    Hari Soetanto, S.Kom, M.Sc,TEKNIK KOMPILASI Catatan kuliah (versi-2005); Makalah (-Practice and principles of Compiler building with C, Henk Alblas, Albert Nymeyer, Prentice Hall, 1996; - Introduction to The theory of computation, Michael sipser, PWS publishing Company, 1997; - The Essence of Compilers, Robin Hunter, Pretice Hal Europe, 1999; - Modern Compiler Design, Dick Grune, Henri E. Bal, Et all, John Wiley & Son, 2000).
4.    www.globalkomputer.com/Bahasan/Teknik-Kompilasi.html



0 komentar:

Posting Komentar