SlideShare una empresa de Scribd logo
1 de 12
Teknik Kompilasi
      Abdul Wahid, ST, M.Kom
Alamat : Jl. Mawar No. 22 A Sungguminasa
Tlp. 08152520599
Email : wahid@unm.ac.id / de_wahid@yahoo.com
FB : Abdul Wahid Yunus
Twitter :@wahid_yunus
Website : blog.unm.ac.id/wahid
Wahidlewa.worpress.com
                       Pendahuluan             1
Pendahuluan

    Tujuan Pembelajaran :
    1. Mahasiswa memahami cara kerja serta proses yang terjadi pada sebuah Compiler
    2. Mahasiswa memahami konsep pembuatan sebuah Compiler
    3. Mahasiswa mengetahui bagaimana sebuah bahasa pemrograman dapat diterjemahkan
       oleh mesin.

    Metari Pembelajaran
    1. Bentuk-bentuk karakter dan kelas Grammar.
    2. Ekspresi Regular dan Automata
    3. Analisa Leksikal sebagai tahap awal kompilasi
    4. Analisa Sintaks, bentuk-bentuk derivasi serta implementasi parsing.
    5. Analisa Semantik dan tahapan Sintesa.
    6. Penanganan kesalahan kompilasi dan fungsi tabel informasi.

                                                                                      2
Pendahuluan
1. Bahasa Pemrograman


                            Bahasa
                             mesin
                                                  Bahasa
                                                  Assembly




                Bahasa
              Pemrograman
                                                       Bahasa
                                                    Tingkat tinggi




                                    Bahasa
                               Problem Oriented



                                                                     3
Pendahuluan
Bahasa tingkat tinggi
     Bahasa mesin merupakan bentuk
                                                       (user oriented) lebih
      terendah dari bahasa komputer.
                                                    banyak memberikan fungsi
     Instruksi direpresentasikan dalam
                                                     kontrol program, kalang,
                kode numerik.
                                                       block, dan prosedur.




                                         Program
                                         Language




                                                          Bahasa problem oriented
   Bahasa Assembly merupakan bentuk                   sering juga dimasukkan sebagai
     simbolik dari bahasa mesin. Kode                       bahasa tingkat tinggi,
         misalnya ADD, MUL, dsb                          misalnya SQL, Myob, dsb.



                                                                                       4
Pendahuluan
2. Translator
      Translator melakukan pengubahan source code / source program kedalam target code / object code

       Interpreter dan Compiler termasuk dalam kategori translator.


                                               Interpreter

                                              Tidak membangkitkan object code
       Translator                             Source code dan data diproses bersamaan
                                              Contoh, BASICA, SPSS, DBASE III

                                                                         Assembler
                    Compiler

                 Source Code adalah bahasa tingkat tinggi.            Source Code adalah bahasa Assembly
                 Object Code adalah bahasa mesin atau assembly        Object Code adalah bahasa mesin
                 Source code dan data diproses tidak bersamaan        Contoh, Turbo Assembler
                 Contoh, PASCAL, C                                                                    5
Pendahuluan
Interpreter


                                      Penanganan
                                       Kesalahan




    Program      Analisa    Analisa         Intermediate                   Hasil
    Sumber                                                 Interpretasi   Operasi
                 Leksikal   Sintaks            Program




                                      Pengelolaan
                                         Tabel


                                                                                6
Pendahuluan
Assembler



                                                                                     File
         Source         Assembler          Object Code              Lingker         Target
          Code


          .ASM                                 .OBJ                               .EXE / .COM

                                  Proses Sebuah Kompilasi pada
                                       Bahasa Assembler

       • Source Code adalah bahasa Assembler, Object Code adalah bahasa mesin
       • Object Code dapat berupa file object (.OBJ), file .EXE, atau file .COM
       • Contoh : Turbo Assembler (dari IBM) dan Macro Assembler (dari Microsoft)




                                                                                                7
