Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehRhiya Effendi Telah diubah "10 tahun yang lalu
1
Introduction1 Kuliah ini membahas beberapa teknik pembuatan suatu kompilator berdasarkan tatabahasa yang diberikan. Kuliah ini membahas beberapa teknik pembuatan suatu kompilator berdasarkan tatabahasa yang diberikan. Teknik-teknik ini akan dibahas sesuai dengan tahap pembuatan suatu kompilator. Dimulai dari tahap pembacaan program sumber, analisis tatabahasa, dan diakhiri oleh pembentukan kode (bahasa sasaran). Teknik-teknik ini akan dibahas sesuai dengan tahap pembuatan suatu kompilator. Dimulai dari tahap pembacaan program sumber, analisis tatabahasa, dan diakhiri oleh pembentukan kode (bahasa sasaran). Peserta kuliah akan mempelajari model suatu kompilator sesuai dengan tahapan tersebut, mengembangkannya dengan menambah fitur- fitur suatu kompilator. Peserta kuliah akan mempelajari model suatu kompilator sesuai dengan tahapan tersebut, mengembangkannya dengan menambah fitur- fitur suatu kompilator. Teknik Kompilator (Compiler Techniques) IKI40800 Dosen: Heru Suhartanto http://staff.ui.ac.id/heru E-mail: heru@cs.ui.ac.idheru@cs.ui.ac.id Room : Gedung A, 1216
2
Introduction2References Semester : Genap (was Ganjil in 2008/2009) Semester : Genap (was Ganjil in 2008/2009) 1.Compilers: Principles, Tehchniques, and Tools Aho, A. V., Sethi, R., Ullman, J. D. Addison Wesley 1986 2.Modern Compiler Implementation in Java http://www.cs.princeton.edu/~appel/modern/java/ 3.Dick Grune et. Al, Modern Compiler Design, John Wiley & Sons, 2000 4.Lex - A Lexical Analyzer Generator (available on line - aol) 5.Yacc - Yet Another Compiler-Compiler (aol) 5.Yacc - Yet Another Compiler-Compiler (aol) 6.Heru Suhartanto, 6.Heru Suhartanto, Model Pemroses Bahasa Pemrograman Dengan tools berbasis Java, 2006., http://telaga.cs.ui.ac.id/~heru/publications/modeUserGuidelJava.pdf Resources : see at scele Resources : see at scele
3
Introduction3 Topics and Ref. To Text book WeekTopicsChapters/Sections WeekTopicsChapters/Sections 1-2Introduction, Lexical Analysis 2.1-2.6,3.1--3.4 1-2Introduction, Lexical Analysis 2.1-2.6,3.1--3.4 3-4Parsing 2.4, 4.1-4.5, 4-7 3-4Parsing 2.4, 4.1-4.5, 4-7 5Symbol Table2.7, 7.6 5Symbol Table2.7, 7.6 5-6Syntax directed translation 2.5, 5.1-5.5 5-6Syntax directed translation 2.5, 5.1-5.5 7Type checking 6.1-6.2 7Type checking 6.1-6.2 8Run-time organization 7.1-7.3, 7.4-7.5 8Run-time organization 7.1-7.3, 7.4-7.5 9-10Intermediate code generation 8.1-8.3 9-10Intermediate code generation 8.1-8.3 11-12Code generation 9.1-9-4 11-12Code generation 9.1-9-4 13Code optimization 10.1-10.2 13Code optimization 10.1-10.2
4
Introduction4 Tools: http://telaga.cs.ui.ac.id/WebKuliah/IKI40800/jtools.html –http://www.cs.princeton.edu/~appel/modern/java/JLex/ http://www.cs.princeton.edu/~appel/modern/java/JLex/ –http://www.cs.princeton.edu/~appel/modern/java/CUP/ http://www.cs.princeton.edu/~appel/modern/java/CUP/ –http://www2.informatik.unibw-muenchen.de/Research/Tools/JACCIE/jaccie.html http://www2.informatik.unibw-muenchen.de/Research/Tools/JACCIE/jaccie.html –http://www.jflex.de/ http://www.jflex.de/ –http://troi.lincom-asg.com/~rjamison/byacc/ http://troi.lincom-asg.com/~rjamison/byacc/ –http://www.javaworld.com/javaworld/jw-12-1996/jw-12-jack.html http://www.javaworld.com/javaworld/jw-12-1996/jw-12-jack.html
5
Introduction5 Jlex,CUP and Jaccie are available here at Jlex,CUP and Jaccie are available here at http://telaga.cs.ui.ac.id/WebKuliah/IKI40800/tools/ http://telaga.cs.ui.ac.id/WebKuliah/IKI40800/tools/ http://telaga.cs.ui.ac.id/WebKuliah/IKI40800/tools/ Cara penilaian: lihat BRP Cara penilaian: lihat BRP Assignments: lihat BRP Assignments: lihat BRP
6
Introduction6 RULES Exams and homework Cheating=0 mark, Homework Deduction of 5% for each day lateness, unaccepted for 1 (or more) week delays. Cheating : any kind of plagiarism !
7
Introduction7 Introduction: Definisi A compiler is a program that accepts as input a program text in a certain language and produces as output a program text in another language, while preserving the meaning of that text. A compiler is a program that accepts as input a program text in a certain language and produces as output a program text in another language, while preserving the meaning of that text. The process is called translation. The process is called translation. The input is considered the source language and the output is target language. The input is considered the source language and the output is target language. The language the compiler itself is written in is called the implementation language. The language the compiler itself is written in is called the implementation language.
8
Introduction8 Introduction: kenapa perlu teknik kompilasi [4]? Compiler construction is a very succesful branch of computer science, and one of the earliest to earn that predicate; Compiler construction is a very succesful branch of computer science, and one of the earliest to earn that predicate; Given its close relation to file conversion, it has wider application than just compilers; Given its close relation to file conversion, it has wider application than just compilers; It contains many generally useful algorithms in a realistic setting. It contains many generally useful algorithms in a realistic setting.
9
Introduction9 Introduction : proses kompilasi dan running a compiler [fig 1.1 – 4]
10
Introduction10 Introduction: perbedaan compiler dan interpreter [fig 1.3 – 4]
11
Introduction11 Introduction: struktur suatu kompilator [fig 1.21 – 4] AST :: Abstract Syntax Tree
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.