P. 1
teknik kompilasi

teknik kompilasi

|Views: 780|Likes:
Published by kiracold

More info:

Published by: kiracold on Mar 30, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

11/10/2012

pdf

text

original

Compiler dan Interpreter

I. Compiler a. Pengertian Compiler Compiler adalah program sistem yang juga berfungsi sebagai penterjemah kode program ke dalam bahasa mesin agar bisa dijalankan oleh mesin. Compiler membaca suatu program yang ditulis dalam bahasa sumber (source code) dan menerjemahkannya ke dalam bahasa sasaran (target language). Compiler merupakan program sistem yang digunakan sebagai alat bantu dalam pemrogaman. Perangkat lunak yang melakukan proses penterjemahan code (yang dibuat programmer) ke dalam bahasa mesin. Hasil dari terjemahan ini adalah bahasa mesin. Pada beberapa compiler, output berupa bahasa mesin dilaksanakan dengan proses assembler yang berbeda. compiler mengeksekusi seluruh instruksi dalam program sekaligus. Dalam melakukan proses penerjemahan, sudah tentu kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi (compiling).

Bila dipandang sepintas lalu, maka akan timbul beranekaragam kompilator yang dapat dibuat antara lain sebagai berikut : Bahasa Sumber seperti bahasa FORTRAN, PASCAL, C dan juga bahasa-bahasa lainnya yang sifat dan pemakaiannya agak spesifik atau khusus, seperti bahasa untuk program DBASE, SPSS dan lain sebagainya. Bahasa Sasaran dapat berupa bahasa sumber lain seperti C, FORTRAN dan lain sebagainya. Bahasa Mesin (Machine Language) yang digunakan oleh suatu prosessor mikro atau sumber komputer besar maupun komputer super. Contoh bahasa pemrograman yang menggunakan compiler adalah Visual Basic, Fortran, Cobol, Pascal, C,

Struktur Compiler .b. yaitu pada saat mulai ditemukannya komputer pada awal 1950-an. Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada saat itu dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan pekerjaan yang dilakukan oleh 18 orang. Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa yang cermat. Sejarah Compiler Sejarah perkembangan suatu kompilator sudah dimulai sejak lama. Sejak waktu tersebut teknik dan cara pembentukan suatu kompilator telah berkembang dengan sangat pesat dan pembentukkan suatu kompilator dapat dilakukan makin mudah. Demikian pula program bantu (tools) untuk membuat suatu kompilator sudah dapat diperoleh sehingga pembentukan suatu kompilator dapat dilakukan dengan cepat. c. maka suatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan.

sedangkan anak dari nodal (titik) tersebut memberikan argumen yang diperlukan . biasanya dalam realisasi akan digabung dengan intermediate code generator o Code Generator : membangkitkan kode objek o Code Optimizer : memperkecil hasil dan mempercepat proses o Tabel Simbol : menyimpan semua informasi yang berhubungan dengan proses kompilasi o Eror handler : minimal melaporkan letak eror pada source program. Logical. contoh: operator dengan operand yang tidak sesuai. Dalam hal ini setiap nodal pada tree tersebut menyatakan suatu operasi. Bias juga di tambahi dengan penyebab terjadi eror. yaitu : Lexical. Umumnya mencetak baris yang salah dengan pointer ke posisi dimana eror terjadi. atauoperator. Syntactic. keyword. Proses Compiler Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian utama yaitu bagian analisis dan bagian sintesis. contoh: pemanggilan recursif tidak terbatas (infinitely recursive call) d. Semantic. 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.o Scanner : memecah program sumber menjadi Token o Parser : memeriksa kebenaran dan urutan dari susunan Token (memenuhi rule/grammar) o Semantic Analyzer : melakukan analisa semantik. contoh: persamaan aritmatika dengan tanda kurung yang kurang. contoh: salah dalam penulisan identifier. Operasi-operasi yang dilakukan oleh program sumber ditentukan dan dicatat dalam suatu struktur pohon (tree) yang disebut dengan nama pohon sintaks (sintax tree). Eror dibagi menjadi 4.

menyatukan karakter-karakter yang berhubungan menjadi token. Proses analisis leksikal 2. Proses analisis sintaktik 3.Secara umum proses dalam tahap analis terdiri dari 3 bagian utama. setelah itu compiler akan memeriksa semantik input. Seperti suatu bahasa sumber dapat dituliskan dalam beberapa modul yang terpisah dan disimpan dalam beberapa file yang terpisah. Cara Kerja Compiler Compiler membaca sebuah source code dalam bentuk teks. Untuk menanggulangi hal ini. Proses terakhir untuk membuat executable file dilakukan oleh linker. Proses analisis semantic Tahap sintesis yang berikutnya program sasaran dibentuk berdasarkan representasi antara yang dihasilkan pada tahap analisis. e. dan membuat output dalam sebuah bahasa (yang umumnya adalah assembly). Untuk tahap sintetis terdiri dari 2 bagian utama. maka suatu program khusus yang disebut dengan suatu praprosesor digunakan untuk mengumpulkan modul-modul yang saling lepas ini ke dalam suatu program baru. yaitu: 1. Proses yang menghasilkan kode (code generator) 2. yaitu : 1. Selain kompilator masih diperlukan beberapa program lainnya sebelum dapat dibentuk bahasa sasaran yang dapat dijalankan. Praposesor dapat pula melengkapi singkatan-singkatan atau ungkapanungkapan maupun kependekan-kependekan yang digunakan dalam bahasa sumber seperti pendek. Jika outputnya adalah assembly maka proses berikutnya adalah assembling yang dilakukan dengan assembler untuk menghasilkan bahasa mesin. . lalu memeriksa apakah token-token tersebut memenuhi grammar. Proses optimasi kode (code optimizer) Sebelum Bahasa sasaran dapat dihasilkan. dalam melakukan ini tiap bagian utama akan berhubungan dan berkomunikasi dengan suatu berkas tabel yang disebut tabel simbol (symbol table) yaitu suatu tabel yang berisi semua simbol yang digunakan dalam bahasa sumber.