Pendahuluan
Compiler
     Definisi : Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulis
                Dalam suatu bahasa sumber (source language) dan menterjemahkannya kedalam suatu
                bahasa sasaran (target language)
     Proses kompilasi dapat digambarkan melalui sebuah blok diagram sebagai berikut :


              Program sumber                 Compiler                    Bahasa sasaran




                                       Pesan-pesan kesalahan
                                           (error messages)

     Proses Kompilasi dikelompokkan kedalam dua kelompok besar :
     1. Analisa : Program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (Intermediate
                  Representation )
     2. Sintesa : Membangun program sasaran yang diinginkan dari bentuk antara



                                                                                                      8
Pendahuluan
Blok Diagram


         Program                                                                Program
         Sumber                                                                 Sasaran




                        ANALISA                                            SINTESA
                                         Penganalisa
       Penganalisa      Penganalisa       Semantik             Pembentuk        Pengoptimal
         Leksikal         Sintaks        Pembangkit              kode              kode
        (scanner)         (parser)       Kode antara



                                          TABEL
                                          SIMBOL



                                Bagan pokok proses kompilasi


                                                                                              9
Pendahuluan
Keterangan

     1. Program Sumber ditulis dalam bahasa sumber, misal Pascal, Assembler, dsb
     2. Program Sasaran dapat berupa bahasa pemrograman lain atau bahasa mesin pada
          suatu komputer
     3. Scanner : Memecah program sumber menjadi besaran leksik/token
     4. Parser : Memeriksa kebenaran dan urutan kemunculan token
     5. Penganalisa semantik : Melakukan analisa semantik, biasanya dalam realisasi akan
          digabungkan Dengan intermediate code generator (bagian yang berfungsi
          membangkitkan kode antara)
     6. Pembentuk Kode : Membangkitkan kode objek
     7. Pengoptimal Kode : Memperkecil hasil dan mempercepat proses
     8. Tabel : Menyimpan semua informasi yang berhubungan dengan proses kompilasi


                                                                                           10
Pendahuluan
Library Object
                                                                               Code
          Source                              Object
          Code 1           Compiler 1
                                              Code 1
          Source                              Object
          Code 2           Compiler 2
                                              Code 2
                                                                 Lingker          Executable




          Source                              Object
          Code n           Compiler n
                                              Code n



              • Pembentukan file Executable berdasar dari beberapa Source Code
              • Source Code dapat terdiri dari satu atau lebih behasa pemrograman.



                                                                                               11
Pendahuluan
Pembuatan Compiler

     Pembuatan kompilator dapat dilakukan dengan :

      1.      Bahasa Mesin
              Tingkat kesulitannya tinggi, bahkan hampir mustahil dilakukan

      2.      Bahasa Assembly
              Bahasa Assembly bisa dan biasa digunakan sebagai tahap awal pada proses pembuatan
              sebuah kompilator

      3.      Bahasa Tingkat Tinggi lain pada ,mesin yang sama
              Proses pembuatan kopilator akan lebih mudah

      4.      Bahasa tingkat tinggi yang sama pada mesin yang berbeda
              Misal, pembuatan kompilator C untuk DOS, berdasar C pada UNIX

      5.      Bootstrap
              Pembuatan kompilator secara bertingkat.


                                                                                                  12
Pendahuluan

Más contenido relacionado

La actualidad más candente

Sejarah dan perkembangan bahasa pemrograman
Sejarah dan perkembangan bahasa pemrogramanSejarah dan perkembangan bahasa pemrograman
Sejarah dan perkembangan bahasa pemrograman
MRRidlo
 
Bahasa pemograman
Bahasa pemogramanBahasa pemograman
Bahasa pemograman
ankg44
 
Pengantar algoritma & pemrograman komputer
Pengantar algoritma & pemrograman komputerPengantar algoritma & pemrograman komputer
Pengantar algoritma & pemrograman komputer
Materi Kuliah Online
 
Teknik kompilasi dalam bahasa pemograman c
Teknik kompilasi dalam bahasa pemograman cTeknik kompilasi dalam bahasa pemograman c
Teknik kompilasi dalam bahasa pemograman c
adhifatra agussalim
 
