Ilustrasi Proses Kompilasi

Slides:



Advertisements
Presentasi serupa
PROCEDURE Temu IX BANGHER.
Advertisements

Pengayaan Software/Hardware dan Pengantarmukaan
PROCEDURE  PROCEDURE   Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok.
Konsep Dasar Bahasa Pascal
Dasar Komputer & Pemrog 2 A minggu 4
Pengenalan Bahasa Pemrograman Pascal
Teknik Kompilasi Febuari 2013.
PEMROGRAMAN PASCAL Sejarah Pascal Pascal merupakan pengembangan dari bahasa ALGOL 60, bahasa pemrograman untuk sains komputasi. Tahun 1960, beberapa ahli.
RECORD.
STRUKTUR SUATU BAHASA PEMROGRAMAN
Pengantar Teknik Kompilasi
TABEL INFORMASI / SIMBOL
TEKNIK KOMPILASI.
Perkembangan Bahasa.
KONSEP dan NOTASI BAHASA
Procedure & Function Sub Program.
Dasar Komputer & Pemrog. 2A
PROSEDUR.
Basic Concept with Pascal
Procedure , Function dan Parameter
Outline Awalnya dikembangkan oleh Borland dan umunya igunakan untuk paket perangkat lunak tingkat lanjut dengan kepustakaan yang lebih banyak dan.
Lexical Analyzer (Scanner)
T I P E D A T A.
Pengantar Teknik Kompilasi
MATERI PERKULIAHAN TEKNIK KOMPILASI
ALGORITMA PEMROGRAMAN 2A
TEKNIK KOMPILASI.
MODEL KOMPILATOR FUNGSI UMUM BAGIAN KOMPILATOR Dosen Pengampu:
FUNGSI UMUM BAGIAN KOMPILATOR Dosen Pengampu: Istiqomah, s.kom
Tabel Informasi/ Tabel Simbol
PENGANTAR TEKNIK KOMPILASI
Teknik Kompilasi “Translator”
Struktur Program Pascal
Dasar-Dasar Pemrograman
Algoritma dan Pemrograman 2A
TABEL INFORMASI atau TABEL SIMBOL
Dasar-Dasar Pemrograman
Konsep Dasar Bahasa Pascal
LINGKUNGAN TURBO PASCAL
Analisis semantik, kode antara dan pembangkitan kode
Pesan-pesan kesalahan
Pengantar Teknik Kompilasi
Analisis leksikal (Scanner)
MODEL KOMPILATOR FUNGSI UMUM BAGIAN KOMPILATOR Dosen Pengampu:
Pseudocode – Tipe Data, Variabel, dan Operator
Pengantar Teknik Kompilasi
Semantics Analyser Contoh : A := ( A+B) * (C+D)
PEMROGRAMAN PASCAL ELEMEN PEMROGRAMAN PASCAL.
ANALISIS LEKSIKAL (Scanner)
Analisis leksikal ( SCANNER )
Tipe data & Variabel 1. Bahasa Pascal 2. Tipe data & Variabel
Dasar-Dasar Pemrograman
PENGENALAN PASCAL STATEMENT TIPE DATA
Teknik Kompilasi “Translator”
Tipe data & Variabel 1. Aturan Leksikal. 2. Operator. 3. Statement
Proses kompilasi COMPILATOR.
ARRAY (LARIK) MINGGU VI.
Bahasa Pemrograman Pascal
TEKNIK KOMPILASI PERTEMUAN II.
Teknik Kompilasi Abdul Wahid, ST, M.Kom
Pemrogram 1 Agus Darmawan, S.kom.
Tipe data & Variabel 1. Bahasa Pascal 2. Tipe data & Variabel.
PERKEMBANGAN PASCAL Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan Nama pascal diambil sebagai penghargaan.
Dasar-Dasar Pemrograman
Pengantar Teknik Kompilasi
Pengantar Teknik Kompilasi
Teknik Optimasi by kustanto
Indentifier, Keywords, Variable, Tipe Data dan Operator
Semantics Analyser by Kustanto
Cara Penanganan Kesalahan
Transcript presentasi:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Contoh Penulisan program 11/24/2018 Ilustrasi proses Kompilasi

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