Anda di halaman 1dari 3

1.

Pengertian Teknik Kompilasi

Kompilasi adalah suatu proses penggabungan serta menterjemahkan sesuatu (source


program) menjadi bentuk lain.
kompilasi Merupakan Teknik dalam melakukan pembacaan suatu program yang ditulis dalam
bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa
sasaran.

Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan
melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya.
Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi
(compiling).

 Latar Belakang
Proses konversi kode sumber suatu aplikasi/program ke bahasa lain sering kali
dilakukan oleh pelaku industri perangkat lunak, karena satu dan lain hal (misal
: integrasi dengan sistem lain, perubahan perangkat keras, minimasi biaya,
perubahan regulasi perusahaan atau perkembangan proses bisnis). Proses
konversi kode juga dapat menjadi alat bantu belajar yang efisien bagi
mahasiswa yang sedang belajar bahasa pemrograman baru, dengan
membandingkan bahasa tersebut dengan bahasa pemrograman lain yang telah
dikuasai sebelumnya (dengan catatan kedua bahasa tersebut memiliki banyak
kesamaan). Bahasa C dan Pascal telah dikenal lama didunia pemrograman
komputer dan industri perangkat lunak. Keduanya lahir di era 70-an, saat-saat
penting mulai munculnya generasi UNIX, sistem operasi yang sangat
berpengaruh terhadap teknologi komputer. Pascal sering menjadi alat bantu
dalam perkuliahan ilmu komputer, karena sintaks-nya yang jelas dan mudah
dimengerti, sehingga Pascal telah menjadi alat bantu pemrograman yang
identik dengan dunia pendidikan dan akademi. Lain hal dengan C, bahasa ini
telah menjadi alat bantu yang paling banyak dipakai dalam industri perangkat
lunak [HIP92]. Bahasa C dirancang dekat dengan mesin, sehingga memiliki
beberapa kelebihan seperti cepat, efisien dan tangguh. Namun demikian, C
tidak serumit dan sesulit bahasa rakitan (Assembly), karena C sangat ekspresif
dan permisif [STR87]. Karena alasan itulah, bahasa C seringkali dipakai untuk
membangun software-software sistem, seperti sistem operasi, basis data,
server, kompilator, dll. Namun seringkali bahasa C dianggap sulit dimengerti,
dan otomatis sulit dipelajari, berbeda dengan Pascal, yang sebagian besar
orang menganggapnya mudah dipelajari. Celah ini nampaknya sangat bagus
untuk dieksplorasi, adanya gap antara kebutuhan mahasiswa untuk belajar
bahasa C dan hambatan yang telah diungkapkan diatas, bahwa bahasa C
terkenal sulit dimengerti dan dipelajari. Terkadang untuk mempelajari sesuatu,
seseorang membutuhkan suatu
 Perkembangan Dan Kondisi Terkini
Sejarah perkembangan suatu kompilator dimulai pada saat ditemukannya
komputer yaitu awal tahun 1950. Sejak itu teknik dan cara pembentukan suatu
kompilator telah berkembang dengan sangat pesat dan dapat dilakukan dengan
mudah. Demikian pula program bantu (tools) untuk membuat suatu kompilator
sudah dapat diperoleh sehingga mempercepat pembentukan suatu kompilator.
Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN
yang pada saat itu dikembangkan oleh sejumlah tenaga ahli. Dengan adanya
program bantu dan tata cara pembentukan yang sistematis dan tertata dengan
baik serta pendefinisian struktur bahasa dengan cermat, maka suatu kompilator
untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan.
Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi menajdai
2, yaitu bagian analisis dan bagian sintesis. Tahap analisis program yang
ditulis dalam bahasa sumber dibagi dan dipecah ke dalam beberapa bagian
yang kemudian akan dipresentasikan ke dalam suatu bentuk antara dari
program sumber. Operasi-operasi yang dilakukan oleh program sumber
ditentukan dan dicatat dalam suatu struktur pohon (tree) yang disebut dengan
nama pohon sintaks (sintax tree). Dalam hal ini setiap nodal pada tree tersebut
menyatakan suatu operasi, sedangkan anak dari nodal (tititk) tersebut
memberikan argumen yang diperlukan

2. 7 Tahapan teknik kompilasi

Proses kompilasi dikelompokan ke dalam dua kelompok besar yaitu :

1.      Tahap Analisa (Front-end) :Menganalisis source code dan memecahnya menjadi


bagian-bagian dasarnya. Menghasilkan kode level menengah dari source code input
yang ada.

2.      Tahap Sintesa (Back-end) : membangun program sasaran yang diinginkan dari


bentuk antara.

Tahap-tahap yang harus dilalui pada saat mengkompilasi program, yaitu:

 Analisa Leksikal (scanner)

Berfungsi memecah teks program sumber menjadi bagian-bagian kecil yang


mempunyai satu arti yang disebut token, seperti : konstanta, nama variabel,
keyword, operator.

 Analisa Sintaks (perser)                    

Berfungsi mengambil program sumber (sudah dalam bentuk barisan token)


dan menentukan kedudukan masing-masing token berdasarkan aturan
sintaksnya dan memeriksa kebenaran dan urutan kemunculan token.
 Analisa Semantik
Berfungsi menentukan validitas semantiks/keberartian program sumber.
Biasanya bagian ini digabung dengan Pembangkit kode antara (intermediate
code generator).

 Pembangkit Kode Antara


Berfungsi membangkitkan kode antara

 Code optimization 
Berfungsi mengefisienkan kode antara yang dibentuk

 Penangan Kesalahan (Error handler)


Berfungsi menangani kesalahan yang berlangsung selama proses kompilasi.

 Symbol table management


Berfungsi mengelola tabel simbol selama proses kompilasi. Tabel simbol
adalah struktur data yang memuat record untuk tiap identifier dengan atribut-
atribut identifier itu.

3. Apa itu analisa leksikal dan sintaksis

 Leksikal

Analisis leksikal atau scanner bertugas mengidentifikasi semua besaran


pembangun bahasa (leksikal) yang ada pada source code (source code).
Scanner menerima masukan source code berupa serangkaian karakter
kemudian memilah-milahnya menjadi bagian-bagian kecil yang
mempunyai satu arti yang disebut token, seperti : konstanta, nama
variabel, keyword, operator. Token-token ini akan menjadi masukan bagi
analisis selanjutnya yaitu analisis sintaksis.

 Sintaksis
Analisis sintak lebih sering disebut penguraian (parsing). Tujuan utama dari
analisis sintak adalah memeriksa apakah urutan token-token yang
dihasilkan sesuai dengan tata bahasa dari bahasa yang bersangkutan.
Misalnya bahasa C mengenal kalimat: jumlah++; yang berarti menaikkan
harga variabel jumlah dengan angka satu. Tetapi kalimat di atas akan salah
jika dikompilasi dengan kompilator bahasa Pascal, karena tidak sesuai
dengan tata bahasa Pascal.

Anda mungkin juga menyukai