Jeni Intro1 Bab01 Pengenalan Pemrograman Komputer
Jeni Intro1 Bab01 Pengenalan Pemrograman KomputerJeni Intro1 Bab01 Pengenalan Pemrograman Komputer
Jeni Intro1 Bab01 Pengenalan Pemrograman Komputer
Individual Consultants
 

La actualidad más candente (20)

Sejarah dan perkembangan bahasa pemrograman
Sejarah dan perkembangan bahasa pemrogramanSejarah dan perkembangan bahasa pemrograman
Sejarah dan perkembangan bahasa pemrograman
 
Bahasa pemrograman sistem mikroprosesor
Bahasa pemrograman sistem mikroprosesorBahasa pemrograman sistem mikroprosesor
Bahasa pemrograman sistem mikroprosesor
 
Perkuliahan 01 Teknik kompilasi
Perkuliahan 01 Teknik kompilasiPerkuliahan 01 Teknik kompilasi
Perkuliahan 01 Teknik kompilasi
 
Bahasa pemograman
Bahasa pemogramanBahasa pemograman
Bahasa pemograman
 
Pengantar algoritma & pemrograman komputer
Pengantar algoritma & pemrograman komputerPengantar algoritma & pemrograman komputer
Pengantar algoritma & pemrograman komputer
 
C basic
C basicC basic
C basic
 
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compilerModul 2 teknik pemrograman mengenal bahasa c dan compiler
Modul 2 teknik pemrograman mengenal bahasa c dan compiler
 
Bahasa pemrograman
Bahasa pemrogramanBahasa pemrograman
Bahasa pemrograman
 
Bab 1
Bab 1 Bab 1
Bab 1
 
Pengantar algoritma dan pemrograman
Pengantar algoritma dan pemrogramanPengantar algoritma dan pemrograman
Pengantar algoritma dan pemrograman
 
Tekom part 1
Tekom part 1Tekom part 1
Tekom part 1
 
Teknik kompilasi dalam bahasa pemograman c
Teknik kompilasi dalam bahasa pemograman cTeknik kompilasi dalam bahasa pemograman c
Teknik kompilasi dalam bahasa pemograman c
 
Teknik kompilasi
Teknik kompilasiTeknik kompilasi
Teknik kompilasi
 
Bab i
Bab iBab i
Bab i
 
Pemrograman dan bahasa program
Pemrograman dan bahasa programPemrograman dan bahasa program
Pemrograman dan bahasa program
 
Teknik kompilasi
Teknik kompilasiTeknik kompilasi
Teknik kompilasi
 
Modul algo c++
Modul algo c++Modul algo c++
Modul algo c++
 
Pemrograman dasar
Pemrograman dasarPemrograman dasar
Pemrograman dasar
 
Jeni Intro1 Bab01 Pengenalan Pemrograman Komputer
Jeni Intro1 Bab01 Pengenalan Pemrograman KomputerJeni Intro1 Bab01 Pengenalan Pemrograman Komputer
Jeni Intro1 Bab01 Pengenalan Pemrograman Komputer
 
Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler
Modul Mikrokontroler - Bab 3. Pemrograman MikrokontrolerModul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler
Modul Mikrokontroler - Bab 3. Pemrograman Mikrokontroler
 

Similar a 1. pendahuluan kompilasi

Pendahuluan teknik kompilasi session 1
Pendahuluan teknik kompilasi session 1Pendahuluan teknik kompilasi session 1
Pendahuluan teknik kompilasi session 1
adhifatra agussalim
 
Pertemuan - 1.pptx
Pertemuan - 1.pptxPertemuan - 1.pptx
Pertemuan - 1.pptx
Nazri46
 
Pengantar Bahasa Pemgrograman.pptx
Pengantar Bahasa Pemgrograman.pptxPengantar Bahasa Pemgrograman.pptx
Pengantar Bahasa Pemgrograman.pptx
HanisSiddiq2
 
Konsep dasar perangkat lunak kompress
Konsep dasar perangkat lunak kompressKonsep dasar perangkat lunak kompress
Konsep dasar perangkat lunak kompress
fajrin_ilham
 