Jadi memori selalu digunakan baik untuk program maupun interpreter. saat program dieksekusi. sambil mengikuti logika yang terdapat di dalam kode tersebut. penyusunan program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan secara kaidah dalam program. Pada interpreter. Sedangkan pada compiler.II. Interpreter a. interpreter juga harus selalu berada dalam memori. Pada interpreter. kode program tidak dapat dirahasiakan. Sedangkan pada compiler. Selain itu. Program akan berhasil dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama sekali. Pada interpreter. sebab yang dieksekusi adalah program yang dalam bentuk kode mesin. menganalisanya dan menjalankannya dengan intruksi yang sesuai di dalam mesin virtual. yaitu interactive interpreter. proses eksekusi dapat berjalan dengan cepat. kode program bisa dirahasiakan. sebab tak ada lagi proses penerjemahan. . Interpreter memiliki fungsi opsional. Kode-kode bahasa tersebut tidak dalam bentuk bahasa mesin melainkan berupa source code murni. sebab ada waktu untuk mengkompilasi (menerjemahkan) dan ada pula waktu untuk melakukan proses linking. kecepatannya menjadi lambat sebab sebelum suatu instruksi dijalankan selalu harus diterjemahkan terlebih dahulu. Interpreter mengeksekusi atau melakukan instruksi yang ditulis dalam bahasa pemprograman tertentu. Sedangkan pada compiler. proses pembuatan dan pengujian membutuhkan waktu relatif lebih lama. Pengertian Interpreter Interpreter adalah program sistem yang berfungsi sebagai penterjemah kode program yang dibuat oleh programmer ke dalam bahasa mesin Perintah-perintah yang dibuat oleh programmer dieksekusi baris demi baris. Interpreter membaca statement. dimana cara menjalankannya adalah dengan perulangan baca ± evaluasi ± cetak (read ± eval ± print). tugas interpreter adalah mengartikan source code berisi bahasa pemprograman tersebut sehingga instruksinya dapat dimengerti dan dapat dijalankan oleh komputer.

Jenis Interpreter Berdasarkan jenisnya. 2. ASP. interpreter yang mengeksekusi langsung source code. 3. Secara eksplisit mengeksekusi kode yang telah tersimpan dan dibuat oleh kompiler sebagai bagian dari sistem interpretasi. Maksudnya saat interpreter mengartikan suatu script / kode dia akan membentuk kode-kode dalam bahasa mesin melalui kompiler khusus dan menjalankan hasil kompilasi tersebut. b. .Contoh pemprograman yang menggunakan interpreter yaitu PHP. interpreter dibedakan menjadi 3 jenis yakni: 1. dan Ruby adalah contoh pemprograman yang menggunakan interpreter tipe 2 sedangkan UCSD Pascal dan JAVA menggunakan tipe 3. Python. mengartikan source code dan merepresentasikannya dalam bentuk tertentu (kode) tingkat intermediate secara efisien dan langsung mengeksekusinya. Perl. Perl. MATLAB.

3) Pada compiler. Program akan berhasil dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama sekali. Sedangkan interpreter membutuhkan kode sumber. saat program . Selain itu. 8) Pada interpreter. Ada yang dioptimasi supaya lebih cepat. proses pembuatan dan pengujian membutuhkan waktu relatif lebih lama. Sedangkan interpreter tidak membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library. penyusunan program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan secara kaidah dalam program.III. Perbedaan Compiler dan Interpreter : 1) Interpreter menterjemahkan baris per baris. kecepatannya menjadi lambat sebab sebelum suatu instruksi dijalankan selalu harus diterjemahkan terlebih dahulu. Sedangkan interpreter susah atau bahkan tidak bisa dioptimasikan. Sedangkan pada compiler. 6) Pada compiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa dijalankan. tanpa tergantung lagi oleh program sumber atau compilernya. Pada interpreter tidak ada proses terpisah. 2) Jika hendak menjalankan program hasil compiler dapat dilakukan tanpa butuh kode sumber. sebab ada waktu untuk mengkompilasi (menerjemahkan) dan ada pula waktu untuk melakukan proses linking. Sedangkan compiler. yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ). 7) Pada interpreter. 4) Compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Sedangkan compiler agak sulit karena untuk mengubah suatu modul / kode objek kecil. ada yang supaya lebih kecil. Selanjutnya hasil terjemahan (setelah melalui tahapan lain) bisa dijalankan secara langsung. ada yang dioptimasi untuk sistem dengan banyak processor. pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah. maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan. 5) Interpreter cocok untuk membuat / menguji coba modul ( sub-routine / programprogram kecil ). menterjemahkan seluruh instruksi sekaligus.

sebab tak ada lagi proses penerjemahan.dieksekusi. 10) Interpreter tidak menghasilkan bentuk object code. Jadi memori selalu digunakan baik untuk program maupun interpreter. Berbeda dengan compiler. kode program tidak dapat dirahasiakan. Sedangkan pada compiler. proses eksekusi dapat berjalan dengan cepat. Sedangkan pada compiler. sebab yang dieksekusi adalah program yang dalam bentuk kode mesin. kode program bisa dirahasiakan. . interpreter juga harus selalu berada dalam memori. 9) Pada interpreter. tetapi hasil translasinya hanya bentuk internal dimana program induk harus selalu ada.

Compiler Interpreter .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->