TEKNIK KOMPILASIdimas_nugeroho.staff.gunadarma.ac.id/Downloads/files/... · Teknik Kompilasi II...

52
Teknik Kompilasi II 1/52 Ernastuti & Sulistyo TEKNIK KOMPILASI Ernastuti & Sulistyo P

Transcript of TEKNIK KOMPILASIdimas_nugeroho.staff.gunadarma.ac.id/Downloads/files/... · Teknik Kompilasi II...

  • Teknik Kompilasi II

    1/52Ernastuti & Sulistyo

    TEKNIK KOMPILASI

    Ernastuti & Sulistyo P

  • Teknik Kompilasi II

    2/52Ernastuti & Sulistyo

    MATERI

  • Teknik Kompilasi II

    3/52Ernastuti & Sulistyo

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

  • Teknik Kompilasi II

    4/52Ernastuti & Sulistyo

    1. Bahasa Pemrograman

    BahasaPemrograman

    Bahasamesin

    BahasaAssembly

    BahasaTingkat tinggi

    BahasaProblem Oriented

  • Teknik Kompilasi II

    5/52Ernastuti & Sulistyo

    Bahasa mesin merupakan bentukterendah dari bahasa komputer.

    Instruksi direpresentasikan dalamkode numerik.

    Bahasa Assembly merupakan bentuksimbolik dari bahasa mesin. Kode

    misalnya ADD, MUL, dsb

    Bahasa tingkat tinggi(user oriented) lebih banyakmemberikan fungsi kontrol

    program, kalang, block, danprosedur.

    Bahasa problem oriented sering juga dimasukkan sebagai

    bahasa tingkat tinggi,misalnya SQL, Myob, dsb.

    Program Language

  • Teknik Kompilasi II

    6/52Ernastuti & Sulistyo

    2. Translator

    Translator melakukan pengubahan source code / source program kedalam target code / object code

    Interpreter dan Compiler termasuk dalam kategori translator.

    Translator

    Interpreter

    Compiler

    Tidak membangkitkan object code

    Source code dan data diproses bersamaan

    Contoh, BASICA, SPSS, DBASE III

    Source Code adalah bahasa tingkat tinggi.

    Object Code adalah bahasa mesin atau assembly

    Source code dan data diproses tidak bersamaan

    Contoh, PASCAL, C

    Assembler

    Source Code adalah bahasa Assembly

    Object Code adalah bahasa mesin

    Contoh, Turbo Assembler

  • Teknik Kompilasi II

    7/52Ernastuti & Sulistyo

    Interpreter

    AnalisaLeksikal

    AnalisaSintaks

    Intermediate Program Interpretasi

    PengelolaanTabel

    ProgramSumber

    PenangananKesalahan

    HasilOperasi

  • Teknik Kompilasi II

    8/52Ernastuti & Sulistyo

    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)

    SourceCode

    Object CodeAssemblerFile

    TargetLingker

    .ASM .OBJ .EXE / .COM

    Proses Sebuah Kompilasi padaBahasa Assembler

  • Teknik Kompilasi II

    9/52Ernastuti & Sulistyo

    Compiler

    Compiler

    Definisi : Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulisDalam suatu bahasa sumber (source language) dan menterjemahkannya kedalam suatubahasa sasaran (target language)

    Proses kompilasi dapat digambarkan melalui sebuah blok diagram sebagai berikut :

    Program sumber 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

  • Teknik Kompilasi II

    10/52Ernastuti & Sulistyo

    PenganalisaLeksikal

    (scanner)

    PenganalisaSintaks(parser)

    PenganalisaSemantik

    PembangkitKode antara

    Pembentukkode

    Pengoptimalkode

    ProgramSumber

    ProgramSumber

    ProgramSasaranProgramSasaran

    TABELSIMBOLTABEL

    SIMBOL

    ANALISA SINTESA

    Bagan pokok proses kompilasi

    Blok Diagram

  • Teknik Kompilasi II

    11/52Ernastuti & Sulistyo

    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

    Keterangan

  • Teknik Kompilasi II

    12/52Ernastuti & Sulistyo

    SourceCode 1

    SourceCode 2

    SourceCode n

    ObjectCode 1

    ObjectCode 2

    ObjectCode n

    Compiler 1

    Compiler 2

    Compiler n

    Lingker Executable

    Library Object Code

    • Pembentukan file Executable berdasar dari beberapa Source Code

    • Source Code dapat terdiri dari satu atau lebih behasa pemrograman.

  • Teknik Kompilasi II

    13/52Ernastuti & Sulistyo

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

  • Teknik Kompilasi II

    14/52Ernastuti & Sulistyo

    Jenis Translator: ASSEMBLER

  • Teknik Kompilasi II

    15/52Ernastuti & Sulistyo

    Jenis Translator: COMPILER

  • Teknik Kompilasi II

    16/52Ernastuti & Sulistyo

    Jenis Translator: Interpreter

  • Teknik Kompilasi II

    17/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    18/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    19/52Ernastuti & Sulistyo

    Lexical Analysis

  • Teknik Kompilasi II

    20/52Ernastuti & Sulistyo

    Lexical Analysis

  • Teknik Kompilasi II

    21/52Ernastuti & Sulistyo

    Lexical Analysis

  • Teknik Kompilasi II

    22/52Ernastuti & Sulistyo

    Lexical Analysis

  • Teknik Kompilasi II

    23/52Ernastuti & Sulistyo

    Lexical Analysis

  • Teknik Kompilasi II

    24/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    25/52Ernastuti & Sulistyo

    Lexical Analysis

  • Teknik Kompilasi II

    26/52Ernastuti & Sulistyo

    Syntax Analysis

  • Teknik Kompilasi II

    27/52Ernastuti & Sulistyo

    Tugas dari Syntax Analizer adalah:

  • Teknik Kompilasi II

    28/52Ernastuti & Sulistyo

    Statement: (A+B)*(C+D)

  • Teknik Kompilasi II

    29/52Ernastuti & Sulistyo

    Syntax Tree

  • Teknik Kompilasi II

    30/52Ernastuti & Sulistyo

    Penurunan untuk menghasilkanstring aabbb

  • Teknik Kompilasi II

    31/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    32/52Ernastuti & Sulistyo

    Parsing atau Proses Penurunan

  • Teknik Kompilasi II

    33/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    34/52Ernastuti & Sulistyo

    Metode Parsing

  • Teknik Kompilasi II

    35/52Ernastuti & Sulistyo

    Parsing digolongkan menjadi :

  • Teknik Kompilasi II

    36/52Ernastuti & Sulistyo

    Parsing: BRUTE FORCE

  • Teknik Kompilasi II

    37/52Ernastuti & Sulistyo

    Parsing: BRUTE FORCE

  • Teknik Kompilasi II

    38/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    39/52Ernastuti & Sulistyo

    Kelemahan metode BRUTE FORCE

  • Teknik Kompilasi II

    40/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    41/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    42/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    43/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    44/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    45/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    46/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    47/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    48/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    49/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    50/52Ernastuti & Sulistyo

  • Teknik Kompilasi II

    51/52Ernastuti & Sulistyo

    Parsing: RECURSIVE DESCENT PARSER

  • Teknik Kompilasi II

    52/52Ernastuti & Sulistyo

    • Lanjut ke TEKNIK KOMPILASI III. ppt

    TEKNIK KOMPILASIMATERI Jenis Translator: ASSEMBLERJenis Translator: COMPILERJenis Translator: InterpreterLexical AnalysisStatement: (A+B)*(C+D)Syntax TreePenurunan untuk menghasilkan string aabbbParsing atau Proses PenurunanMetode ParsingParsing digolongkan menjadi :