[PPT]PowerPoint Presentation - Official Site of Mochammad...

154
TEKNIK KOMPILASI Team Penyusun : Gopa Kustriono Zulfiandri M Akbar Marwan Sulistyo Puspitodjati

Transcript of [PPT]PowerPoint Presentation - Official Site of Mochammad...

Page 1: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

TEKNIKKOMPILASI

Team Penyusun :Gopa KustrionoZulfiandriM Akbar MarwanSulistyo Puspitodjati

Page 2: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

T U J U A NT U J U A N

Mengetahui Penerapan konsep ilmu komputer

pada perilaku komputer yaitu algoritma,

arsitektur komputer, stuktur data maupun

penerapan teori bahasa dan automata

Compiler adalah merupakan konstruksi inti dari

ilmu komputer

Page 3: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

DAFTAR PUSTAKADAFTAR PUSTAKA

Practice and principles of Compiler building with C, Henk Alblas, Albert Nymeyer, Prentice Hall, 1996

Introduction to The theory of computation, Michael sipser, PWS publishing Company, 1997

The Essence of Compilers, Robin Hunter,Prentice Hal Europe, 1999

Modern Compiler Design, Dick Grune, Henri E. Bal, Et all, John Wiley & Son, 2000

Page 4: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Bahasan Materi KuliahBahasan Materi Kuliah

Pendahuluan: arti dari Kompilasi Translator: Compiler dan interpreter Bahasa Pemrograman Pembuatan Compiler Konsep bahasa dan Notasi Hirarki Comsky Aturan Produksi Diagram state Notasi BNF Diagram Syntax Kualitas Compiler

Page 5: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Bahasan Materi KuliahBahasan Materi Kuliah

Beberapa translator Struktur Compiler Lexical Analysis Analysis Syntax Analysis Semantics Error Handling Optimation Tabel informasi

Page 6: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

ARTI KATA TEKNIK ARTI KATA TEKNIK KOMPILASIKOMPILASI 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.

Page 7: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Translator : Compiler & Translator : Compiler & InterpreterInterpreterTranslator : Adalah suatu program dimana mengambil input

sebuah program yang ditulis pada satu bahasa program (source language) ke bahasa lain (The object on target language)

Jika source language adalah high level language, seperti cobol, pascal, fortran maka object language adalah low-level language atau mesin language. Translator seperti ini disebut COMPILER

Page 8: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Kenapa perlu Kenapa perlu Translator ?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

Bagaimana dengan orang tidak mengerti bahasa mesin

Page 9: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Ada Beberapa TranslatorAda Beberapa Translator1. Assembler

Source code adalah bahasa assembly, Object code

adalah bahasa mesin

2. CompilerSource code adalah bahasa tingkat tinggi, object code

adalah bahasa mesin atau bahasa assembly. Source

code dan data diproses berbeda

