1 / 16

Pertemuan 1 & 2 Pendahuluan

Pertemuan 1 & 2 Pendahuluan. Matakuliah : T0174 / Teknik Kompilasi Tahun : 2005 Versi : 1/6. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Menjelaskan pentingnya penggunaan kompiler dalam pembuatan program komputer

darryl
Download Presentation

Pertemuan 1 & 2 Pendahuluan

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pertemuan 1 & 2Pendahuluan Matakuliah : T0174 / Teknik Kompilasi Tahun : 2005 Versi : 1/6

  2. Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Menjelaskan pentingnya penggunaan kompiler dalam pembuatan program komputer • Memahami tahapan-tahapan proses kompilasi dan elemen-elemen yang digunakan dalam kompilasi

  3. Outline Materi • Pengertian kompilasi • Grouping of phases • Cousins of the compiler • Language Processing System • Tahapan kompilasi • Contoh penerjemahan • Compiler construction tools

  4. Pengertian dasar • Proses penterjemahan dalam kehidupan sehari-hari • Proses kompilasi komputer • Compiler merupakan program yang membaca suatu program yang ditulis dalam suatu bahasa- source language - dan menterjemahkannya ke dalam bahasa yang lain – target language. Bahasa lain Bahasa sendiri Translator Target language Source Language Compiler

  5. Pengertian dasar • Source language berupa high level language seperti PASCAL, C, C++, FORTRAN, COBOL dan lain-lain • Target language dapat berupa bahasa Assembly, Bahasa mesin, ataupun bahasa yang lain dari source language. • Contoh, penterjemahan dari bahasa FORTRAN ke bahasa C, bahasa PASCAL ke Assembly, atau kombinasi yang mungkin terjadi dari bahasa-bahasa tersebut di atas.

  6. Klasifikasi kompiler • single pass • multi pass • load-and-go • Debugging • optimizing.

  7. Gambaran umum kompiler

  8. Cousins of the compiler • Preprocessor • Untuk menggabungkan skeletal programyang menjadi input untuk compiler, dan melakukan fungsi-fungsi macro processing, file inclusion, rational preprocessor, dan language extensions. • Assembler • melakukan pemrosesan terhadap output dari compileryang menghasilkan kode-kode biner yang belum memiliki alamat memory (memory addressing) • Loader and link-editor • melakukan penggabungan antara relocatable machine code dengan library ataupun relocatable object files untuk mendapatkan absolut machine code.

  9. Language Processing System skeletal souce program Preprocessor souce program Compiler target assembly program Assembler relocatable machine code Library, relocatable Object files Loader / Link-editor absolutemachine code

  10. Fungsi-fungsi preprocessor • Macro processing • Pemrosesan macro yang didefinisikan programmer • File inclusion • preprocessor akan meng-include header file ke dalam program • Rational preprocessor • preprocessor dapat meningkatkan kemampuan/menambah fasilitas dari bahasa yang telah lama (older language) • Language extensions • menggabungkan perintah yang ditulis dalam bahasa lain ke dalam program dalam bentuk built-in macro.

  11. Target program Source program lexical analyzer syntaxanalyzer semantic analyzer symbol-table manager error handler intermediate code generator code optimizer code generator Tahapan kompilasi

  12. Tahapan kompilasi • Tahap analisis: • lexical analyzer • syntax analyzer • semantic analyzer. • Tahap sintesis: • intermediate code generator • code optimizer • code generator. • Symbol table manager • untuk membuat record dari identifier yang digunakan dalam source program dan mengumpulkan atribut yang menyangkut setiap identifier • Error Handler • bagian kompiler yang menangani dan melaporkan kesalahan yang ditemukan.

  13. := id1 + id2 * id3 60 := id1 + id2 * id3 inttoreal 60 Contoh penerjemahan position := initial +rate * 60 lexical analyzer id1 := id2 + id3 * 60 syntax analyzer Symbol Table 1 position…….. 2 initial…….. 3 rate…….. 4 semantic analyzer intermediate code generator

  14. intermediate code generator temp1 := inttoreal(60) temp2 := id3 * temp1 temp3 := id2 + temp2 id1 := temp3 code optimizer temp1 := id3 * 60.0 id1 := id2 + temp1 code generator MOVF id3, R2 MULF #60.0, R2 MOVF id2 ,R1 MOVF R2, R1 MOVF R1, id1 Lanjutan contoh ..

  15. Compiler construction tools • Parser Generator • tools yang menghasilkan Syntax Analyzer (parser), dari input yang berdasarkan Context Free Grammar. • Scanner Generator • tools menghasilkan lexical Analyzer (scanner), dari spesifikasi yang berdasarkan regular expression. • Syntax Directed translation Engine • tools yang dapat menghasilkan sekumpulan routine yang dapat ‘berjalan’ (run) di parse tree dan menghasilkan intermediate code.

  16. Compiler construction tools • Automatic Code Generator • tools untuk mengambil kumpulan rules yang mendefinisikan penerjemahan dari setiap operasi dari intermediate language ke dalam machine language dari target machine. • Data Flow Engine • tools untuk mengumpulkan informasi tentang bagaimana values ditransmisikan dari suatu bagian program ke bagian program lainnya, untuk keperluan “data flow analysis” pada tahap optimasi code.

More Related