Definisi Compiler
Biasanya dipakai untuk menggenerate program
yang akan dibuat. Misalnya sebuah source code di vsual basic akan dijadikan
sebuah software aplikasi atau program….maka source code tersebut harus
di-compile sedemikian rupa agar jadi sebuah aplikasi ato software dengan sebuah
compiler…
CIRI – CIRI PROGRAM COMPILER
Ciri-cirinya :
1) Dapat memodifikasi Caption program sehingga
menjadi nama lain. Misalnya sebuah program dicopy biasa dari komputer satu ke
komputer lain maka captionnya akan sama…catatan bukan nama apliaksi or .exe nya
yang diubah…tapi judul program yang ada di atas apliaksi tersebut.
2) Dapat mengganti gambar dari aplikasi
tersebut. Misalnya gambar A.jpg diletakkan dalam sebuah program. Kalau dicopy
secara biasa, otomatis gambar A.jpg akan ter-copy juga ke program tersebut.
Tetapi bila dicompile…maka gambar dapat berubah.
FUNGSI PROGRAM COMPILER
Fungsi dari program compiler ini adalah :
1) Mengubah caption, sehingga jika suatu
program dikunci oleh virus seperti regedit, msconfig, ms Dos shell dan lain –
lain dapat tetap dijalankan, karena fungsi dari compiler tersebut merubah
caption program. Biasanya virus mendeteksi dari caption program tersebut untuk
menendang atau mematikan program dalamkode pertahanan virus. 2) Buat seneng- seneng
and nambah program ajah….hahahahahhahaha
CARA KERJA COMPILER SEDERHANA
cara kerjanya sangat mudah, seperti yang
disebutkan bahwa compiler disini adalah sangat sederhana sekalai. Sehingga
masih menggunakan fasilitas dari VB berupa modul COPYFILE. Jadi bukan
dicompiler secara murni, jadi Algoritma nya :
1) Program Dijalankan
2) Program akan mengecek apakah file yang
diperlukan untuk compiler ada…disini saya memakai aplikasi rdfce.ext
3) Setelah menemukan file rdfce.ext maka
program akan menjalankan modul COPYFILE untuk menyalin isi dari text dan gambar
4) Kemudian program akan mencompile aplikasi
dan mengeluarkan file output sesuai dengan
nama file…kalau disini defaultnya test.exe
2. Compiler Construction
Teknik kompilasi telah lama diberikan di
lingkungan pendidikan tinggi bidang komputer di Indonesia. Pembahasan dalam
mata kuliah ini biasanya berkisar pada teori automata, teori kompilasi, teori
grammar. Praktek teknik kompilasi pun telah diberikan di lingkungan
laboratorium, walau biasanya masih terbatas pada demonstrasi hal teori, ataupun
sekedar pengenalan kompiler yang ada atau banyak digunakan. Beberapa
universitas telah mulai memperkenalkan penggunaan perangkat pembangun kompiler.
Telah banyak mahasiswa menggunakan dan
memanfaatkan compiler/interpreter, tapi saat ini masih belum banyak muncul nama
programmer Indonesia yang terlibat dalam proyek pembuatan compiler/interpreter.
Mungkin hanya KILANG nya Prof. Dali S Naga (BASIC Indonesia), yang sempat
terdengar, sayang sekarang sudah tidak ada jejaknya. Mungkin merilis KILANG
dalam bentuk GPL seperti BWBASIC, adalah suatu langkah menarik untuk terus
mengembangkan KILANG ini lebih lanjut.
Memang ada sekelompok programmer Indonesia
yang sempat akan merilis bahasa pemrograman “BATAK” tetapi hingga saat ini
belum terdengar kembali. Bahasa pemrograman, JAVA, BALI, MADURA, hanyalah
namanya saja yang berbau Indoensia, tapi sedikit atau malah tidak ada
keterlibatan pengembang dari Indonesia.
Tentu saja akan timbul pertanyaan “apa yang
salah dalam pengajaran kompilasi ???” (INGAT SAYA TIDAK INGIN MENDISKREDITKAN
SIAPAPUN DALAM PERNYATAAN INI). Hanya mencoba mencari langkah perbaikan yang
mungkin bisa diterapkan.
Walaupun sedikit sekali atau nyaris tidak ada
“lowongan pekerjaan” yang membutuhkan kemampuan mengembangkan compiler ini
(silahkan baca di koran ataupun majalah), bukan berarti pengetahuan itu sama
sekali tak dibutuhkan dalam dunia pemrograman sehari-hari. Pada dasarnya
pengetahuan pembuatan kompiler (compiler construction) ini merupakan pengetahuan
dasar komputasi yang sangat baik sekali. Pengetahuan ini dimanfaatkan pada
beragam aplikasi nantinya. Misal teknik parsing, pengenalan pola teks, optimasi
kode dan lain sebagainya. Bahkan suatu database engine pun di bagian “front
end” selalu menggunakan parsing ini. Pengetahuan tentang kompilasi akan dapat
memberikan landasan bagi programmer untuk menyusun program yang efektif dan
efisien.
Ketika seseorang melakukan pemrograman,
sebetulnya secara tidak sadar dia akan melakukan proses penambahan suatu bahasa.
Misal pembuatan suatu fungsi (ataupun prosedur) pada dasarnya merupakan suatu
proses “penambahan kosa-kata” dari bahasa pemrograman tersebut. Dari yang
tadinya tidak memiliki fungsi tersebut hingga akhirnya ditambahkan suatu
“vocabulary” untuk melakukan suatu fungsi tersebut. Untuk itulah pemahaman
penyusunan kompiler merupakan suatu dasar yang utama dalam bidang ilmu
komputer.
Kesenjangan Teori dan Praktek
Pada kasus pemahaman teknik kompilasi
seringkali mahasiswa memiliki gap antara pemahaman teori yang mendasari
pembuatan kompiler, lalu masalah parsing, scanner (bukan scanner yang buat
men-scan gambar atau photo) serta “bagaimana menulis compiler/interpreter
sesungguhnya (misal BASIC interpreter).
Ketika bicara kompiler, rata-rata pengetahuan
mahasiswa/lulusan bersifat umum yaitu “trampil” menggunakan Integrated
Development Environment (IDE) berbasiskan GUI. Bahkan pengetahuan pemakaian
“make”, “autoconf”, pun masih langka dipahami para mahasiswa (termasuk
mahasiswa Univ Gunadarma). Sedangkan ketika mereka bicara teori, yang terjadi
hanyalah “hafalan” teori-teori otomata, parsing, grammar. Keterkaitan antara
keduanya masih belum terjalin dengan mesra.
Sebelum dianggap menyalahkan siapa-siapa
termasuk menyalahkan mahasiswa (salah satu kambing hitam favorit para dosen),
saya mencoba menguraikan permasalahan ini. Ketidak-tertarikan para mahasiswa
mempelajari bidang pembuatan kompiler ini mungkin didasarkan pada pelajaran
teknik pembuatan kompiler yang sarat dengan pemahaman teori (misal automata,
grammar, bahasa formal, matematika diskrit dan sebagainya).
Teori bagi sebagian besar mahasiswa merupakan
“momok” bagi para mahasiswa dan mereka kurang tertarik mempelajarinya, dianggap
hanyalah pelengkap untuk lulus menjadi saja. Mahasiswa kurang betah atau sabar
mendengar pelajaran teori. Mungkin hal ini disebabkan (sengaja saya gunakan
kata “mungkin” karena belum pernah dilakukan survei atau penelitian secara
khusus) beberapa hal antara lain :
Para mahasiswa Indonesia tidak tertarik teori,
karena merasa tidak ada manfaatnya pelajaran teori tersebut. Tidak dipungkiri
dunia komputer (lapangan pekerjaan) masih membutuhkan orang-orang dengan “skill
praktis” sehingga kebutuhan teori ini tidak dirasakan ada. Jelas ini
menunjukkan seberapa “jauh” yang namanya industri TI di Indonesia. TI di
Indonesia secara umum barulah berkembang pada “menjual produk TI” ataupun
konfigurasi dan perkembangan yang bersifat “kustomisasi luar”.
Rasa ketertarikan terhadap teori ini makin
hilang, akibat materi yang diberikan di kelas terlalu jauh dengan kondisi
praktis. Artinya ada “gap” antara teori dengan aplikasi teori tersebut di dunia
nyata dalam bayangan mahasiswa (misal bidang komputer) Sebagai contoh,
mahasiswa komputer mungkin akan tertarik bila tahu bahwa Analisa numeris itu dimanfaatkan
untuk membuat “computer game” Ketimbang kita memberikan contohnya untuk hal
lainnya yang terlalu teori. Begitu juga bila kita terangkan Turing Machine,
atau Automata tanpa keterkaitan dengan praktek sehari-hari akan membuat mereka
hanya menghafal atau malah tidur di kelas.
Kurikulum ataupun materi pelajaran yang memang
tidak memberikan jalinan antara teori dan praktek. Teori berjalan
sendiri-sendiri dan praktek begitu pula. Teori tidak atau kurang mengajak
melihat implementasi dari teori tersebut (misal source code nyata dari teori
itu).
Perangkat bantu yang pada tahun sebelumnya
sulit diperoleh di Indonesia secara massal dan murah. Perangkat bantu yang ada
sangat menghabiskan waktu bila ingin digunakan untuk menyusun sistem kompiler
sesungguhnya.
Kurang adanya pengajar yang memahami baik
teori dan praktek 8-). Banyak pengajar yang sangat baik pengetahuan teorinya
tetapi minim pengetahuan prakteknya. Hal ini melanda beberapa mata kuliah
teori. Begitu juga banyak pengajar yang sudah terlalu asyik dengan praktek,
malas membahas teori.
3. C compiler
Bahasa C++ emang ribet!! Pusing sendiri gw
ngebaca bukunya… Tapi gpp deh, semua yang gw tau gw tuangin disini.. Dengan
begitu gw rasa gw bisa makin gampang ngingetnya ahahaha
Cara Meng-Compile
pertama2 elo masuk ke Dev-CPP, abis itu pencet
file >> new >> source file. abis itu lo tulis code dibawah, setelah
selesai elo pijit execute >> compile.. tunggu sebentar, abis itu kalo
udah pencet execute >> run… dan selamat! program hello world pertama lo
telah berjalan!
#include // membuat program untuk menampilkan
data output ke layar monitor
int main()
// fungsi awal memulai eksekusi program
{
std::cout<< “Selamat Pagi DUNIA!!\n”;
//tampilin pesen
system(”pause”); // command dos pause
return 0; // menampilkan bahwa program telah
sukses dieksekusi
}
tinggal meng-compile source code tersebut agar
menjadi sebuah program “Hello World” sederhana…
sederhana banget yah?? tapi itu adalah basic
awal yang lo (gw jg) mesti ngerti bener.
***Berikut adalah penjelasan source diatas
setiap baris yang diberi tanda dua garis
miring (//), adalah komen (comment). Programmer memasukkan comment dalam
program untuk membantu orang lain dalam memahami program tersebut. Kata2 yang
ada didalam comment bakalan di abaikan oleh compiler. Comment yang dimulai
dengan (//) disebut dengan komen-satu-baris (single-line comment) karena
comment itu berakhir di akhir baris. Sedangkan comment dengan menggunakan lebih
dari satu line menggunakan tanda /* dan berakhir dengan */.
#include
Disebut Preprocessor directive, yang merupakan
sebuah pesan ke prosesor C++. Baris yang dimulai dengan # diproses dolo sama
prepocessor sebelum di compile. Line ini ngasih tau preprocessor untuk mengikut
sertakan ke dalam program input/output stream header file (keluar-masuk) atau .
File ini harus di ikut sertakan dalam setiap program agar bisa melakukan
input/output..
4. Interpreter dan Compiler
Interpreter
Pada bahasa yang menggunakan interpreter, ada
suatu program besar yang mendiami memori komputer secara terus menerus. Jika
dilakukan pengetikan sebaris program, misalnya suatu pernyataan BASIC, maka
interpreter ini akan mengawasi proses pemasukannya lalu menambahkan baris
tersebut kedalam program yang tadi sudah tersimpan dalam memori.
Ketika menjalankan program tersebut, interpreter
akan memeriksa program baris demi baris dan menterjemahkannya ke dalam bahasa
mesin (satu-satunya bahasa yang dapat dimengerti oleh microprocessor)
selanjutnya meminta komputer melaksanakan terjemahan itu kemudian melakukan
proses yang serupa untuk baris program berikutnya
Bahasa terinterprestasi cocok untuk
pengembangan program cepat karena programmer dapat menulis program dan langsung
mengeksekusinya serta melihat hasilnya. namun demikian bahasa ini memiliki
beberapa kelemahan :
proses eksekusinya lamban karena interpreter
harus menterjemahkan tiap baris program kedalam bahasa mesin setiap kali
program dieksekusi. Program tetntunya akan berjalan lebih cepat jika seluruh
bagian program diterjemahkan lebih dahulu sebelum dieksekusi,
harus adanya interpreter dalam memori komputer
pada saat ingin menjalankan program. Contoh untuk kasus ini adalah
disertakannya interpreter BASIC dalam PC 8088.
Compiler
Dalam bahasa terkompilasi, keseluruhan program
atau sub program diterjemahkan ke dalam bahasa mesin sekaligus. Proses
pengetikan dapat dilakukan dengan menggunakan pengolah kata, disisi lain
terdapat program terpisah yang disebut compiler yang menterjemahkan berkas
sumber ini menjadi berkas lain dalam bentuk bahasa mesin. Adapula compiler yang
menyediakan editor sendiri seperti Turbo C dari Borland.
Dedicated for Light Intermutimedia
Perusahaan Software Pulsa.
5. Kompilasi Kernel
Untuk seting IP Masquerade, langkah standar
pertama yang harus dilakukan adalah kompilasi ulang kernel Anda untuk mendukung
IP Masquerade. Pada binary Slackware SuSE dan RedHat yang dipergunakan di buku
ini, kompilasi kernel tidak diperlukan karena sudah otomatis mendukung IP
Masquerade.
Pilihan yang perlu dikompilasi, dengan
menjawab YES pada pilihan berikut :
CONFIG_EXPERIMENTAL
CONFIG_MODULES
CONFIG_NET
CONFIG_FIREWALL
CONFIG_INET
CONFIG_IP_FORWARD
CONFIG_IP_FIREWAL
CONFIG_IP_MASQUERADE
CONFIG_IP_MASQUERADE_IPPORTFW
CONFIG_IP_MASQUERADE_IPAUTOFW
CONFIG_IP_MASQUERADE_ICMP
CONFIG_IP_ALWAYS_DEFRAG
CONFIG_DUMMY
CONFIG_IP_MASQUERADE_MFW
Setelah itu ikuti dengan kompilasi modul.
# make modules
# make modules_install
Sumber :
Tidak ada komentar:
Posting Komentar
Silahkan Tinggalkan Komentar Untuk Perbaikan Postingan Selanjutnya !