Pada akhir semester, mahasiswa mahasiswa mampu untuk memahami konsep dan menerapkan aplikasi teknik kompilasi dari mulai analisis leksikal sampai dengan code generation dalam perkembangan ilmu pengetahuan dan teknologi. Mengenal kompiler, analisis leksikal, analisis sintaktik, syntax directed translation, intermediate code generation, code optimization, code generation.
Pada akhir semester, mahasiswa mahasiswa mampu untuk memahami konsep dan menerapkan aplikasi teknik kompilasi dari mulai analisis leksikal sampai dengan code generation dalam perkembangan ilmu pengetahuan dan teknologi. Mengenal kompiler, analisis leksikal, analisis sintaktik, syntax directed translation, intermediate code generation, code optimization, code generation.
Ini slide punya dosen saya, dalam kuliah pengenalan ilmu komputasi. Slide ini juga saya posting di blog milik saya.
jika punya waktu silahkan berkunjung http://kokoravana.blogspot.com/
Ini slide punya dosen saya, dalam kuliah pengenalan ilmu komputasi. Slide ini juga saya posting di blog milik saya.
jika punya waktu silahkan berkunjung http://kokoravana.blogspot.com/
Kampung Keluarga Berkualitas merupakan salah satu wadah yang sangat strategis untuk mengimplementasikan kegiatan-kegiatan prioritas Program Bangga Kencana secara utuh di lini
lapangan dalam rangka menyelaraskan pelaksanaan program-program yang dilaksanakan Desa
2. T U J U A NT U J U A N
• Agar mahasiswa dapat memahami konsep
dasar Teknik Kompilasi yang meliputi fungsi,
komponen, tahapan-tahapan, dan cara kerja
suatu compiler.
• Agar mahasiswa mengetahui bahwa Compiler
merupakan konstruksi inti dari ilmu komputer.
3. MATERI
• Konsep Dasar
• Lexical Analyzer (Scanner)
• Syntactic Analyzer (Parser)
• Semantic Analyzer
• Intermediate Code Generator
• Code Generator
• Code Optimizer
Referensi :
1. Teknik Kompilasi, Edi Sediyono, Penerbit Andi, 2005
2. Compilers : Principles, Techniques, and Tools, second
Edition, Alfred V. Aho, Monica S. Lam, dkk, 2007
4. ARTI KATA TEKNIK KOMPILASIARTI KATA TEKNIK KOMPILASI
• Teknik :
– Metode atau Cara
• Kompilasi :
– Proses mengabungkan serta menterjermahkan
sesuatu (source program) menjadi bentuk lain
• Compile :
– To translate a program written in a high-level
programming language into machine language.
6. 1. BAHASA MESIN
Merupakan bentuk terendah dari bahasa
komputer. Setiap Instruksi dalam program
direpresentasikan dengan kode numerik yang
secara fisik berupa deretan angka 0 & 1.
7. 2. BAHASA ASSEMBLY
(Bahasa Rakitan)
• Merupakan bentuk simbolik dari bahasa mesin.
• Setiap Kode Operasi memiliki kode simbolik,
misalkan ADD untuk penjumlahan (addition),
MUL untuk perkalian (Multiplication).
• Pada Bahasa Assembly terdapat alat bantu untuk
debug yang tidak terdapat pada bahasa mesin
Contoh : Turbo Assembler dari Borland, Macro
Assembler dari Microsoft, DEBUG yang tersedia
pada DOS
8. 3. BAHASA TINGKAT TINGGI
• Disebut tingkat tinggi karena lebih dekat
dengan manusia.
• Bahasa ini memberikan fasilitas yang lebih
banyak, kontrol program yang terstruktur, dan
prosedur.
Contohnya : Pascal, Bahasa C, Java, dll
9. 4. BAHASA PROBLEM ORIENTED
• Bahasa ini
memungkinkan
penyelesaian untuk
suatu masalah atau
aplikasi yang spesifik.
Contohnya : SQL, dll
• Bahasa ini kadang
dimasukkan ke dalam
bahasa tingkat tinggi.
10. KEUNTUNGAN
BAHASA TINGKAT TINGGI
1. Kemudahan untuk dipelajari
2. Lebih mendekati permasalahan yang akan terselesaikan
3. Pemrogram tidak perlu mengetahui bagaimana
representasi data ke dalam bentuk internal memory.
4. Memberikan banyak pilihan struktur kontrol seperti
looping, dll
5. Program lebih mudah di Debug
6. Kemampuan stuktur data lebih baik, dll…..
*Agar dapat dieksekusi, sebuah program dalam bahasa
tingkat tinggi tentu saja harus ditranslasikan ke dalam
bahasa mesin.
11. TRANSLATOR
• Melakukan pengubahan source code (Program
sumber) ke dalam target code/object code.
• Source Code ditulis dalam bahasa sumber,
sedangkan object code bisa berupa bahasa
pemrograman lain atau bahasa mesin pada suatu
komputer.
• Jika source code adalah high level language,
seperti cobol, pascal, fortran, c, maka objeknya
adalah bahasa tingkat rendah atau bahasa mesin.
Translator seperti ini disebut COMPILER.
12. Kenapa perlu Translator ?Kenapa perlu Translator ?
• Dengan bahasa mesin adalah bahasa bentuk bahasa
terendah komputer, berhubungan langsung dengan bagian
bagian komputer seperti bits, register & sangat primitive
• Jawaban atas pertanyaan ini akan membingungkan bagi
programmer yang membuat program dengan bahasa
mesin.
• Bahasa mesin adalah tidak lebih dari urutan 0 dan 1
• Instruksi dalam bahasa mesin bisa saja dibentuk menjadi
micro-code, semacam prosedur dalam bahasa mesin
13. MACAM-MACAM TRANSLATOR
1. Assembler
Source code adalah bahasa assembly, Object code adalah bahasa mesin.
2. Compiler
Source code adalah bahasa tingkat tinggi, object code adalah bahasa mesin atau
bahasa assembly. Source code dan data diproses berbeda. Contohny : Turbo Pascal,
Turbo C, Java, dll
14. MACAM-MACAM TRANSLATOR
3. Interpreter
Interpreter tidak menghasilkan bentuk object code, tetapi hasil translasinya hanya
dalam bentuk internal, dimana program induk harus selalu ada-berbeda dengan
compiler. Contohny : PHP, HTML, ASP, dll
15. Translator : Compiler &Translator : Compiler &
InterpreterInterpreter
OBJECT
PROGRAM
Source
Program
Compiler
ERROR
MESSAGES
16. COMPILER vs INTERPRETER
Compiler
1. Untuk menjalankan
program hasil kompilasi
dapat dilakukan tanpa
membutuhkan source code
2. Membutuhkan linker untuk
menggabungkan kode objek
dengan berbagai macam
library demi menghasilkan
suatu kode yang bisa
dijalankan oleh mesin.
3. Dll….
Interpreter
1. Untuk menjalankan
program hasil harus
menggunakan source code
2. Tidak butuh linker untuk
menggabungkan kode objek
dengan berbagai macam
library.
3. Dll…
18. MODEL KOMPILATOR
Keterangan Gambar :
• Scanner : Memecah program sumber menjadi besaran leksik/token
• Parser : Memeriksa kebenaran & urutan kemunculan token
• Analisis Semantik : biasanya dalam realisasi akan digabungkan
dengan Intermiediate Code Generator
• Code Generator : Membangkitkan Kode Objek
• Code Optimizer : Memperkecil hasil & mempercepat proses
• Tabel Simbol : menyimpan semua informasi yang berhubungan
dengan proses kompilasi