1 / 20

pendahuluan

pendahuluan. Mia Kamayani ST, MT Teknik Informatika Fakultas Teknik UHAMKA. Aturan Perkuliahan. Maksimal keterlambatan 15 menit, di atas 15 menit dianggap tidak hadir, tapi boleh tetap masuk kelas. Keterlambatan mengumpulkan tugas dikurangi 5 poin per hari . Komponen penilaian (105%)

nita
Download Presentation

pendahuluan

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. pendahuluan Mia Kamayani ST, MT Teknik Informatika Fakultas Teknik UHAMKA

  2. Aturan Perkuliahan • Maksimal keterlambatan 15 menit, di atas 15 menit dianggap tidak hadir, tapi boleh tetap masuk kelas. • Keterlambatan mengumpulkan tugas dikurangi 5 poin per hari. • Komponen penilaian (105%) • Kehadiran 10% • Tugas laporan 10% • Tugas program 15% • Kuis 5% • UTS 30% • UAS 35%

  3. Silabus • Minggu 1 • Pengantar kompiler • Minggu 2 • Teori kompilasi • Minggu 3 • Perancangan bahasa pemrograman • Minggu 4 • Regular expression • Minggu 5 • Notasi bahasa dan analisis leksikal • Minggu 6 • Analisis sintaks • Minggu 7 • Kuis 1, review bahan UTS • Minggu 8 • UTS

  4. Silabus • Minggu 9 • Pembahasan UTS dan Kuis 1 • Minggu 10 • Analisis semantik • Minggu 11 • Pengecekan tipe & intermediate code • Minggu 12 • Alokasi memori dan runtime environment • Minggu 13 • Code optimization & error recovery • Minggu 14 • Code generation • Minggu 15 • Kuis 2, review bahan UAS • Minggu 16 • UAS

  5. Referensi • Alfred V. Aho. Compilers Principles, Techniques & Tools 2nd Edition. • Materi kuliah online: http://www.miaakhsani.com/tekom

  6. Sejarah singkat kompiler • 1957, Fortran, kompiler pertama (ekspresi aritmatika, statement, prosedur) • 1960, Algol, definisi pertama bahasa formal (tata bahasa dalam Backus-Naur, struktur blok, rekursi) • 1970, Pascal, tipe user-defined, virtual machine • 1985, C++, object-orientation, exception, template • 1995, Java, kompilasi JIT (just-in-time)

  7. Mengapa harus belajar kompiler? • Bagian dari pengetahuan umum dari seorang software engineer • Bagaimana kompiler bekerja? • Bagaimana komputer bekerja? • Kode mesin apa yang diciptakan untuk konstruksi bahasa tertentu? • Apa itu desain bahasa yang baik? • Berguna untuk pengembangan software secara umum • Membaca argument command-line yang terstruktur secara sintaks • Membaca data yang terstruktur (mis. File XML) • Mencari namespace secara hirarki • Interpretasi dari kode perintah • dll

  8. Compiler • Adalah sebuah program yang menerima input berupa source program (source language), kemudia ditranslasikan menjadi bentuk bahasa lain (target language) • Source language biasanya merupakan bahasa pemrograman tingkat menengah atau tinggi • Target language biasanya berupa bahasa level rendah atau bahasa mesin • Melaporkan error dan warning untuk membantu programmer • Contoh kompiler selain untuk programming • Mentranslasikan javadoc ke html • Mendapatkan hasil dari SQL query • Printer parsing PostScript file • Konversi LaTeX ke PDF

  9. Fase kompiler • Analisis (Front-end) • Memecah source code dan menciptakan intermediate representation • Language dependent • Sintesis (back-end) • Membuat target program dari intermediate representation yang dihasilkan oleh tahap analisis • Language independent

  10. Proses Kompilasi

  11. Fase Kompilasi

  12. Tahap Analisis • Langkah 1: kenali huruf dan kata. Kata adalah unit terkecil diatas huruf • This is a sentence • “T” adalah simbol awal dari kalimat • Spasi kosong “ ” adalah separator kata • Titik “.” adalah simbol akhir dari kalimat • Langkah 2: scanning/analisis leksikal yaitu memecah source program ke dalam token dan lexem • Contoh analisis leksikal

  13. Diagram kalimat

  14. Parsing program • Sama halnya dengan parsing kalimat • Misal • Diagramnya:

  15. Tahap analisis • Analisis sintaks/parsing: mengelompokkan daftar hasil scanning ke dalam aturan grammar CFG (context free grammar) dan divalidasi

  16. Analisis semantik di bahasa Inggris • Contoh: • Jack said Jerry lost his assignment yesterday. • “his” mengacu kepada siapa? Jack atau Jerry?

  17. Analisis semantik di programming • Bahasa pemrograman mendefinisikan aturan yang jelas untuk menghindari ambiguitas

  18. Contoh: semantik • X = a + b * c – d / f • Solusi mana yang tepat?

  19. Tahap Analisis • Intermediate code generation: menghasilkan bahasa level menengah

  20. Tahap Sintesis • Intermediate code optimization • Contoh • Object code generation: menjadi bahasa mesin • Object code optimization

More Related