Docstoc

T017457966 1-2

Document Sample
T017457966 1-2 Powered By Docstoc
					Matakuliah   : T0174 / Teknik Kompilasi
Tahun        : 2005
Versi        : 1/6




                   Pertemuan 1 & 2
                    Pendahuluan




                                          1
         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


                                                 2
            Outline Materi


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


                                  3
            Pengertian dasar

• Proses penterjemahan dalam kehidupan sehari-hari
      Bahasa sendiri   Translator     Bahasa lain


• Proses kompilasi komputer
   Source Language     Compiler       Target language




• Compiler merupakan program yang membaca suatu
  program yang ditulis dalam suatu bahasa- source
  language - dan menterjemahkannya ke dalam bahasa
  yang lain – target language.

                                                        4
          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.




                                                       5
        Klasifikasi kompiler

•   single pass
•   multi pass
•   load-and-go
•   Debugging
•   optimizing.




                               6
Gambaran umum kompiler



 Source                      Target
             Compiler
 Program                    Program




           Error messages



                                      7
     Cousins of the compiler

• Preprocessor
  – Untuk menggabungkan skeletal program yang menjadi input
    untuk compiler, dan melakukan fungsi-fungsi macro processing,
    file inclusion, rational preprocessor, dan language extensions.

• Assembler
  – melakukan pemrosesan terhadap output dari compiler yang
    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.

                                                                      8
Language Processing System
      skeletal souce program

           Preprocessor

          souce program

            Compiler

     target assembly program

            Assembler

     relocatable machine code

        Loader / Link-editor    Library, relocatable
                                Object files

      absolute machine code
                                                       9
     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.


                                                                  10
          Tahapan kompilasi
                             Source program


                             lexical analyzer


                             syntax analyzer



                            semantic analyzer

symbol-table manager                                  error
                                                     handler

                       intermediate code generator



                             code optimizer


                             code generator


                              Target program
                                                               11
          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.

                                                                         12
  Contoh penerjemahan
                 position := initial +rate * 60


                      lexical analyzer

                    id1 := id2 + id3 * 60

                      syntax analyzer

                              :=
Symbol Table           id1          +
1 position……..               id2          *
2 initial……..                       id3       60
3 rate……..
4                     semantic analyzer

                               :=
                        id1          +
                              id2         *
                                    id3 inttoreal
                                              60
                 intermediate code generator



                                                    13
Lanjutan contoh ..
       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




                                     14
    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.


                                                          15
    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.


                                                       16

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:178
posted:4/11/2010
language:Indonesian
pages:16
yudi herdiana yudi herdiana mr yudiherdiana.com
About