Kamis, 09 Juli 2015

tugas makalah kompilasi smstr 4



KATA PENGANTAR 
Puji dan syukur ke hadirat  Tuhan Yang Maha Esa karena atas berkat, rahmat, dan karunia-Nya sehingga dapat menyelesaikan makalah ini tepat pada waktu yang diberikan. Makalah ini ditujukan untuk memenuhi tugas pengantar teknik kompilasi yang berisikan tentang  translator compiler, interpreter dan assembler.
Dalam penyusunan makalah ini penulis mengucapakan terima kasih kepada semua pihak yang telah membantu dalam menyelesaian makalah dengan tepat waktu. Dalam pembuatan makalah ini mungkin masih jauh dari sempurna, oleh karena itu diharapkan  kritik dan saran yang bersifat membangun agar makalah ini dapat menjadi lebih sempurna.

Kelapa Dua , 11 Juni 2015
Penulis

                                               







    DAFTAR ISI
KATA PENGANTAR ……………………………………………………………………..1
DAFTAR ISI ……………………………………………………………………………….2
BAB I  PENDAHULUAN
I.                    LATAR BELAKANG……………………………………………………….. 3
II.                BATASAN MASALAH……………………………………………………… 4
III.             TUJUAN MASALAH  ………………………………………………………..4
BAB II PEMBAHASAN
1.1      PENGERTIAN COMPILER ,INTREPRETER ,ASSEMBLER  ………………..7
1.2     IMPLEMENTASI COMPILER …………………………………………………11
1.3     LISTING PROGRAM COMPILER …………………………………………….12
BAB III PENUTUP  ……………………………………………………………………..15
DAFTAR ISI …………………………………………………………………………….16