Pengenalan_Materi-Paradigman_PBO-fix.pptx
Pengenalan_Materi-Paradigman_PBO-fix.pptxPengenalan_Materi-Paradigman_PBO-fix.pptx
Pengenalan_Materi-Paradigman_PBO-fix.pptx
ngajiyanto .
 
01 komponen dasar komputer (1)
01 komponen dasar komputer (1)01 komponen dasar komputer (1)
01 komponen dasar komputer (1)
adi yusuf
 

Similar a 1. pendahuluan kompilasi (20)

P 1 Pendahuluan - Teknik Kompilasi
P 1 Pendahuluan - Teknik KompilasiP 1 Pendahuluan - Teknik Kompilasi
P 1 Pendahuluan - Teknik Kompilasi
 
technik kompilasi
technik kompilasitechnik kompilasi
technik kompilasi
 
Teknik kompilasi
Teknik kompilasi Teknik kompilasi
Teknik kompilasi
 
Pendahuluan teknik kompilasi session 1
Pendahuluan teknik kompilasi session 1Pendahuluan teknik kompilasi session 1
Pendahuluan teknik kompilasi session 1
 
Bahasa Pemrograman
Bahasa PemrogramanBahasa Pemrograman
Bahasa Pemrograman
 
Pertemuan - 1.pptx
Pertemuan - 1.pptxPertemuan - 1.pptx
Pertemuan - 1.pptx
 
Sekilas tentang c
Sekilas tentang cSekilas tentang c
Sekilas tentang c
 
Pengantar Bahasa Pemgrograman.pptx
Pengantar Bahasa Pemgrograman.pptxPengantar Bahasa Pemgrograman.pptx
Pengantar Bahasa Pemgrograman.pptx
 
TEKNOLOGI BAHASA PEMROGRMAN - PIP - TI03.pptx
TEKNOLOGI BAHASA PEMROGRMAN - PIP - TI03.pptxTEKNOLOGI BAHASA PEMROGRMAN - PIP - TI03.pptx
TEKNOLOGI BAHASA PEMROGRMAN - PIP - TI03.pptx
 
materi 1 & 2.pptx
materi 1 & 2.pptxmateri 1 & 2.pptx
materi 1 & 2.pptx
 
Pengantar Pemrograman Dasar dan kosep dasar
Pengantar Pemrograman Dasar dan kosep dasarPengantar Pemrograman Dasar dan kosep dasar
Pengantar Pemrograman Dasar dan kosep dasar
 
Teknik kompilasi
Teknik kompilasiTeknik kompilasi
Teknik kompilasi
 
Konsep dasar perangkat lunak kompress
Konsep dasar perangkat lunak kompressKonsep dasar perangkat lunak kompress
Konsep dasar perangkat lunak kompress
 
Paper bahasa pemrograman matkul mikroprosessor
Paper bahasa pemrograman matkul mikroprosessorPaper bahasa pemrograman matkul mikroprosessor
Paper bahasa pemrograman matkul mikroprosessor
 
Pengenalan_Materi-Paradigman_PBO-fix.pptx
Pengenalan_Materi-Paradigman_PBO-fix.pptxPengenalan_Materi-Paradigman_PBO-fix.pptx
Pengenalan_Materi-Paradigman_PBO-fix.pptx
 
Tahap pemrograman
Tahap pemrogramanTahap pemrograman
Tahap pemrograman
 
Tahap pemrograman
Tahap pemrogramanTahap pemrograman
Tahap pemrograman
 
Unm tki1-kb3-ppt1-alur logika pemrograman komputer
Unm tki1-kb3-ppt1-alur logika pemrograman komputer Unm tki1-kb3-ppt1-alur logika pemrograman komputer
Unm tki1-kb3-ppt1-alur logika pemrograman komputer
 
01 komponen dasar komputer (1)
01 komponen dasar komputer (1)01 komponen dasar komputer (1)
01 komponen dasar komputer (1)
 
Translator
TranslatorTranslator
Translator
 

Más de yuster92

