online stats Tips and tricks about computer: 13 Okt 2009
Blinkie Text Generator at TextSpace.net
BERANDATENTANG SAYAFACEBOOKFRIENDSTERTWITTERCLIXSENSEGOOGLEYAHOO!MSNBLOGGER

Selasa, 13 Oktober 2009

Compiler

1. 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

Baca Selengkapnya...