BAB I
PENDAHULUAN
I.                  Latar Belakang
Kompilator (Inggris: compiler) adalah sebuah program komputer yang berguna untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang ditulis dalam bahasa pemrograman lain.Terlepas dari pengertiannya yang demikian relatif luas, istilah kompilator biasa digunakan untuk program komputer yang menerjemahkan program yang ditulis dalam bahasa pemrograman tingkat tinggi (semacam bahasa Pascal, C++, BASIC, FORTRAN, Visual Basic, Visual C#, Java, xBase, atau COBOL) menjadi bahasa mesin, biasanya dengan bahasa Assembly sebagai perantara.
Bahasa mesin adalah bentuk bahasa terendah pada komputer, kita dapat berhubungan/komunikasi langsung dengan bagian-bagian yang ada di dalam komputer seperti bits, register dan sangat primitif. Bahasa mesin adalah tidak lebih dari urutan bit-bit 0 dan 1. Instruksi dalam bahasa mesin bisa saja dibentuk menjadi micro-code, semacam prosedur dalam bahasa mesin. Bagaimana dengan orang yang tidak mengerti bahasa mesin? Bagi user yang tidak mengerti bahasa mesin akan mengalami masalah. Hal ini disebabkan karena mereka harus belajar dahulu bahasa mesin, dan akan bergabung pada jenis mesin komputer yang digunakan. Jika jenis komputer mengalami perubahan maka dapat dipastikan bahwa user harus mempelajari lagi bahasa mesin dengan  jenis komputer yang baru. Oleh karena itu manusia berusaha dan menciptakan suatu bahasa yang dapat dimengerti baik oleh manusia maupun oleh komputer. Bahasa yang demikian ini sering disebut dengan bahasa tingkat tinggi.
Untuk era sekarang user tidak lagi banyak dipusingkan mengenai penterjema karena kemudahan-kemudahan yang diberikan oleh bahasa tingkat tinggi sekarang sangatlah memudahkan dan lebih fleksibel dalam bekerja pada mesin-mesin komputer yang berbeda.



II. Batasan Masalah
Batasan Masalah ini menjelaskan tentang :
1.      Pengertian dan model  dari Compiler, Interpreter, dan Assemler
2.      Bagaimana program ataupun aplikasi dari compiler ,interpreter dan assembler
3.      Implementasi Compiler

III.  Tujuan Makalah
1.      Agar pembaca bisa mengerti pengertian Compiler, Interpreter, dan Assemler
2.      Mengetahui Penerapan konsep ilmu komputer pada perilaku komputer yaitu algoritma, arsitektur komputer, pada Compiler adalah merupakan konstruksi inti dari ilmu komputer





                                                                       









BAB II
PEMBAHASAN
1.1            PENGERTIAN
ARTI KATA TEKNIK KOMPILASI:
  • Teknik adalah suatu metode atau cara
  • Kompilasi suatu proses menggabungkan serta menterjemahkan sesuatu (source program) menjadi bentuk lain
  • Compile: menterjemahkan sebuah program yang ditulis dalam bahasa pemrograman tingkat tinggi ke bahasa mesin

Translator :  Compiler & Interpreter
Translator Adalah suatu program dimana mengambil input sebuah program yang ditulis pada satu bahasa program (source language) ke  bahasa lain (The object on target language).
Jika source language adalah high level language, seperti cobol, pascal, fortran maka object language adalah low-level language atau mesin language. Translator seperti ini disebut COMPILER.






Gambar 1.1: proses penterjemah


COMPILER vs INTERPRETER
  • Compiler bisa menangkap berbagai kesalahan dalam 1 program kode sumber secara sekaligus. Kalau Interpreter cuma bisa menangkap beberapa kesalahan pada 1 baris kode sumber pada suatu saat
  • Biasanya program yang dihasilkan compiler lebih cepat dari waktu pelaksanaan program dengan interpreter.
  • Kalau compiler menghasilkan kode antara (misal object code) dan harus digabungkan / dilink menjadi bentuk yang dapat dijalankan mesin / komputer (executable). Kalau Interpreter biasanya tidak menghasilkan kode antara.
  • Kalau hendak menjalankan program hasil kompilasi bisa dilakukan tanpa kode sumber. Kalau interpreter butuh kode sumber.
  • Kalau dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing / pembuatan kode objek dan linking / penggabungan kode objek dengan library. Kalau interpreter tidak ada proses terpisah.
  • Kalau compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker.
  • Interpreter cocok untuk membuat / menguji coba modul / sub-routine / program-program kecil. Kalau compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.
  • Pada kompiler bisa dilakukan optimisasi / peningkatan kwalitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah / tidak bisa dioptimasikan.

Ada beberapa definisi dari jenis translator untuk menterjemah agar dikenali oleh mesin diantaranya:
1.      Assembler
Bahasa assembly adalah sebuah program yang terdiri dari instruksi-instruksi yang menggantikan kode-kode biner dari bahasa mesin dengan “mnemonik” yang mudah diingat. Misalnya sebuah instruksi penambahan dalam bahasa mesin dengan kode “10110011” yang dalam bahasa assembly dapat dibuat dalam instruksi Mnemonik ADD, sehingga mudah diingat dibandingkan dengan angka 0 dan 1, dalam setiap instruksi membutuhkan suatu operand baik berupa data langsung maupun suatu lokasi memori yang menyimpan data yang bersangkutan.

Source code adalah bahasa assembly, Object code adalah bahasa mesin .


 
 
Gambar 1: Penterjemah Assembler

2.       Compiler
Compiler adalah suatu program yang menerjemahkan bahasa program ( source code) kedalam bahasa objek (obyek code). Compiler menggabungkan keseluruhan bahasa program, mengumpulkannya dan kemudian menyusunnya kembali. Contoh program yang menggunakan compiler adalah Visual Basic, Visual Delvi, dan Pascal.



Source code adalah bahasa tingkat tinggi, object code adalah bahasa mesin atau bahasa assembly. Source code dan data diproses berbeda.


 




Gambar 2: Penterjemah Compiler

3.      Interpreter
Interpreter adalah Perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.

Interpreter tidak menghasilkan bentuk object code, tetapi hasil translasinya hanya dalam bentuk internal, dimana program induk harus selalu ada-berbeda dengan compiler.

 
 




Gambar 3 : Penterjemah Interpreter



Pembuatan compiler

Kompiler yang bagus adalah yang dapat bekerja dengan baik pada mesin-mesin komputer dan tidak membutuhkan proses yang lama. Ada berapa cara dalam membuat suatu penterjemah dalam hal ini ,misalnya compiler akan bahasa yang digunakan untuk membuat compiler pun beragam misalnya :

Bahasa mesin
·         Sangat sukar dan sangat sedikit kemungkinannya untuk membuat compiler dengan bahasa ini, karena manusia susah mempelajari bahasa mesin,
·         Sangat tergantung pada mesin,
·         Bahasa Mesin kemungkinan digunakan pada saat pembuatan Assembler
Assembly
·         Hasil dari program mempunyai Ukuran yang relatif kecil
·         Sulit dimengerti karena statement/perintahnya singkat-singkat, butuh usaha yang besar untuk membuat
·         Fasilitas yang dimiliki terbatas

Bahasa Tingkat Tinggi (high level language)
·         Lebih mudah dipelajari
·         Fasilitas yang dimiliki lebih baik (banyak)
·         Memiliki ukuran yang relatif besar, misal membuat compiler pascal dengan menggunakan bahasa C
·         Untuk mesin yang berbeda perlu dikembangkan tahapan-tahapan tambahan.
·         Misal membuat compiler C pada Dos bedasarkan compiler C pada unix




Bahasa Tingkat Tinggi (pemrograman)

·         Bahasa yang lebih dikenal oleh manusia, maksudnya adalah statement yang digunakan menggunakan bahasa yang dipakai oleh manusia (Inggris)
·         Programmudah untuk dikoreksi dan diperbaiki (debug)
·         Tidak tergantung pada salah satu jenis mesin komputer
·         Bahasa tingkat tinggi biasanya masih membutuhkan translator
·         Memberikan fasilitas yang lebih banyak, seperti struktur kontrol program yang terstruktur, memiliki blok-blok, serta prosedur dan fungsi-fungsi:
o   Struktur kontrol seperti:
o   kondisi (If ...Then...Else),
o   perulangan (For, While)
o   struktur blok (begin...End, {...})
·         Oleh karena itu dari bahasa tingkat tinggi ke dalam bahasa mesin dibutuhkan sesuatu untuk menterjemahkan agar mesin (komputer) mengerti apa yang diinginkan manusia. Menerjemahkan statement bahasa tingkat tinggi ke dalam bahasa tingkat rendah dapat dibedakan menjadi dua; melalui interpreter atau compiler yang fungsinya sama yaitu menerjemahkan.

BootStrap
·         Untuk membangun sesuatu yang besar, dibangun/dibuat  dulu bagian intinya (niklaus Wirth - saat membuat pascal compiler).

·         PO dibuat dengan assembly, P1 dibuat dari P0, dan P2 dibuat dari P1, jadi compiler untuk bahasa P dapat dibuat tidak harus dengan  menggunakan assembly secara keseluruhan.


1.2 Implementasi pada compiler
Pemograman merupakan suatu proses guna mengimplentasikan algoritma dengan menggunakan suatu bahasa pemrograman. Agar komputer dapat memahami program yang disusun dengan suatu bahasa pemrograman, maka dibutuhkan suatu penerjemah, yaitu interprenter atau compiler .Adapun penjelasan dari masing-masing proses adalah sebagai berikut:
Saurce code: Source code (atau disebut juga source) adalah kumpulan pernyataan atau deklarasi bahasa pemrogramman komputer yang ditulis dan dapat di baca manusia. Source code memungkinkan programmer untuk berkomunikasi dengan komputer menggunakan beberapa perintah yang telah terdefinisi.
Compiler: Compiler adalah sebuah program komputer yang berguna untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang ditulis dalam bahasa pemrograman lain.
EXE (Executable / Application)Tipe file ini merupakan file yang sering terinfeksi virus dan sebagian besar virus juga berupa exe.
COM file (Command File), bisa berupa Text atau Binary File yang dijalankan under DOS / MS-DOS. Generasi awal virus sepertinya berupa file COM ini.
 SYS (Device Driver), merupakan file Binary yang digunakan untuk Driver.
Run: menjalankan atau memproses (suatu program dari source code sampai ke executable binary).







1.3     Cara Menjalankan Kode Program Pascal (Membuat File exe)

Berikut ketikkan kode program dibawah ini
 


 
 



Men-compile Kode Pascal (Membuat File .exe)
Setelah menyimpan file, langkah selanjutnya adalah men-compile kode program tersebut. Secara sederhana, compile adalah sebuah proses untuk membuat program executable (file .exe) berdasarkan kode yang telah dibuat.
Untuk men-compile kode program pascal, pilih menu Compile -> Compile. Atau gunakan shortcut ALT+F9.
Ketika melalukan proses compile, program Free Pascal (atau Turbo Pascal) akan memproses seluruh kode program dan menampilkan error (jika ada) atau menampilkan keterangan “Compile sucessfull: Press any key” jika berhasil.


























Menjalankan Kode Program Pascal (run)















  BAB III
PENUTUP
KESIMPULAN
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. Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa yang cermat, maka suatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan.
Pemograman merupakan suatu proses guna mengimplentasikan algoritma dengan menggunakan suatu bahasa pemrograman. Agar komputer dapat memahami program yang disusun dengan suatu bahasa pemrograman, maka dibutuhkan suatu penerjemah, yaitu interprenter atau compiler.












DAFTAR PUSTAKA

JOHAND WILLEM S. TEKNIK KOMPILASI PPT
ERNASTUTI & SULISTYO.TEKNIK KOMPILASI PDF
HARI SOETANTO.TEKNIK KOMPILASI ,2004

Tidak ada komentar:

Posting Komentar