8. ptk optimasi kode
8. ptk optimasi kode8. ptk optimasi kode
8. ptk optimasi kode
yuster92
 
7. cara penanganan kesalahan
7. cara penanganan kesalahan7. cara penanganan kesalahan
7. cara penanganan kesalahan
yuster92
 
6. analisis semantik
6. analisis semantik6. analisis semantik
6. analisis semantik
yuster92
 
5. cf dan parsing
5. cf dan parsing5. cf dan parsing
5. cf dan parsing
yuster92
 
4.analisisleksikalfix
4.analisisleksikalfix4.analisisleksikalfix
4.analisisleksikalfix
yuster92
 
3. bhsregularfix
3. bhsregularfix3. bhsregularfix
3. bhsregularfix
yuster92
 
0. kontrak kuliah
0. kontrak kuliah0. kontrak kuliah
0. kontrak kuliah
yuster92
 
9. tabel informasi
9. tabel informasi9. tabel informasi
9. tabel informasi
yuster92
 

Más de yuster92 (8)

8. ptk optimasi kode
8. ptk optimasi kode8. ptk optimasi kode
8. ptk optimasi kode
 
7. cara penanganan kesalahan
7. cara penanganan kesalahan7. cara penanganan kesalahan
7. cara penanganan kesalahan
 
6. analisis semantik
6. analisis semantik6. analisis semantik
6. analisis semantik
 
5. cf dan parsing
5. cf dan parsing5. cf dan parsing
5. cf dan parsing
 
4.analisisleksikalfix
4.analisisleksikalfix4.analisisleksikalfix
4.analisisleksikalfix
 
3. bhsregularfix
3. bhsregularfix3. bhsregularfix
3. bhsregularfix
 
0. kontrak kuliah
0. kontrak kuliah0. kontrak kuliah
0. kontrak kuliah
 
9. tabel informasi
9. tabel informasi9. tabel informasi
9. tabel informasi
 