*.asm Assembler Object code*.exe /*.com

Page 10: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

3. Interpreter Interpreter tidak menghasilkan bentuk object code, tetapi

hasil translasinya hanya dalam bentuk internal, dimana

program induk harus selalu ada-berbeda dengan compiler

Source codeTranslator Hasil

Data

Hasil Source code

Execution

Data

Compiler

Object Code

Page 11: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Translator : Compiler & Translator : Compiler & InterpreterInterpreter

OBJECTPROGRAM

SourceProgram Compiler

ERRORMESSAGES

Page 12: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

COMPILER vs INTERPRETER

Compiler bisa menangkap berbagai kesalahan dalam 1 program kode sumber secara sekaligus. Kalau Interpreter cuma bisa menangkap beberapa kesalahan pada 1 baris kode sumber pada suatu saat

Biasanya program yang dihasilkan compiler lebih cepat dari waktu pelaksanaan program dengan interpreter.

Kalau compiler menghasilkan kode antara (misal object code) dan harus digabungkan / dilink menjadi bentuk yang dapat dijalankan mesin / komputer (executable). Kalau Interpreter biasanya tidak menghasilkan kode antara.

Kalau hendak menjalankan program hasil kompilasi bisa dilakukan tanpa kode sumber. Kalau interpreter butuh kode sumber.

Page 13: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

COMPILER vs INTERPRETER Kalau dengan kompiler, maka pembuatan kode yang bisa dijalankan

mesin dilakukan dalam 2 tahap terpisah, yaitu parsing / pembuatan kode objek dan linking / penggabungan kode objek dengan library. Kalau interpreter tidak ada proses terpisah.

Kalau compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker.

Interpreter cocok untuk membuat / menguji coba modul / sub-routine / program-program kecil. Kalau compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.

Pada kompiler bisa dilakukan optimisasi / peningkatan kwalitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah / tidak bisa dioptimasikan.

Page 14: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Proses kompilasi dikelompokkan ke dalam dua kelompok besar :

1. analisa : program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (inter-mediate representation)

2. sintesa : membangun program sasaran yang diinginkan dari bentuk antara

Page 15: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Fase-fase proses sebuah kompilasi

Page 16: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Penganalisa Leksikal

membaca program sumber, karakter demi karakter. Sederetan (satu atau lebih) karakter dikelompokkan menjadi satu kesatuan mengacu kepada pola kesatuan kelompok karakter (token) yang ditentukan dalam bahasa sumber. Kelompok karakter yang membentuk sebuah token dinamakan lexeme untuk token tersebut. Setiap token yang dihasilkan disimpan di dalam tabel simbol. Sederetan karakter yang tidak mengikuti pola token akan dilaporkan sebagai token tak dikenal (unidentified token)

Page 17: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Penganalisa Sintaks

memeriksa kesesuaian pola deretan token dengan aturan sintaks yang ditentukan dalam bahasa sumber. Sederetan token yang tidak mengikuti aturan sintaks akan dilaporkan sebagai kesalahan sintaks (sintax error). Secara logika deretan token yang bersesuaian dengan sintaks tertentu akan dinyatakan sebagai pohon parsing (parse tree)

Page 18: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Penganalisa Semantik

memeriksa token dan ekspresi dari batasan-batasan yang ditetapkan. Batasan-batasan tersebut misalnya :

a. panjang maksimum token identifier adalah 8 karakter,

b. panjang maksimum ekspresi tunggal adalah 80 karakter,

c. nilai bilangan bulat adalah -32768 s/d 32767,d. operasi aritmatika harus melibatkan operan-

operan yang bertipe sama

Page 19: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Pembangkit Kode Antara

membangkitkan kode antara (intermediate code) berdasar-kan pohon parsing. Pohon parse selanjutnya diterjemahkan oleh suatu penerjemah yang dinamakan penerjemah berdasarkan sintak (syntax-directed translator). Hasil penerjemahan ini biasanya merupakan perintah tiga alamat (three-address code) yang merupakan representasi program untuk suatu mesin abstrak. Perintah tiga alamat bisa berbentuk quadruples (op, arg1, arg2, result), tripels (op, arg1, arg2). Ekspresi dengan satu argumen dinyatakan dengan menetapkan arg2 dengan - (strip, dash)

Page 20: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Pengoptimal kode

melakukan optimasi (penghematan space dan waktu komputasi), jika mungkin, terhadap kode antara

Page 21: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Pembangkit Kode Mesin

membangkitkan kode dalam bahasa target tertentu (misalnya bahasa mesin)

Page 22: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Contoh Kompilasi

Page 23: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

View dari programmerView dari programmer

Page 24: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Mesin ViewMesin View

Page 25: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Pembuatan compilerPembuatan compiler

Bahasa mesin Bahasa mesin

Sangat sukar dan sangat sedikit kemungkinannya untuk membuat compiler dengan bahasa ini, karena manusia susah mempelajari bahasa mesin,

Sangat tergantung pada mesin,

Bahasa Mesin kemungkinan digunakan pada saat pembuatan Assembler

Page 26: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Pembuatan compilerPembuatan compiler

Assembly Assembly Hasil dari program mempunyai Ukuran yang

relatif kecil

Sulit dimengerti karena statement/perintahnya singkat-singkat, butuh usaha yang besar untuk membuat

Fasilitas yang dimiliki terbatas

Page 27: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Pembuatan compilerPembuatan compilerBahasa Tingkat Tinggi (high level language)Bahasa Tingkat Tinggi (high level language)

Lebih mudah dipelajari

Fasilitas yang dimiliki lebih baik (banyak)

Memiliki ukuran yang relatif besar, misal membuat compiler pascal dengan menggunakan bahasa C

Untuk mesin yang berbeda perlu dikembangkan tahapan-tahapan tambahan.

Misal membuat compiler C pada Dos bedasarkan compiler C pada unix

Page 28: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Pembuatan compilerPembuatan compiler

BootStrapBootStrap

Untuk membangun sesuatu yang besar, dibangun/dibuat dulu bagian intinya (niklaus Wirth - saat membuat pascal compiler)

Page 29: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

BootStrapBootStrap

PO dibuat dengan assembly,

P1 dibuat dari P0, dan

P2 dibuat dari P1, jadi compiler untuk bahasa P dapat dibuat tidak

harus dengan menggunakan assembly secara keseluruhan

Po

P1P2

Page 30: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Contoh dari source program ke dalam kode mesin

Source code Assembly Language Machine language

IF COUNT =10 Compare A to B Compare 3477 2883 GOTO DONE If equal go to C If = go to 23883 ELSE Go to D Go to 23343 GOTO AGAIN ENDIF

Actual machine code

100101010010100010101001010101001010100100101010100101010001010010010

Page 31: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

BAHASA SUMBER

Page 32: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

DEFINISI “bahasa sumber”

Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah unit terkecil komponen bahasa yang tidak bisa dipisah-pisahkan lagi.

Kalimat-kalimat : ‘Seekor kucing memakan seekor tikus.’ dan ‘Budi menendang sebuah bola.’ adalah dua contoh kalimat lengkap Bahasa Indonesia. ‘A cat eats a mouse’ dan ‘Budi kick a ball.’ adalah dua contoh kalimat lengkap Bahasa Inggeris. ‘if a2 < 9.0 then b2 := a2+a3;’ dan ‘for i := start to finish do A[i] := B[i]*sin(i*pi/16.0).’ adalah dua contoh kalimat lengkap dalam Bahasa Pemrograman Pascal.

Dalam bahasa pemrograman kalimat lebih dikenal sebagai ekspresi sedangkan kata sebagai token

Page 33: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Bahasa Tingkat Tinggi Bahasa Tingkat Tinggi (Pemrograman )(Pemrograman ) Bahasa yang lebih dikenal oleh manusia, maksudnya adalah statement

yang digunakan menggunakan bahasa yang dipakai oleh manusia

(inggris),

Bahasa pemrograman didefinisikan dengan menentukan bentuk

programnya (sintak) dan arti programnya (semantik)

Memberikan fasilitas yang lebih banyak, seperti struktur kontrol program

yang terstruktur, blok-blok serta prosedur dan fungsi-fungsi

Progam mudah untuk di koreksi (debug)

Tidak tergantung pada salah satu mesin

Kontrol struktur seperti : kondisi (if .. Then.. Else ), perulangan (For,

while ), Struktur blok (begin.. End { .. } )

Page 34: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tingkatan Bahasa Pemrograman

Page 35: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Sumber perancangan bahasa

Konstruksi yang diturunkan dari bahasa alami, karena bahasa alami dapat digunakan sebagai panduan untuk perancangan sintaks

Matematika, misal untuk perancangan operasi aritmatika

Bahasa pemrograman yang sudah ada.

Page 36: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tujuan perancangan bhs program Komunikasi dengan manusia

Pencegahan dan deteksi kesalahan Usability Efektifitas pemrograman Compilability (mengurangi

kompleksitas,mis:penggunaan bracket) Efisiensi dengan meminimalisir

ketidakcocokan antara hardware dengan bahasa

Page 37: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tujuan perancangan bhs program(2) Machine independent

Simplicity :penyederhanaan komponen bahasa program

Orthogonality : kumpulan primitive yang dikombinasikan dengan berbagai cara dalam membangun kontrol dan struktur data dalam bahasa program

Page 38: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Struktur EkspresiMetode pengurutan evaluasi dalam ekspresi :Explicit BracketingOperator bindingBinding adalah asosiasi antara atribut dan entity atau antara operasi dan simbol.Binding time adalah waktu yang dialokasikan untuk menyatukan variable dengan nilainya.

Page 39: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Struktur Data

Empat aspek dalam struktur data Deklarasi data Tipe data yang tersedia Alokasi storage Lingkup variabel

Page 40: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Struktur I/O

Format freelangsung ditampilkan sehingga mudah bagi user untuk memeriksa kebenaran program. Contoh pada VB.

Formattedoutput ditampilkan secara terformat, seperti di C : printf(), delphi/VB : format()

Page 41: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

ANDAIKAN......

Anda akan menciptakan sebuah bahasa program, coba sebutkan urutan proses yang harus ditentukan/skenario yang dijalani untuk menghasilkan bahasa pemrograman impian Anda tersebut !

Page 42: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

1. Tentukan apa yang diinginkan.2. Tentukan feature yang mungkin3. Tentukan desain dan sesuaikan dengan featurenya4. Tentukan rincian, parsing, dan error checking.5. Tuliskan user manual dan help.6. Evaluasilah, jika salah mulai lagi dari langkah 3.7. Jika sudah benar, optimisasilah dan uji segala

kemungkinan.8. Cobakan kepada pengguna, tunggu reaksinya.9. Perbaiki bug dan mulai versi baru.

SKENARIO PERANCANGAN

Page 43: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tools Bantu Compiler Free Compiler Construction Tools

http://www.thefreecountry.com/developercity/compiler.html

TASSKAF. Bahasa TASSKAF ini merupakan subset dari Java. Dapat disusun suatu program ke byte code yang dapat dijalankan di Java Virtual Machine (JVM). Pada site tersebut juga tersedia informasi materi kuliah dengan LEX, YACC http://rw4.cs.uni-sb.de/~martin/COMP/TK/

GENTLE. Gentle ini merupakan perangkat bantu (toolkit) modern untuk menulis compiler dan mengimplemntasikannya pada bahasa tertentu. Perangkat bantu ini mendukung semua proses translasi, dari definisi tree sintaks abstrak, pater matching, smart traversal dan lain sebagainya. Toolkit ini telah digunakan secara luas di riest dan industri .http://www.first.gmd.de/gentle/

ELI. Merupakan suatu lingkungan pemrograman yang memungkinkan membuat suatu implementasi bahasa pemrograman secara lengkap dari suatu sepsifikasi. Perangkat bantu ini menangani struktural analisis, analisis nama, type, value dlsb dan akan menghasilkan kode C. http://www.cs.colorado.edu/~eliuser/

Page 44: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Made by :Terrence Parr<almost by himself>

For 15 Years

ANTLR, ANother Tool for Language Recognition, is a language tool that provides a framework for constructing recognizers, interpreters, compilers, and translators from grammatical descriptions containing actions in a variety of target languages

15 TH ?

Page 45: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

IDE SISTEM PEMBELAJARAN CERDAS

What’s a Surprise?

Top Topic Skripsi withCompiler technique

Page 46: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

KONSEP dan NOTASI BAHASA

Page 47: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Konsep dan Notasi bahasaKonsep dan Notasi bahasa

Teknik Kompilasi merupakan kelanjutan dari konsep-konsep yang

telah kita pelajari dalam teori bahasa dan automata

Thn 56-59 Noam chomsky melakukan penggolongan tingkatan dalam

bahasa, yaitu menjadi 4 class

Penggolongan tingkatan itu disebut dengan hirarki Comsky

1959 Backus memperkenalkan notasi formal baru untuk syntax

bahasa yang lebih spesifik

Peter Nour (1960) merevisi metode dari syntax. Sekarang dikenal

dengan BNF (backus Nour Form)

Page 48: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Konsep dan Notasi bahasaKonsep dan Notasi bahasa Tata bahasa (grammar) adalah sekumpulan dari

himpunan variabel-variabel, simbol-simbol

terminal, simbol non-terminal, simbol awal yang

dibatasi oleh aturan-aturan produksi

Aturan produksi adalah pusat dari tata bahasa

yang menspesifikasikan bagaimana suatu tata

bahasa melakukan transformasi suatu string ke

bentuk lainnya

Page 49: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Konsep dan Notasi bahasaKonsep dan Notasi bahasa

Syntax : suatu aturan yang memberitahu apakah

sesuatu kalimat (string) adalah valid dalam

program atau tidak

Semantic : suatu aturan-aturan yang

memberikan arti kepada program

Page 50: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Review Mesin Automata Misal : FSA

Misal :Ada mesin penjual permen yang Memuat aturan2 sbb :Harga Permen Rp.25Mesin tsb dpt menerima koinRp.5 (n),Rp.10 (d)Rp.25 (q)$ = tombol utk mengeluarkan permen.

Kemungkinan2 yang Terjadi diperlihatkan gambar :

Page 51: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Review Mesin Automata Misal : FSAFSA State Diagram nya adalah :

Page 52: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Contoh lain : FSA

Page 53: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Penggolongan Chomsky Bahasa Mesin Automata Aturan Produksi

Konsep dan Notasi bahasa

Tipe 3 Atau Regular

Finite state automata (FSA) meliputi; deterministic Finite Automata (DFA) & Non Deterministic Finite Automata (NFA)

adalah simbol variabel maksimal memiliki sebuah simbol variabel yang bila ada terletak diposisi paling kanan

Tipe 2 Atau Contex Free

Push Down Automata adalah simbol variabel

Tipe 1 Atau Contex Sensitive

Linier Bounded Automata | | <= | |

Tipe 0 Atau Unrestricted/ Phase Structure/ natural language

Mesin Turing Tidak ada Batasan

Page 54: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Keterangan menyatakan simbol – simbol yang berada di

ruas kiri aturan produksi menyatakan simbol – simbol yang berada di

ruas kanan aturan produksi Simbol-simbol terdiri dari simbol terminal dan

non terminal/variabel (masih bisa diturunkan lagi)

Simbol terminal biasanya dinyatakan dengan huruf kecil, sementara non terminal dengan huruf besar

Page 55: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Aturan ProduksiAturan Produksi Tipe O / Unrestricted: Tidak Ada batasan pada aturan produksi Abc De Tipe 1 / Context sensitive: Panjang string ruas kiri harus lebih kecil atau sama

dengan ruas kananAb DeFCD eF

Tipe 2 / Context free grammar: Ruas kiri haruslah tepat satu simbol variableB CDeFgD BcDe

Tipe 3 / Regular: Ruas kanan hanya memiliki maksimal 1 simbol non terminal dan diletakkan paling kanan sendiri

A eA efgA efgHC D

Page 56: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Aturan produksi yang tidak legal !!!

Simbol E tidak boleh berada pada ruas kirimisal E Abd

Aturan produksi yang ruas kirinya hanya memuat simbol terminal saja misal : a bd atau ab bd

Page 57: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Hirarki Comsky

RegularRegularContext free

Context Sensitive

Unrestricted

Page 58: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Contoh Tata Bahasa Contoh Tata Bahasa SederhanaSederhana

<program> BEGIN <Statement-list> END

<Statement-list> <statement> | <statement>; <statement-list> <statement> <var> := <expression> <Expression> <term> | <term><op1> <expression> <term> <factor> | <factor> <op2> <term> <factor> <var> | <constant>

<var> A|B| ….| Z <op1> + | - | = <op2> ^ | * | / <constant> <real_number> | <integer_part>

<real_number> <integer_part> . <fraction> <integer_part> <digit> | <integer_part> < digit> <fraction> <digit> | <digit> <fraction> <digit> 0|1|….|9

Page 59: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

ContohContoh

BeginA := 1;B := A + 2

END

Page 60: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Diagram StateDiagram State

Digunakan untuk mendapatkan token,

mempermudah melakukan analisis lexical

Token adalah simbol terminal dari teori

bahasa dan automata

Page 61: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

S

ID

INT

PLUS

MINUS

+

-

huruf

Digit

Huruf, Digit

DigitBlank

Contoh : suatu tata bahasa memiliki himpunan simbol terminal/token berikut (ID, PLUS, MINUS, dan INT)token ID untuk karakter huruf a-z, 0-9, token INT untuk digit, token PLUS untuk Penjumlahan dan token MINUS untuk Pengurangan

Page 62: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Notasi BNF (Backus-Nour Notasi BNF (Backus-Nour Form)Form) Aturan Produksi bisa dinyatakan dengan notasi BNF

BNF menggunakan abstraksi untuk struktur syntax

::= sama identik dengan simbol

| sama dengan atau

< > pengapit simbol non terminal

{ } Pengulangan dari 0 sampai n kali

Misalkan aturan produksi sbb:

E T | T+E | T-E

T a

Notasi BNFnya adalah

E ::= <T> | <T> + <E> | <T> - <E>

T ::= a

Page 63: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Diagram SyntaxDiagram Syntax

Alat bantu (tools) dalam pembuatan parser/ analisis sintaksis

Menggunakan simbol persegi panjang untuk non terminal

Lingkaran untuk simbol terminal

Misalnya

E T | T+E | T-ET

+

-

E

Page 64: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

BNF: <Block> ::= BEGIN <statement> { SEMICOL <statement>}

END

BEGIN Statement END

;

Page 65: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Kualitas dari Kualitas dari CompilerCompiler Waktu yang dibutuhkan untuk kompilasi; tergantung dari

Algoritma compiler

Pembuat (compilator) Compiler itu sendiri

Kualitas dari obyek program yang dihasilkan

Ukuran yang dihasilkan

Fasilitas-fasilitas Integrasi yang lainnya

IDE (integrated Development Environment)

Page 66: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Struktur COMPILERStruktur COMPILER

Source program

Lexical Analysis(scanner)

Syntax Analysis

(parser)Intermediatecode

Code Optimization

CodeGeneration

Object code

Page 67: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

KeteranganKeterangan Lexical Analyzer = scanner, Syntax Analyzer, dan Intermediate Code

merupakan fungsi Analisis dalam compiler, yang bertugas

mendekomposisi program sumber menjadi bagian-bagian kecil

Code generation dan Code optimization adalah merupakan fungsi

synthesis yang berfungsi melakukan pembangkitan / pembuatan dan

optimasi program (object program)

Scanner adalah mengelompok-an program asal/sumber menjadi token

Parser (mengurai) bertugas memeriksa kebenaran dan urutan dari token-

token yang terbentuk oleh scanner

Page 68: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Lexical Analysis (scanner) - Lexical Analysis (scanner) - berhubungan dengan bahasaberhubungan dengan bahasa

Mengidentifikasikan semua besaran yang membuat suatu bahasa

Mentransformasikan ke token-token

Menentukan jenis dari token-token

Menangani kesalahan

Menangani tabel simbol

Scanner, didesign untuk mengenali - keyword, operator, identifier

Token : separates characters of the source language into group that logically

belong together

Misalnya : konstanta, nama variabel ataupun operator dan delimiter (atau sering

disebut menjadi besaran lexical)

Page 69: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Lexical Analysis ( Lexical Analysis ( Besaran Besaran leksikal )leksikal ) Identifier dapat berupa keyword atau nama kunci, seperti

IF..ELSE, BEGIN..END (pada Pascal), INTEGER (pascal), INT, FLOAT (Bhs C)

Konstanta : Besaran yang berupa bilangan bulat (integer), bilangan pecahan (float/Real), boolean (true/false), karakter, string dan sebagainya

Operator; Operator arithmatika ( + - * / ), operator logika ( < = > )

Delimiter; Berguna sebagai pemisah/pembatas, seperti kurung-buka, kurung -tutup, titik, koma, titik-dua, titik-koma, white-space

White Space: pemisah yang diabaikan oleh program, seperti enter, spasi, ganti baris, akhir file

Page 70: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Lexical Analysis - ContohLexical Analysis - ContohContoh 1:

ada urutan karakter yang disebut dengan statement

fahrenheit := 32 + celcius * 1.8, Maka akan diterjemahkan kedalam token-token seperti dibawah ini

identifier fahrenheitoperator :=integer 32operator penjumlahan +Identifier celciusoperator perkalian *real / float 1.8

Page 71: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Lexical Analysis - Contoh 2Lexical Analysis - Contoh 2

Setiap bentuk dari token di representasi sebagai angka dalam bentuk internal, dan angkanya adalah unik

Misalnya nilai 1 untuk variabel, 2 untuk konstanta, 3 untuk label dan 4 untuk operator, dst

Contoh instruksi : Kondisi : IF A > B THEN C = D;

Maka scanner akan mentransformasikan kedalam token-token,

sbb:

Page 72: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Lexical Analysis - Contoh 2

Kondisi 3 : 26 IF 20 A 1 > 15

B 1 THEN 21 C 1 D 1 ; 27

Token-token ini sebagai inputan untuk syntax Analyser , token-token

ini bisa berbentuk pasangan item. Dimana Item pertama menunjukkan alamat

atau lokasi dari token pada tabel simbol. Item kedua adalah representasi

internal dari token. Semua token direpresentasikan dengan informasi yang

panjangnya tetap (konstan), suatu alamat (address atau pointer) dan sebuah

integer (bilangan bulat)

Page 73: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Syntax AnalyzerSyntax Analyzer Pengelompokan token-token kedalam class syntax (bentuk

syntax), seperti procedure, Statement dan expression

Grammar : sekumpulan aturan-aturan, untuk mendefinisikan bahasa sumber

Grammar dipakai oleh syntax analyser untuk menentukan struktur dari program sumber

Proses pen-deteksian-nya (pengenalan token) disebut dengan parsing

Page 74: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Syntax AnalyzerSyntax Analyzer Maka Syntax analyser sering disebut dengan

parser

Pohon sintaks yang dihasilkan digunakan untuk semantics analyser yang bertugas untuk menentukan ‘maksud’ dari program sumber.

Misalnya operator penjumlahan maka semantics analyser akan mengambil aksi apa yang harus dilakukan

Page 75: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

ContohContoh Terdapat statement : ( A + B ) * ( C + D ) Akan menghasilkan bentuk sintaksis:

<factor>, <term> & <expression>

Page 76: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Syntax treeSyntax tree

Pohon sintaks/ Pohon penurunan (syntax

tree/ parse tree) beguna untuk

menggambarkan bagaimana memperoleh

suatu string dengan cara menurunkan

simbol-simbol variable menjadi simbol-

simbol terminal.

Misalnya: S ABA aA | aB bB | B

Penurunan untuk menhasilkan string aabbb

Page 77: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Parsing atau Proses Parsing atau Proses PenurunanPenurunanParsing dapat dilakukan dengan cara :

Penurunan terkiri (leftmost derivation) : simbol variable yang paling kiri

diturunkan (tuntas) dahulu

Penurunan terkanan (rightmost derivation): variable yang paling kanan

diturunkan (tuntas) dahulu

Misalkan terdapat ingin dihasilkan string aabbaa dari

context free language: S a AS | a,

A SbA | ba

Page 78: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Parsing atau Proses Parsing atau Proses PenurunanPenurunan

Penurunan kiri :

S => aAS

=> aSbAS

=> aabAS

=> aaabbaS

=> aabbaa

Penurunan kanan :

S => aAS

=> aAa

=> aSbAa

=> aSbbaa

=> aabbaa

Page 79: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

ParsingParsing

Misalnya: S -> aB | bAA -> a | aS |bAAB -> b | bS | aBB

Penurunan untuk string aaabbabbaDalam hal ini perlu untuk melakukan percobaan

pemilihan aturan produksi yang bisa mendapatkan solusi

Page 80: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Metode ParsingMetode ParsingPerlu memperhatikan 3 hal:

Waktu Eksekusi Penanganan Kesalahan Penanganan Kode

Parsing digolongkan menjadi:

Top-DownPenelusuran dari root ke leaf atau dari simbol awal ke simbol terminalmetode ini meliputi: Backtrack/backup : Brute Force No backtrack : Recursive Descent Parser

Bottom-Up

Metode ini melakukan penelusuran dari leaf ke root

Page 81: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Parsing: Brute forceParsing: Brute force Memilih aturan produksi mulai dari kiri

Meng-expand simbol non terminal sampai pada simbol terminal

Bila terjadi kesalahan (string tidak sesuai) maka dilakukan backtrack

Algoritma ini membuat pohon parsing secara top-down, yaitu dengan cara mencoba

segala kemungkinan untuk setiap simbol non-terminal

Contoh suatu language dengan aturan produksi sebagai berikut

S aAd | aB

A b | c

B ccd | ddc

Misal ingin dilakukan parsing untuk string ‘accd’

Page 82: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Parsing: Brute forceParsing: Brute force(i) S (ii) S (iii) S

a A d a A d

b

Terjadi kegagalan (iii), dilakukan back track

(iv) S (v) S (vi) S

aA d a B a B

c c c d

Terjadi kegagalan lagi (iv), dilakukan back-track

Page 83: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Parsing: Brute forceParsing: Brute forceKelemahan dari metode-metode brute-force

Mencoba untuk semua aturan produksi yang ada sehingga menjadi lambat

(waktu eksekusi)

Mengalami kesukaran untuk melakukan pembetulan kesalahan

Memakan banyak memakan memori, dikarenakan membuat backup lokasi

backtrack

Grammar yang memiliki Rekursif Kiri tidak bisa diperiksa, sehingga harus

diubah dulu sehingga tidak rekursif kiri, Karena rekursif kiri akan mengalami

Loop yang terus-menerus

Page 84: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Brute force : ContohBrute force : ContohTerdapat grammar/tata bahasa G = (V,T,P,S), dimana

V= (“E”,”T”,”F”) Simbol NonTerminal (variable)

T= (“i”,”*”,”/” ,”+”,”-”) Simbol Terminal

S=”E” Simbol Awal / Start simbol

String yang diinginkan adalah i * i

aturan produksi (P) yang dicobakan adalah

1. E T | T + E | T - E

T F | F * T | F / T

F i

accept (diterima)

Page 85: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Brute force : ContohBrute force : Contoh

2. E T | E+T | E-T

T F | T* F | T / F

F i

accept (diterima)

Meskipun ada rekursif kiri, tetapi tidak diletakkan sebagai aturan yang paling kiri

3. E E+T | E-T | T

T T* F | T / F | F

F i

Rekursif kiri, program akan mengalami loop

Page 86: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Brute force : Aturan Brute force : Aturan produksiproduksi Aturan Produksi yang rekursif memiliki ruas kanan (hasil produksi) yang memuat simbol variabel pada ruas kiri

Sebuah produksi dalam bentuk A A merupakan produksi rekursif kanan

= berupa kumpulan simbol variabel dan terminal

contoh: S d S

B ad B

bentuk produksi yang rekursif kiriA A merupakan produksi rekursif Kiri

contoh:

S S d

B B ad

Page 87: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Aturan produksi : Brute Aturan produksi : Brute forceforce

Produksi yang rekursif kanan akan menyebabkan penurunan tumbuh kekanan, Sedangkan produksi yang rekursif kiri akan menyebabkan penurunan tumbuh ke kiri.

Contoh: Context free Grammar dengan aturan produksi sebagai berikut:

Page 88: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Aturan produksi : Brute forceAturan produksi : Brute force

Dalam Banyak penerapan tata-bahasa, rekursif kiri tidak diinginkan,

Untuk menghindari penurunan kiri yang looping, perlu dihilangkan sifat

rekursif, dengan langkah-langkah sebagai berikut:

Pisahkan Aturan produksi yang rekursif kiri dan yang tidak; misalnya

Aturan produksi yang rekursif kiri

A A 1 | A 2 | ... | A n

Aturan produksi yang tidak rekursif kiri

A 1 | 2 | ... | n

Page 89: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Aturan produksi : Brute forceAturan produksi : Brute force

lakukan per-ganti-an aturan produksi yang rekursif kiri, sebagai

berikut:

1. A 1 Z | 2 Z | ... | n Z

2 Z 1 | 2 | ... | n

3 Z 1 Z | 2 Z | ... | n Z

Page 90: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Aturan produksi : Brute Aturan produksi : Brute forceforce Pergantian dilakukan untuk setiap aturan produksi dengan simbol ruas kiri yang sama, bisa muncul

variabel Z1, Z2 dst, sesuai dengan variabel yang menghasilkan rekurisif kiri

Contoh: Tata Bahasa Context free

S Sab | aSc | dd | ff | Sbd Pisahkan aturan produksi yang rekursif kiri

S Sab | Sbd

Ruas Kiri untuk S: 1=ab , 2=bd Aturan Produksi yang tidak rekursif kiri

S aSc | dd | ff

dari situ didapat untuk Ruas Kiri untuk S: 1 = aSc, 2 = dd, 3= ff

Page 91: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Aturan produksi : Brute Aturan produksi : Brute forceforce

Langkah berikutnya adalah penggantian yang rekursif kiri

S Sab | Sbd, dapat digantikan dengan

1. S aScZ1 | ddZ1 | ffZ1

2. Z1 ab | bd

3. Z1 abZ1 | bdZ1

Hasil akhir yang didapat setelah menghilangkan rekursif kiri adalah sebagai

Berikut:

S aSc | dd | ff

S aScZ1 | ddZ1 | ffZ1

Z1 ab | bd

Z1 abZ1 | bdZ1

Page 92: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Aturan produksi : Aturan produksi : Brute forceBrute force Kalau pun tidak mungkin menghilangkan rekursif kiri dalam penyusunan aturan

produksi maka produksi rekursif kiri diletakkan pada bagian belakang atau

terkanan, hal ini untuk menghindari looping pada awal proses parsing

Metode ini jarang digunakan, karena semua kemungkinan harus ditelusuri,

sehingga butuh waktu yang cukup lama serta memerlukan memori yang besar

untuk penyimpanan stack (backup lokasi backtrack)

Metode ini digunakan untuk aturan produksi yang memiliki alternatif yang sedikit

Page 93: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Parsing: Recursive Parsing: Recursive Descent ParserDescent ParserParsing dengan Recursive Descent Parser

Salah satu cara untuk meng-aplikasikan bahasa context free

Simbol terminal maupun simbol variabelnya sudah bukan sebuah karakter

Besaran leksikal sebagai simbol terminalnya, besaran syntax sebagai simbol variablenya /non

terminalnya

Dengan cara penurunan secara recursif untuk semua variabel dari awal sampai ketemu

terminal

Tidak pernah mengambil token secara mumdur (back tracking)

Beda dengan turing yang selalu maju dan mundur dalam melakukan parsing

Page 94: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Aturan Produksi memakai Recursif Descent :

Semua simbol variabel dijadikan prosedur/fungsi Jika ketemu simbol terminal pada aturan produksi , maka

panggil prosedurnya Penelusuran bersifat top down mengikuti sintaks sesuai

pola pada diagram sintaks Fungsi/prosedur ditulis untuk setiap non terminal dari

suatu produksi. Setiap fungsi/prosedur akan melemparkan nilai benar atau salah bergantung pada apakah fungsi tersebut mengenali substring yang diterima sebagai ekspansi dari non terminal.

Page 95: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Contoh :Grammar dengan BNF :<program> ::= t_PROG t_ID t_SEMICOL <block> t_DOT<block> ::= t_BEGIN <statement> {t_SEMICOL <statement>}

t_END<statement> ::= t_ID t_ASS <simple exp> | t_IF <exp> t_THEN <statement>| t_IF <exp> t_THEN <statement> t_ELSE

<statement><exp> ::= <simple_exp> t_EQ <simple exp> | <simple_exp> t_LT <simple_exp>| <simple_exp> t_GT <simple_exp>Dst…….

Page 96: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Penggalan program untuk grammar tsb

Page 97: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi
Page 98: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Semantics AnalyserSemantics Analyser

Proses ini merupakan proses kelanjutan dari proses kompilasi

sebelumnya, yaitu analisa leksikal (scanning) dan analisa sintaks

(parsing)

Bagian terakhir dari tahapan analisis adalah analisis semantik

Memanfaatkan pohon sintaks yang dihasilkan dari parsing

Proses analisa sintak dan analisa semantik merupakan dua

proses yang sangat erat kaitannya, dan sulit untuk dipisahkan

Page 99: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Semantics AnalyserSemantics AnalyserContoh : A := ( A+B) * (C+D)

Parser hanya akan mengenali simbol-simbol ‘:=‘, ‘+’,

dan ‘*’, parser tidak mengetahui makna dari simbol-

simbol tersebut

Untuk mengenali makna dari simbol-simbol tersebut,

Compiler memanggil routin semantics

Page 100: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Semantics AnalyserSemantics Analyser

Untuk mengetahui makna, maka routin ini akan memeriksa:

Apakah variabel yang ada telah didefinisikan sebelumnya

Apakah variabel-variabel tersebut tipenya sama

Apakah operand yang akan dioperasikan tersebut ada nilainya,

dan seterusnya

Menggunakan tabel simbol

Pemeriksaan bisa dilakukan pada tabel identifier, tabel display,

dan tabel block

Page 101: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Semantics AnalyserSemantics AnalyserPengecekan yang dilakukan dapat berupa:

Memeriksa penggunaan nama-nama (keberlakuannya) Duplikasi

Apakah sebuah nama terjadi pendefinisian lebih dari dua kali. Pengecekan dilakukan pada

bagian pengelolaan block

Terdefinisi

Apakah nama yang dipakai pada program sudah terdefinisi atau belum. Pengecekan

dilakukan pada semua tempat kecuali block

Memeriksa tipe

Melakukan pemeriksaan terhadap kesesuaian tipe dalam statement - statement

yang ada, Misalnya bila terdapat suatu operasi, diperiksa tipe operand nya

Page 102: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Semantics AnalyserSemantics AnalyserContohnya; expresi yang mengikut IF berarti tipenya boolean, akan diperiksa tipe

identifier dan tipe ekspresinya

Bila ada operasi antara dua operand maka tipe operand pertama harus bisa

dioperasikan dengan operand yang kedua

Analisa Semantic sering juga digabungkan dengan intermediate code yang

akan menghasilkan output intermediate code.

Intermediate code ini nantinya akan digunakan pada proses kompilasi

berikutnya (pada bagian back end compilation)

Page 103: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Intermediate CodeIntermediate Code Memperkecil usaha dalam membuat compilator dari sejumlah bahasa ke

sejumlah mesin

Lebih Machine Independent, hasil dari intermediate code dapat digunakan lagi

pada mesin lainnya

Proses Optimasi lebih mudah. Lebih mudah dilakukan pada intermediate code

dari pada program sumber (source program) atau pada kode assembly dan kode

mesin

Intermediate code ini lebih mudah dipahami dari pada kode assembly atau kode

mesin

Kerugiannya adalah melakukan 2 kali transisi, maka dibutuhkan waktu yang

relatif lama

Page 104: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Intermediate CodeIntermediate Code

Ada dua macam intermediate code yaitu Notasi Postfix dan N-Tuple

Notasi POSTFIX

<Operand> <Operand> < Operator>

Misalnya :

( a +b ) * ( c+d )

maka Notasi postfixnya

ab+ cd+ *

Semua instruksi kontrol program yang ada diubah menjadi notasi postfix, misalnya

IF <expr> THEN <stmt1> ELSE <stmt2>

Page 105: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

POSTFIXPOSTFIX

Diubah ke postfix menjadi ;

<expr> <label1> BZ <stmt1> <label2> BR < stmt2>

BZ : Branch if zero (salah)BR: melompat tanpa harus ada kondisi yang ditest

Contoh : IF a > b THEN c := d ELSE c := e

Page 106: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

POSTFIXPOSTFIX

Contoh : IF a > b THEN c := d ELSE c := e

Dalam bentuk Postfix11 a 1912 b 20 2513 > 21 BR14 22 22 c15 BZ 23 e16 c 24 :=17 d 25 18 :=

bila expresi (a>b) salah, maa loncat ke instruksi 22, Bila expresi (a>b) benar tidak ada loncatan, instruksi berlanjut ke 16-18 lalu loncat ke 25

Page 107: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

POSTFIXPOSTFIXContoh:

WHILE <expr> DO <stmt>

Diubah ke postfix menjadi ; <expr> <label1> BZ <stmt> <label2> BR

Instruksi : a:= 1WHILE a < 5 DO a := a + 1

Dalam bentuk Postfix

10 a 18 a11 1 19 a12 := 20 113 a 21 +14 5 22 :=15 < 23 1316 25 24 BR17 BZ 25

Page 108: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

TRIPLES NOTATIONTRIPLES NOTATIONNotasi pada triple dengan format

<operator> <operand> <operand>

Contoh:

A := D * C + B / E

Jika dibuat intermidiate code triple:

1. * , D, C

2. /, B, E

3. +, (1), (2)

4. :=, A, (3)

Perlu diperhatikan presedensi (hirarki) dari operator, operator perkalian dan pembagian mendapatkan prioritas lebih dahulu dari oada penjumlahan dan pengurangan

Page 109: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

TRIPLES NOTATIONTRIPLES NOTATIONContoh lain:

IF X > Y THENX := a - bELSEX := a + b

Intermidiate code triple:

1. >, X, Y

2. BZ, (1), (6) bila kondisi 1 loncat ke lokasi 6

3. -, a, b

4. :=, X, (3)

5. BR, , (8)

6. +, a, b

7. :=, X, (6)

Page 110: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

TRIPLES NOTATIONTRIPLES NOTATIONKelemahan dari notasi triple adalah sulit pada saat melakukan

optimasi, maka dikembangkan Indirect triples yang memiliki dua

list; list instruksi dan list eksekusi. List Instruksi berisikan notasi triple,

sedangkan list eksekusi mengatur eksekusinya; contohA := B + C * D / EF := C * D

List Instruksi List Eksekusi1. *, C, D 1. 12. /, (1), E 2. 23. +, B, (2) 3. 34. :=, A , (3) 4. 45. :=, F, (1) 5. 16. 5

Page 111: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Quardruples NotationQuardruples NotationFormat dari quardruples adalah

<operator> <operand> <operand> <result>

Result atau hasil adalah temporary variable yang dapat ditempatkan pada memory atau

register . Problemnya adalah bagaimana mengelola temporary variable seminimal mungkin

Contoh:

A := D * C + B / E

Jika dibuat intermidiate codenya :

1. * , D, C, T1

2. / , B, E, T2

3. +, T1, T2, A

Page 112: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Quardruples NotationQuardruples Notation Hasil dari tahapan anlisis diterima oleh code

generator (pembangkit kode)

Intermediate code ditansfromasikan kedalam

bahasa assembly atau mesin

Misalnya

(A+B)*(C+D) dan diterjemahkan kedalam bentuk

quadruple:1. +, A, B, T12. + , C, D, T23. *, T1, T2, T3

Dapat ditranslasikan kedalam bahasa assembly

dengan accumulator tunggal:

Page 113: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Code GeneratorCode GeneratorLDA A ( isi A ke dalam accumulator)ADD B (isi accumulator dijumlahan dengan B)STO T1 ( Simpan isi Accumulator ke T1)LDA CADD D

STO T2LDA T1MUL T2STO T3

hasil dari code generator akan diterima oleh code optimation , Misalnya untuk kode assembly diatas dioptimasikan menjadi:LDA AADD BSTO T1LDA CADD DMUL T1STO T2

Page 114: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Perjalanan sebuah intruksiPerjalanan sebuah intruksi

Source Program X = Y + X Analisis

LeksikalAnalisis

Sintaksis

Code Generatordan Analisis

sematiks

Tabel

Simbol

Token-token Id1:=Id2+Id1

LDA AADD YSTO X

<assign>

Id1 := <Expr>

Id2 + Id1

Page 115: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error HandlingError Handling

Kesalahan Program

Penanganan Kesalahan

Reaksi Compiler Pada kesalahan

Error Recovery

Error repair

Page 116: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Kesalahan ProgramKesalahan Program

Kesalahan Program dapat

berupa Kesalahan leksikal Kesalahan Sintaks Kesalahan Semantics

Page 117: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Kesalahan Error Handling - Kesalahan ProgramProgramKesalahan Program dapat berupa

Kesalahan leksikal Kesalahan dalam mengetik/mengeja

Misal THEN dituliskan dengan TEN atau THN

Kesalahan Sintaks misalnya dalam operasi aritmatika dengan tanda kurung yang jumlahnya kurang,

contoh

A:= X + (B * (C+D)

Kesalahan Semantics

Page 118: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Kesalahan Error Handling - Kesalahan ProgramProgram

Kesalahan Semantics Tipe data yang salah

Contoh : int c;

c = 1.5 * 0.78

Variable belum didefinisikan

Misal : B := B + 1

tetapi b belum didefinisikan

Page 119: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Penanganan Error Handling - Penanganan KesalahanKesalahanLangkah-langkah:

Mendeteksi kesalahan

Melaporkan kesalahan

Tindak lanjut perbaikan

Page 120: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Penanganan Error Handling - Penanganan KesalahanKesalahan

Misal: compiler menemukan kesalahan, yang bisa meliputi Kode kesalahan

Pesan Kesalahan dalam bahasa alami

Nama dan atribut identifier

contoh : error 162 Jumlah: Unknow identifier

Dapat diartikan: Kode kesalahan =162, pesan kesalahan =

unknown identifier, nama identifier = jumlah

Page 121: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Reaksi Error Handling - Reaksi terhadap Kesalahanterhadap Kesalahan

Ada Beberapa reaksi yang dilakukan oleh compiler

Reaksi-reaksi yang tidak dapat diterima

Reaksi yang benar, tapi kurang dapat diterima dan kurang bermanfaat

Page 122: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Reaksi Error Handling - Reaksi terhadap Kesalahanterhadap KesalahanAda Beberapa reaksi yang dilakukan oleh compiler

Reaksi-reaksi yang tidak dapat diterima Compilator crash: Berhenti atau hang

Looping : compilator tidak bisa berhenti (infinite/onbounded loop)

Menghasilkan Obyek program yang salah : berbahaya, bisa

diketahui/muncul setelah program dieksekusi

Page 123: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Reaksi Error Handling - Reaksi terhadap Kesalahanterhadap KesalahanAda Beberapa reaksi yang dilakukan oleh compiler

Reaksi yang benar, tapi kurang dapat diterima dan kurang bermanfaat Compilator menemukan kesalahan pertama, melaporkannya, lalu berhenti

(halt)

Pemrogram membuang waktu untuk melakukan pengulangan compilasi

untuk setiap kali terdapat sebuah error

Page 124: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Reaksi Error Handling - Reaksi terhadap Kesalahanterhadap Kesalahan Reaksi-reaksi yang dapat diterima

Reaksi yang sudah dapat dilakukan ; Compilator melaporkan Error Recovery : Pemulihan

Repair : Perbaikan

Reaksi yang belum dapat dilakukan Compiler mengkoreksi kesalahan

Menghasilkan obyek program sesuai yang diinginkan pemrogram

Compiler memiliki kemampuan untuk ‘mengetahui’ maksud dari pemrogram

Belum diimplementasikan pada program (sekarang ini)

Page 125: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Error Error Handling - Error RecoveryRecoveryBertujuan mengembalikan parser ke kondisi stabil agar supaya dapat

melanjutkan proses parsing ke posisi selanjutnya.

Mekanisme Ad Hoc Recovery yang dilakukan tergantung dari si pembuat compiler

Tidak terikat pada suatu aturan tertentu

Disebut juga dengan istilah purpose error recovery

Syntax directed Recoverymisal begin

A := A + 1 ;

B := B + 1;

C := C + 1

end ;

Page 126: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Error Error Handling - Error RecoveryRecovery

Pada contoh diatas, compiler akan mengenali sebagai (dalam Notasi BNF)begin <statement> ? , statement> ; <statement> end;

? Akan diperlakukan sebagai ‘;’

Second Error Recovery : untuk melokalisir kesalahan Panic Mode

Maju terus sampai ketemu delimiter Contoh : IF A = 1 Kondisi := true; Pada kondisi diatas THEN tidak ada, compiler melanjutkan sampai ketemu delimiter (;)

Unit Deletion Menghapus keseluruhan suatu unit sintaksik (misalnya : <block>, <exp>, <statement>

dan sebagainya Mempermudah untuk melakukan error repairing

Page 127: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Error Error Handling - Error RecoveryRecovery

Context Sensitive Recovery Berkaitan dengan semantics

contoh : B := ‘Budi Luhur’

Pada awal program variabel B belum dideklarasikan, maka

berdasarkan permunculannya maka diasumsikan variabel B

bertipe string

Page 128: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Error repairError Handling - Error repair

Memperbaiki kesalahan dan membuat source program

valid (memodifikasi)

Mekanisme Ad Hoc Tergantung pada sipembuat compiler

Syntax directed Repair Menyisipkan / membuang simbol terminal yang

dianggap hilang atau yang menyebabkan error

contoh WHILE A < 1

I := I = 1;

compiler akan menyisipkan DO

Page 129: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Error repairError Handling - Error repair

Contoh lain Procedure Increment ; begin x := X + 1 end; end;

Kelebihan simbol end, yang menyebabkan

kesalahan, maka compiler akan membuangnya

Page 130: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Error Handling - Error repairError Handling - Error repair Context Sensitive Repair

Tipe identifier: membuat identifier dummyvar A : Stringbegin

A := 0;end

maka compilator akan memperbaiki kesalahan dengan membuat identifier baru ,

misalnya B bertipe integer

Spelling Repair: memperbaiki kesalahan pengetikan pada identifier, misalnya:

WHILLE A = 1 DO

identifier yang salah tersebut diperbaiki menjadi WHILE

Page 131: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Teknik OptimasiTeknik Optimasi

Dependensi Optimasi Optimasi Lokal Optimasi Global

Dependensi Optimasibertujuan untuk menghasilkan kode program yang berukuran lebih kecil dan lebih cepat

Machine Dependent Optimizer

Machine Independent Optimizer (Optimasi lokal dan Optimasi global)

Page 132: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Teknik Optimasi : Teknik Optimasi : Optimasi LokalOptimasi LokalOptimasi Lokal : adalah optimasi yang dilakukan hanya pada suatu blok dari

source code, dengan cara:

Foldingmenganti konstata atau ekpresi yang bisa dievaluasi pada saat compile time dengan nilai

komputasinya. Misalnya:

A := 2 + 3 + B bisa diganti dengan A:= 5 + B

5 dapat mengantikan ekspresi 2 + 3

Redundant-Subexpression Eliminationhasilnya digunakan lagi dari pada dilakukan computasi ulang, contoh:A:= B + CX := Y + B + C

Page 133: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Teknik Optimasi : Teknik Optimasi : Optimasi LokalOptimasi Lokal

Optimasi dalam sebuah Iterasi Loop Unrrolling:Menganti suatu loop dengan menulis statement yang

ada dalam loop ditulis beberapa kali Karena sebuah iterasi pada implemnetasi ke level rendah, memerlukan :

Inisialisasi nilai awal, pada loop dilakukan sekali pada saat permulaan eksekusi loop

Penge-test-an, apakah variabel loop telah mencapai kondisi terminasi Adjustment yaitu: penambahan atau pengurangan nilai pada variabel loop

dengan jumlah tertentu Operasi yang terjadi pada tubuh perulangan (loop body)

Page 134: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Contoh :FOR I := 1 to 2 DO A[I] := 0;

dapat dioptimasikan menjadi A[1] := 0;A[2] := 0;

Frequency Reduction: Pemindahan statement ke tempat yang lebih jarang dieksekusi, contoh

FOR I:= 1 to 10 DO X := 5BEGIN FOR I:= 1 to 10 DO X := 5 BEGIN A := A + 1 A := A + 1 END: END:

Teknik Optimasi : Optimasi Teknik Optimasi : Optimasi LokalLokal

Page 135: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Teknik Optimasi : Teknik Optimasi : Optimasi LokalOptimasi Lokal Strength Reduction

Penggantian suatu operasi dengan operasi lain yang lebih cepat

dieksekusi

misalnya: pada komputer operasi perkalian memerlukan waktu eksekusi

lebih banyak dari pada operasi penjumlahan

contoh lain

A:= A + 1

dapat digantikan dengan

INC(A)

Page 136: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Teknik Optimasi : Optimasi Teknik Optimasi : Optimasi GLobalGLobalOptimasi global biasanya dilakukan dengan suatu graph terarah yang

menunjukkan jalur yang mungkin selama eksekusi program

ada dua kegunaan yaitu bagi programmer dan compiler itu sendiri

Bagi Programmer Unreachable/dead code: Kode yang tidak pernah dieksekusi misalnya :

X := 5; IF X = 0 THEN

A := A + 1Instruksi

A := A + 1 tidak pernah dikerjakan

Page 137: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Teknik Optimasi : Optimasi Teknik Optimasi : Optimasi GLobalGLobal Unused parameter : parameter yang tidak pernah

digunakan dalam procedure Misalnya :

procedure penjumlahan(a,b,c ; Integer);var x : integer;begin x := a + b;end

Parameter c tidak pernah digunakan sehingga tidak perlu diikut sertakan

Page 138: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Teknik Optimasi : Optimasi Teknik Optimasi : Optimasi GLobalGLobal

Unsused Variabel : variabel yang yang tidak pernah dipergunakan

Program pendek;var a, b: integerbegin

a := 5;end;

B tidak pernah digunakan

Page 139: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Teknik Optimasi : Optimasi Teknik Optimasi : Optimasi GLobalGLobal Variabel : variabel yang dipakai tanpa nilai awal. Contoh

Program Awal;var a, b: integerbegin

a := 5 a := a + b;end;

variabel b digunakan tetapi tidak memiliki harga awal

Bagi Compiler Meningkatkan efisiensi eksekusi program Menghilangkan useless code/kode yang tidak terpakai

Page 140: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

var A, B, C, D, E, I, J, X, Y : integer;begin

B := 5; A := 10 - B / 4 * 3 + 2; C := A + B; Y := 10; D := A + B – E;

for I := 1 to 85 dobegin

X := X + 1;B := B – X;Y := 7;

endWhile Y< 5 do

E := E – B;end

Page 141: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel InformasiTabel InformasiDua fungsi penting Tabel Informasi

Untuk membantu pemeriksaan kebenaran semantik

dari program sumber

Untuk membantu dan mempermudah dalam

pembuatan intermediate code dan proses pembuatan

kode-kode (pembangkitan kode)

Page 142: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel InformasiTabel Informasi

Secara umum, sebuah tabel simbol bisa memiliki

elemen-elemen tabel sebagai berikut, meskipun

tidak semuanya dipergunakan oleh semua

compiler No.urut identifier: menentukan nomor urut pada

tabel simbol

Nama identifier

Page 143: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Informasi - KegunaanTabel Informasi - Kegunaan

Tipe identifier

Object time address

Dimensi dari identifier yang bersangkutan

Nomor baris variabel yang dideklarasikan

Nomor baris variabel yang direferensikan

Field link

Page 144: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Informasi - Tabel Informasi - ImplementasiImplementasi

Ada beberapa jenis Tabel Informasi

Tabel identifier; berfungsi menampung semua identifier yang terdapat dalam

program

Tabel Array: berfungsi menampung informasi tambahan untuk sebuah array

Tabel blok: mencatat varibel-variabel yang ada pada blok yang sama

Tabel Real: Menyimpan elemen tabel bernilai real

Tabel string: menyimpan informasi string

Tabel display: mencatat blok yang aktif

Page 145: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Informasi - IdentifierTabel Informasi - IdentifierTabel IdentifierTabel Identifier memiliki; memiliki;

No Urut identifier dalam tabel

Nama Identifier

Jenis dari identifier; seperti Prosedur, fungsi, tipe variabel dan konstanta

Tipe dari identifier yang bersangkutan; seperti Integer (bilangan bulat), Char,

boolean , array, record, file

level dari identifier (depth of block); hal ini menyangkut letak identifier dalam

program, konsepnya sama dengan pembentukan tree, misalnya main program

level 0

Page 146: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Informasi - IdentifierTabel Informasi - Identifier

Untuk identifier, pencatatan dapat berupa seperti; Alamat relatif/address dari identifier untuk implementasi

Informasi referensi dari identifier terntentu ke alamat tabel identifier yang

lainnya

link; menghubung antar identifier

Normal: digunakan pada pemanggilan parameter, untuk membedakan

parameter by value dan by reference

Contoh (dalam pascal)

Page 147: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Tabel Informasi - Informasi - IdentifierIdentifier

Program A;

Var B : Integer;

Procedure X (Z: char)

var C : Integer

begin

....dst

Tabel identifier akan mencatat semua identifier;

0 A

1 B

2 X

3 Z

4 C

Page 148: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Tabel Informasi - Informasi - contohcontoh

TabId: Array [0..tabmax] of record

nama : String;

link : integer;

Obj : object;

Tipe : Types;

ref : Integer;

normal : Boolean;

Level : 0.. Maxlevel;

address : Integer;

End

Dimana

objek =(konstant, variabel, prosedur, fungsi)

Types = (notipe, int, reals, booleans, chars, arrays, record

Page 149: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Informasi - Tabel Informasi - ArrayArray

Tabel Arraydipergunakan untuk menyimpan informasi suatu identifier yang bertipe array,

tabel ini memilik field:

No. Urut suatu array dalam tabel

Tipe dari indeks array yang bersangkutan

Tipe element array

Referensi dari elemen array

Index batas atas dan bawah array

Jumlah elemen array

Ukuran total array (total = atas - bawah + 1) x elemen size

Elemen size

Page 150: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Informasi - Tabel Informasi - BlockBlockTabel Blok

Dipergunakan untuk menyimpan informasi blok-blok

yang ada pada tabel utama. Berisikan field no urut blok

batas awal blok

batas akhir blok

ukuran parameter/parameter size

ukuran variabel/ variabel size

last variabel

last parameter

Page 151: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Informasi - BlockTabel Informasi - BlockContoh

Program AVar B : Integer; Procedure X (Z:char); Var C : Integer; begin

....

Untuk Blok A Blok B

last variable = 2 4

Variable size = 2 (dianggap int 2 byte) 2

Last parameter = 0 (tanpa parameter) 3

parameter size = 0 1 (char butuh

1 byte)

Page 152: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Informasi - Tabel Informasi - ImplementasiImplementasiTabel RealTabel Real

Dipergunakan untuk menyimpan nilai dari suatu identifier yang bertipe real

(pecahan). Elemen-elemen dari tabel ini adalah sebagai berikut;

NO urut elemen

Nilai real suatu variabel real yang mengacu ke indeks tabel ini

Pemikirannya disini setiap tipe yang memiliki oleh suatu bahasa akan

memiliki tabelnya sendiri

Page 153: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Informasi - Tabel Informasi - ImplementasiImplementasiTabel String

Dipergunakan untuk menyimpan informasi string yang terdapat pada

program sumber. Elemen-elemen yang terdapat dalam tabel ini adalah:

no Urut elemen

Karakter-karakter yang merupakan konstanta

Page 154: [PPT]PowerPoint Presentation - Official Site of Mochammad …akbar.staff.gunadarma.ac.id/Downloads/files/15686/Materi... · Web viewPada site tersebut juga tersedia informasi materi

Tabel Informasi - Tabel Informasi - ImplementasiImplementasiTabel Display

menyimpan informasi-informasi mengenai blok-blok yang lagi aktif.

Elemen-elemen yang terdapat dalam tabel ini adalah: No Urut tabel

Blok yang aktif

Pengisian tabel display dilakukan dengan konsep stack