Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Ilustrasi Proses Kompilasi

Presentasi serupa


Presentasi berjudul: "Ilustrasi Proses Kompilasi"— Transcript presentasi:

1 Ilustrasi Proses Kompilasi
Kustanto 11/24/2018 Ilustrasi proses Kompilasi

2 ARTI KATA TEKNIK KOMPILASI
Metode atau Cara Kompilasi : Proses menerjemahkan bahasa tingkat tinggi ke dalam bahasa Assembly. Compile : To translate a program written in a high-level programming language into machine language. 11/24/2018 Ilustrasi proses Kompilasi

3 Translator : Compiler & Interpreter
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 11/24/2018 Ilustrasi proses Kompilasi

4 Ilustrasi proses Kompilasi
Ada Beberapa Translator 1. Assembler Source code adalah bahasa assembly, Object code adalah bahasa mesin (Program penerjemah dari bahasa Assembly ke dalam bahasa mesin disebut Assembler) *.asm Assembler Object code *.exe /*.com 2. Compiler Source code adalah bahasa tingkat tinggi, object code adalah bahasa mesin atau bahasa assembly. Source code dan data diproses berbeda Object Code    : Program hasil keluaran dari kompiler. 11/24/2018 Ilustrasi proses Kompilasi

5 Ilustrasi proses Kompilasi
Program ASM Kompilasi dan hasil 11/24/2018 Ilustrasi proses Kompilasi

6 Ilustrasi proses Kompilasi
Object Code    : Program hasil keluaran dari kompiler. compiler Source code Execution Data Compiler Object Code Hasil 3. Interpreter Interpreter tidak menghasilkan bentuk object code, tetapi hasil translasinya hanya dalam bentuk internal, dimana program induk harus selalu ada-berbeda dengan compiler (Interpreter tidak menerjemahkan semua baris perintah dalam suatu program, tetapi hanya menganalisis dan kemudian langsung mengeksekusi setiap baris perintah tersebut). Source code Translator Hasil Data 11/24/2018 Ilustrasi proses Kompilasi

7 Ilustrasi proses Kompilasi
Contoh:   20 x = y + z BASIC akan menganalisis baris tersebut menggunakan beberapa prosedur yang ada pada interpreter BASIC dan kemudian menjumlahkan nilai y dan z di memori dan hasilnya diletakkan pada x. Keuntungan interpreter adalah pengguna dapat cepat memperoleh tanggapan. Dengan menulis satu baris perintah, lalu menulis RUN, pemakai bisa langsung mengetahui hasilnya. Sedangkan kerugiannya adalah lambat.  Misalnya ada program pengulangan seperti berikut ini: 10 for i = 1 to 100 20 x(i) = y(i) + z(i) 30 next i Interpreter BASIC akan menganalisis baris 20 sebanyak 100 kali. Untuk hal-hal semacam ini kompiler akan menunjukkan eksekusi yang lebih cepat. kompiler tidak menerjemahkan semua perintah program sumber menjadi kode objek, tetapi kompiler akan menyediakan subroutine khusus dan subroutine tersebut hanya akan digunakan pada saat program hasil kompilasi dijalankan. Kumpulan subroutine tersebut dinamakan Run-time-library. 11/24/2018 Ilustrasi proses Kompilasi

8 Translator : Compiler & Interpreter
OBJECT PROGRAM Source Program Compiler ERROR MESSAGES 11/24/2018 Ilustrasi proses Kompilasi

9 Proses kompilasi dikelompokkan ke dalam dua kelompok besar :
analisa : program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (inter-mediate representation) sintesa : membangun program sasaran yang diinginkan dari bentuk antara 11/24/2018 Ilustrasi proses Kompilasi

10 Fase-fase proses sebuah kompilasi
11/24/2018 Ilustrasi proses Kompilasi

11 Ilustrasi proses Kompilasi
Contoh Kompilasi 11/24/2018 Ilustrasi proses Kompilasi

12 Ilustrasi proses Kompilasi
View dari programmer 11/24/2018 Ilustrasi proses Kompilasi

13 Ilustrasi proses Kompilasi
Mesin View 11/24/2018 Ilustrasi proses Kompilasi

14 Ilustrasi proses Kompilasi
Pembuatan compiler 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 11/24/2018 Ilustrasi proses Kompilasi

15 Ilustrasi proses Kompilasi
Pembuatan compiler 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 11/24/2018 Ilustrasi proses Kompilasi

16 Ilustrasi proses Kompilasi
Pembuatan compiler 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 11/24/2018 Ilustrasi proses Kompilasi

17 Ilustrasi proses Kompilasi
Pembuatan compiler BootStrap Untuk membangun sesuatu yang besar, dibangun/dibuat dulu bagian intinya (niklaus Wirth - saat membuat pascal compiler) 11/24/2018 Ilustrasi proses Kompilasi

18 Ilustrasi proses Kompilasi
BootStrap Po P1 P2 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 11/24/2018 Ilustrasi proses Kompilasi

19 Ilustrasi proses Kompilasi
Contoh dari source program ke dalam kode mesin Source code Assembly Language Machine language IF COUNT = Compare A to B Compare GOTO DONE If equal go to C If = go to 23883 ELSE Go to D Go to 23343 GOTO AGAIN ENDIF Actual machine code 11/24/2018 Ilustrasi proses Kompilasi

20 Ilustrasi proses Kompilasi
Struktur Compiler 11/24/2018 Ilustrasi proses Kompilasi

21 Bagian-bagian Compiler:
Lexical Analiysis (scanner), ugasnya secara detail adalah mengindentifikasi semua besaran yang membangun suatu bahasa; mentransformasikan, dan menentukan jenis token; menangani kesalahan dan tabel simbol.  Contoh besaran Leksikal : Identifier, dapat berupa keyword atau nama kunci, seperti IF.. ELSE, BEGIN..END (pada Pascal), INTEGER (pascal), INT,FLOAT (bahasa C). Konstanta, terdiri dari besaran yang merupakan bilangan bulat (integer), bilangan pecahan (float/Real), boolean (true/false), karakter, string, dan sebagainya. Operator, terdiri dari operator aritematika ( + - * /), operator logika ( < = > ). Delimiter, berguna sebagai pemisah/pembatas, seperti kurung buka, kurung tutup, titik, koma,titik dua, titik-koma White Space, pemisah yang diabaikan oleh program seperti : enter, spasi, ganti baris, akhir file. 2. Syntax Analysis, bertugas memeriksa kebenaran urutan dari token-token yang terbentuk oleh lexical analysis. Pengelompokan token-token kedalam class syntax (bentuk syntax), seperti: procedure, Statement,dan  expression.  3. Semantics Analyser, proses ini adalah proses kelanjutan dari proses kompilasi sebelumnya, yaitu analisa leksikal (scanning) dan analisa sintaks (parsing). Parserhanya akan mengenali simbol-simbol '=', '+' dan '*', parser tidak mengetahui makna dari simbol-simbol tersebut, untuk mengenali simbol-simbol tersebut Compiler menggunakan Analysis Semantics. Pemeriksaan biasa dilakukan pada tabel indentifier, tabel  display, dan tabel block. 4. Intermediate Code, bertujuan untuk memperkecil usaha dalam membuat compilator dari sejumlah bahasa ke sejumlah mesin. 11/24/2018 Ilustrasi proses Kompilasi

22 Ilustrasi proses Kompilasi
Tabel Informasi/simbol: 1.      Tabel identifier, berfungsi menampung semua identifier yang terdapat dalam program. 2.      Tabel Array, berfungsi menampung informasi tambahan untuk sebuah array. 3.      Tabel blok, mencatat variabel-variabel yang ada pada blok yang sama. 4.      Tabel Real, menyimpan elemen tabel bernilai real. 5.      Tabel string,menyimpan informasi string. 6.      Tabel display, mencatat blok yang aktif. 11/24/2018 Ilustrasi proses Kompilasi

23 Ilustrasi proses Kompilasi
Konsep Pascal  Struktur dari suatu program pascal terdiri dari sebuah judul program dan suatu blok program atau badan program.  Blok program dibagi lagi menjadi dua bagian, yaitu : bagian deklarasi dan bagian pernyataan. 11/24/2018 Ilustrasi proses Kompilasi

24 Secara ringkas, struktur suatu program pascal dapat terdiri dari:
11/24/2018 Ilustrasi proses Kompilasi

25 Ilustrasi proses Kompilasi
b. Bagian Deklarasi,  Bagian deklarasi digunakan bila didalam program menggunakan pengenal (identifier) yang dapat berupa label, konstanta, tipe, variable, prosedur dan fungsi. 1. Deklarasi Konstanta, diawali dengan kata cadangan Const diikuti oleh kumpulan identifier yang diberi suatu nilai konstanta. Data konstanta nilainya sudah ditentukan dan pasti, tidak dapat dirubah didalam program 2. Deklarasi Variabel, Variabel adalah identifier yang berisi data yang dapat diubah-ubah nilainya didalam program. Menggunakan kata cadangan Var sebagai judul didalam bagian deklarasi variable dan diikuti oleh satu atau lebih identifier yang dipisahkan koma, diikuti dengan titik dua dan tipe dari datanya diakhiri dengan titik koma. 3.      Deklarasi Tipe, Pascal menyediakan beberapa macam tipe data, yaitu : 1)      tipe data sederhana, terdiri dari : a. tipe data standar : integer, real, char, string, Boolean. b. Tipe data didefinisikan pemakai : enumerated atau scalar, subrange  2)      Tipe data terstruktur : array, record, file, set 3)      Tipe data penunjuk 4. Deklarasi Label, Jika program menggunakan statement Goto untuk meloncat ke suatu statement yang tertentu, maka dibutuhkan suatu label pada statement yang dituju dan label tersebut harus di deklarasikan terlebih dahulu pada bagian deklarasi. Menggunakan kata cadangan Label diikuti oleh kumpulan identifier label dengan dipisahkan oleh koma dan diakhiri dengan titik koma. 5. Deklarasi Prosedur, Prosedur merupakan bagian yang terpisah dari program dan dapat diaktifkan dimanapun didalam program. Prosedur dibuat sendiri bilamana program akan dibagi-bagi menjadi beberapa blok-blok modul. Prosedur dibuat didalam program dengan cara mendeklarasikannya dibagian deklarasi prosedur. Menggunakan kata cadangan Procedure. 6. Deklarasi Fungsi, Fungsi juga merupakan bagian program yang terpisah mirip dengan prosedur, tetapi ada beberapa perbedaannya. Kata cadangan yang digunakanFunction. Function. b.      Bagian pernyataan Program pascal yang paling sederhana adalah program yang hanya terdiri dari sebuah bagian pernyataan saja. Begin End. Bentuk umum dari bagian pernyataan adalah : Statement; End . Konsep 11/24/2018 Ilustrasi proses Kompilasi

26 Ilustrasi proses Kompilasi
Program Pascal yang paling sederhana Begin             Pernyataan; End. Contoh: Begin             Writeln(‘test’); End. Judul Program Program Contoh_awal; Begin             Writeln(‘Pascal’);             Writeln(‘test’); End.            11/24/2018 Ilustrasi proses Kompilasi

27 Struktur Program Pascal
program nama_program; { Judul Program, boleh ada atau boleh tidak ada} uses  ; { Unit yang digunakan, misalnya uses wincrt } var  ; { Definisi variabel } begin Statemen; { Pernyataan-pernyataan, misalnya writeln, readln } end. 11/24/2018 Ilustrasi proses Kompilasi

28 Contoh Cara menggunakan variable di dalam pascal
program latihan_pascal; uses wincrt; var nama: string; {Kalau hanya string boleh, jadi tidak terbatas karakternya} begin clrscr; write(‘ Masukkan Nama : ‘);readln(nama); write(‘ Halo, Nama Saya ‘,nama); readln; End. 11/24/2018 Ilustrasi proses Kompilasi

29 Contoh Penulisan program
11/24/2018 Ilustrasi proses Kompilasi

30 Ilustrasi proses Kompilasi
Selesai 11/24/2018 Ilustrasi proses Kompilasi


Download ppt "Ilustrasi Proses Kompilasi"

Presentasi serupa


Iklan oleh Google