1. pendahuluan kompilasi

  • 1. Teknik Kompilasi Abdul Wahid, ST, M.Kom Alamat : Jl. Mawar No. 22 A Sungguminasa Tlp. 08152520599 Email : wahid@unm.ac.id / de_wahid@yahoo.com FB : Abdul Wahid Yunus Twitter :@wahid_yunus Website : blog.unm.ac.id/wahid Wahidlewa.worpress.com Pendahuluan 1
  • 2. Pendahuluan Tujuan Pembelajaran : 1. Mahasiswa memahami cara kerja serta proses yang terjadi pada sebuah Compiler 2. Mahasiswa memahami konsep pembuatan sebuah Compiler 3. Mahasiswa mengetahui bagaimana sebuah bahasa pemrograman dapat diterjemahkan oleh mesin. Metari Pembelajaran 1. Bentuk-bentuk karakter dan kelas Grammar. 2. Ekspresi Regular dan Automata 3. Analisa Leksikal sebagai tahap awal kompilasi 4. Analisa Sintaks, bentuk-bentuk derivasi serta implementasi parsing. 5. Analisa Semantik dan tahapan Sintesa. 6. Penanganan kesalahan kompilasi dan fungsi tabel informasi. 2 Pendahuluan
  • 3. 1. Bahasa Pemrograman Bahasa mesin Bahasa Assembly Bahasa Pemrograman Bahasa Tingkat tinggi Bahasa Problem Oriented 3 Pendahuluan
  • 4. Bahasa tingkat tinggi Bahasa mesin merupakan bentuk (user oriented) lebih terendah dari bahasa komputer. banyak memberikan fungsi Instruksi direpresentasikan dalam kontrol program, kalang, kode numerik. block, dan prosedur. Program Language Bahasa problem oriented Bahasa Assembly merupakan bentuk sering juga dimasukkan sebagai simbolik dari bahasa mesin. Kode bahasa tingkat tinggi, misalnya ADD, MUL, dsb misalnya SQL, Myob, dsb. 4 Pendahuluan
  • 5. 2. Translator Translator melakukan pengubahan source code / source program kedalam target code / object code Interpreter dan Compiler termasuk dalam kategori translator. Interpreter  Tidak membangkitkan object code Translator  Source code dan data diproses bersamaan  Contoh, BASICA, SPSS, DBASE III Assembler Compiler  Source Code adalah bahasa tingkat tinggi.  Source Code adalah bahasa Assembly  Object Code adalah bahasa mesin atau assembly  Object Code adalah bahasa mesin  Source code dan data diproses tidak bersamaan  Contoh, Turbo Assembler  Contoh, PASCAL, C 5 Pendahuluan
  • 6. Interpreter Penanganan Kesalahan Program Analisa Analisa Intermediate Hasil Sumber Interpretasi Operasi Leksikal Sintaks Program Pengelolaan Tabel 6 Pendahuluan
  • 7. Assembler File Source Assembler Object Code Lingker Target Code .ASM .OBJ .EXE / .COM Proses Sebuah Kompilasi pada Bahasa Assembler • Source Code adalah bahasa Assembler, Object Code adalah bahasa mesin • Object Code dapat berupa file object (.OBJ), file .EXE, atau file .COM • Contoh : Turbo Assembler (dari IBM) dan Macro Assembler (dari Microsoft) 7 Pendahuluan
  • 8. Compiler Definisi : Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulis Dalam suatu bahasa sumber (source language) dan menterjemahkannya kedalam suatu bahasa sasaran (target language) Proses kompilasi dapat digambarkan melalui sebuah blok diagram sebagai berikut : Program sumber Compiler Bahasa sasaran Pesan-pesan kesalahan (error messages) Proses Kompilasi dikelompokkan kedalam dua kelompok besar : 1. Analisa : Program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (Intermediate Representation ) 2. Sintesa : Membangun program sasaran yang diinginkan dari bentuk antara 8 Pendahuluan
  • 9. Blok Diagram Program Program Sumber Sasaran ANALISA SINTESA Penganalisa Penganalisa Penganalisa Semantik Pembentuk Pengoptimal Leksikal Sintaks Pembangkit kode kode (scanner) (parser) Kode antara TABEL SIMBOL Bagan pokok proses kompilasi 9 Pendahuluan
  • 10. Keterangan 1. Program Sumber ditulis dalam bahasa sumber, misal Pascal, Assembler, dsb 2. Program Sasaran dapat berupa bahasa pemrograman lain atau bahasa mesin pada suatu komputer 3. Scanner : Memecah program sumber menjadi besaran leksik/token 4. Parser : Memeriksa kebenaran dan urutan kemunculan token 5. Penganalisa semantik : Melakukan analisa semantik, biasanya dalam realisasi akan digabungkan Dengan intermediate code generator (bagian yang berfungsi membangkitkan kode antara) 6. Pembentuk Kode : Membangkitkan kode objek 7. Pengoptimal Kode : Memperkecil hasil dan mempercepat proses 8. Tabel : Menyimpan semua informasi yang berhubungan dengan proses kompilasi 10 Pendahuluan
  • 11. Library Object Code Source Object Code 1 Compiler 1 Code 1 Source Object Code 2 Compiler 2 Code 2 Lingker Executable Source Object Code n Compiler n Code n • Pembentukan file Executable berdasar dari beberapa Source Code • Source Code dapat terdiri dari satu atau lebih behasa pemrograman. 11 Pendahuluan
  • 12. Pembuatan Compiler Pembuatan kompilator dapat dilakukan dengan : 1. Bahasa Mesin Tingkat kesulitannya tinggi, bahkan hampir mustahil dilakukan 2. Bahasa Assembly Bahasa Assembly bisa dan biasa digunakan sebagai tahap awal pada proses pembuatan sebuah kompilator 3. Bahasa Tingkat Tinggi lain pada ,mesin yang sama Proses pembuatan kopilator akan lebih mudah 4. Bahasa tingkat tinggi yang sama pada mesin yang berbeda Misal, pembuatan kompilator C untuk DOS, berdasar C pada UNIX 5. Bootstrap Pembuatan kompilator secara bertingkat. 12 Pendahuluan