GARISGARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) Mata Kuliah Bobot Mata Kuliah
: :
Teknik Kompilasi 3 Sks
Deskripsi Mata Kuliah
:
Kompetensi Dasar, Indikator, Analisis Leksikal, Anlisis Sintati, Intermidiate code Generation, Code Optimization.
Pertemua Pokok Bahasan / n/
Tujuan
Sub Pokok Bahasan dan Sasaran Belajar /
Minggu
Instruksional
Tujuan Instruksional Khusus (TIK)
Umum (TIU) 1
1. Konsep Dasar TIU : Mahasiswa memahami konsep dan cara kerja kompilator.
Tehnik Pembelajara n
1.1. Motivasi Ceramah - Mahasiswa mengetahui tujuan pembelajaran mata kuliah teknik kompilasi - Mahasiswa mengetahui hal-hal yang akan dipelajasri pada matakuliah ini. 1.2. Bagian-bagian compiler (kompilator) - Mahasiswa dapat menyebutkan definisi dari istilah-istilah yang digunakan dalam kompilasi - Mahasiswa dapat menjelaskan fase-fase kompilator. - Mahasiswa dapat menjelaskan fase penganalisa leksikal - Mahasiswa dapat menjelaskan fase parser - Mahasiswa dapat menjelaskan fase code generator 1.3. Representasi Bahasa-bahasa Komputer - Mahasiswa dapat mengekspresikan suatu bahasa komputer kedalam suatu tata bahasa - Mahasiswa dapat membuat syntax diagram dari suatu tata bahasa. 1.4. Kompilator Recursive-Descent Expression - Mahasiswa dapat membangun kompilator sederhana menggunakan teknik Recursive-
Media Pembelajaran
Papan Tulis & OHP
Evaluasi
Referensi
Membuat kompilator sederhana sebgaiamana pada subbab1.3 ref.[1] atau bab 2 ref.[2]
1,2
2
2. Input dan Analisa Leksikal TIU: Mahasiswa memahami strategi pada system input dan cara kerja penganalisa leksikal.
3
3. Tata bahasa Context-Free TIU: Mahasiswa dapat mngenal CFG dn bentuk-bentuk turunannya serta mahasiswa dapat membangun CFG.
Descent. 2.1. Penganalisa Leksikal Sebagai Bagian dari Ceramah Kompilator. - Mahasiswa dapat menjelaskan cara kerja penganalisa sintaks dan bagaimana penganalisa sintaks berhubungan dengan bagian lain dari kompilator 2.2. System Input - Mahasiswa dapat membangun modul system input untuk penganalisa leksikal 2.3. Analisa Leksikal - Mahasiswa dapat menyebutkan definisi/istilah dalam bahasa formal - Mahasiswa dapat membuat abstraksi bahasa melalui ekspresi regular, definisi regular, otomata hingga. - Mahasiswa dapat mengimplementasikan NFA kedalam suatu program. 3.1. Konsep Contex Free Grammar (CFG) Ceramah - Mahasiswa dapat menyebutkan definisi CFG. - Mahasiswa dapat merumuskan CFG dari bahasa Contex Free 3.2. Derivasi dan bentuk sentensial - Mahasiswa dapat melakukan derivasi secara umum, left maupun right dari suatu CFG - Mahasiswa dapat memberi contoh viable prefix, handle dan bentuk sentential dari suatu derivasi 3.3. Pohon Parsing dan hubungannya dengan sintaktik analisis - Mahasiswa dapat membuat pohon parsing dari suatu derivasi - Mahasiswa dapat memberi contoh masalah sintaktik maupun masalah semantik dari suatu tata bahasa. 3.4. Right Linear grammar - Mahasiswa dapat menyebutkan hubungan mesin stata dan tatabahasa - Mahasiswa dapat menentukan apakah suatu tata bahasa adalah Right Linear 3.5. List, Recursion and Associativity
Papan Tulis & OHP
Papan Tulis & OHP
1,2
- Mhs diberikan tatabahasa one line programming - Menentukan token yang terlibat - Membuat rumusan token - Membuat AH untuk token tersebut - Melakukan derivasi dari kalimat yang diberikan - Menurunkan kalimat lain dari tatabahasa tsb.
1,2
-
4
5
4.Top-Down Parsing TIU: Mahasiswa dapat menggunakan teknik topdown parsing : recursive descent parser dan LL(1) 4. Top-Down Parsing (Lanjutan) TIU: sda
6
4. Top-Down Parsing (lanjutan) TIU: sda
Mahasiswa dapat menentukan produksi yang left maupun right recursion dari suatu tatabahasa - Mahasiswa dapat menyebutkan hubungan associativity dan recursion - Mahasiswa dapat menentukan tata bahasa yang left /right associative 3.6. Ambigous Grammar - Mahasiswa dapat menentukan grammar yang ambigous 4.1. Recursive Descent Parser Ceramah - Mahasiswa dapat menggunakan PDA sebagai parsing top-down - Mahasiswa dapat menujukkan proses error recovery - Mahasiswa dapat mengimplemnetasikan Attributed grammars pada PDA - Mahasiswa dapat membuat tabel parsing berdasarkan PDA 4.2 LL(1) grammars - Mahasiswa dapat menjelaskan konsep tata bahasa LL(1) - Mahasiswa dapat menentukan himpunan FIRST - Mahasiswa dapat menentukan himpunan FOLLOW - Mahasiswa dapat menentukan himpunan LL(1) selection - Mahasiswa dapat membuat tabel parsing LL(1) - Mahasiswa dapat menerapkan Penanganan kesalahan panic mode
Papan Tulis & OHP
Ceramah
Papan Tulis & OHP
4.3 Modifying grammars Ceramah - Mahasiswa dapat memodifikasi grammar agar LL(1), menggunakan teknik-teknik leftfactoring, corner-subtitution, singleton substitution, eliminasi ambiguitas, eliminasi left recursion, eliminasi Unreachable Productions - Mahasiswa dapat mengimplementasikan
Papan Tulis & OHP
Mahasiswa membuat diagram state dari one line programming
1, 2
1, 2
Mahasiswa memodifikasi tata bahasa one line programming agar LL(1) dan membuatkan tabel pasing LL(1)-nya
1, 2
LL(1) parser 7
5. Bottom-Up Parsing TIU: Mahasiswa dapat menggunakan teknik bottom-up parsing: LR(0), SLR(1), LR(1), LALR(1)
8
5. Bottom-Up Parsing (lanjutan) TIU: sda
9
Diskusi TIU: memahami proses kerja one pass compiler
5.1 Cara Kerja Konsep Bottom Up - Mahasiswa dapat menyebutkan cara kerja teknik parsing bottom-up - Mahasiswa dapat menunjukkan cara menangani errror recovery dari teknik bottom-up
Ceramah
Papan Tulis & OHP
1, 2
Ceramah
Papan Tulis & OHP
Mahasiswa membuat tabel parsing SLR(0) bahasa one line programming
1, 2
Diskusi
Papan Tulis & OHP
Mahasiswa berkelompok diberi tugas mengarang bahasa yang mengandung operasi aritmatika, cetak, operasi cabang/ bersyarat. Dirumuskan dalam tata bahasa Mahasiswa mengimplementasikan
1, 2
5.2 Tabel Parsing LR - Mahasiswa dapat mengidentifikasikan tatabahasa LR(0) - Mahasiswa dapat membuat tabel parsing LR(0) 5.2 Tabel Parsing LR (lanjutan ) - Mahasiswa dapat mengidentifikasikan tatabahasa SLR(1) - Mahasiswa dapat membuat tabel parsing SLR(1) - Mahasiswa dapat mengidentifikasikan tatabahasa LR(1) - Mahasiswa dapat membuat tabel parsing LR(1) - Mahasiswa dapat mengidentifikasikan tatabahasa LALR(1) - Mahasiswa dapat membuat tabel parsing LALR(1) - Mahasiswa dapat merepresentasikan tabel LR dalam bahasa pemrograman -
review kompilasi sampai tahapan parsing
menjadi one pass compiler berdasarkan tugas parser yang diminta (rec-descn, LL, LR) 10.
Quiz / presentasi project
Diskusi
Papan Tulis & OHP
TIU: Mahasiswa dapat mengimplementasi kan parsing
Mahasiswa merepresentasikan kompilasi bahasa masing yang telah dibuat, dimulai dari tatabahasa, rumusan token, diagram pengenalan token, diagram/tabel parsing, dan bagaimana diimplementasikan di program mereka.
1, 2
UJIAN TENGAH SEMESTER
11. 12.
6. Analisa Semantik Syntax-directed definition Translation scheme 3.7. Syntax-Directed translation - Mahasiswa dapat menngunakan alat-alat bantu tata bahasa augmented dan attributed dalam mengimplementasikan tatabahasa.
13.
7. Membangun Code dan Tabel simbol TIU: Mahasiswa dapat membangun intermediate code, dan dapat mengelola tabel simbol.
6.1 Intermediate Languages - Mahasiswa dapat merepresentasikan bahasa kedalam bentuk triples, quads, dan postfix 6.2 Table simbol - Mahasiswa dapat menyebutkan apa yang dimaksud dengan tabel simbol - Mahasiswa dapat menyebutkan kegunaan tabel simbol 6.3 Struktur Data Tabel Simbol - Mahasiswa dapat membentuk struktur data tabel simbol - Mahasiswa dapat merepresentasikan tipe variabel
Ceramah
Papan Tulis & OHP
1, 2
14
8. Strategi Optimisasi
7.1 Optimisasi Parser - Mahasiswa dapat mengaplikasikan konsep
Ceramah
Papan Tulis &
1, 2
optimasi parser 7.2 Linear (peephole) Optimizations - Mahasiswa dapat mengaplikasikan konsep optimasi peephole
OHP
7.3 Optimisasi Struktural - Mahasiswa dapat mengaplikasikan konsep optimasi struktural
Referensi : 1. Holub, A. I., Compiler Design in C. Prentice-Hall International, Inc. Englewood Cliffs, New-Jersey, 1990. 2. Aho, A. V., R. Sethi, and J. D. Ullman. Compiler: Principles, Techniques, and Tools. Addison Wesley Publishing Company, Reading, Massachusetts, 1988. 3. Tremblay, Jean-Paul, Paul G. Sorenson, The Theory and Practice of Compiler, McGraw-Hill Co, New York, 1985 4. Sukamdi, Merekayasa Interpreter (Sebuah Penerapan Teknik Kompilasi), Jakarta, PT Elex Media Komputindo, 1995. 5. Pittman, T., James Peters, The Art of Compiler Design, Theory & Practice, Englewood Cliffs, New Jersey, Prentice-Hall, Inc, 1992. 6. Firrar Utdirartomo, Teknik Kompilasi, Yogyakarta, J&J Learning, 2001. 7. Sumantri Slamet, Heru S., Teknik Kompilasi, Jakarta, PT Elex Media Komputindo, 1995. 8. D. Suryadi H.S., Pengantar Automata Bahasa Formal dan Kompilasi, Jakarta, Penerbit Gunadarma.