K00tkintro10

Download Report

Transcript K00tkintro10

Teknik Kompilator (Compiler Techniques) IKI40800 Dosen: Heru Suhartanto

http://staff.ui.ac.id/heru E-mail: [email protected]

Room : Gedung A, 1216

 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).  Peserta kuliah akan mempelajari model suatu kompilator sesuai dengan tahapan tersebut, mengembangkannya dengan menambah fitur fitur suatu kompilator. Introduction 1

 

References

4.

5.

6.

Semester : Genap (was Ganjil in 2008/2009)

1.

2.

3.

Compilers: Principles, Tehchniques, and Tools

Aho, A. V., Sethi, R., Ullman, J. D. Addison Wesley 1986

Modern Compiler Implementation in Java

http://www.cs.princeton.edu/~appel/modern/java/

Dick Grune et. Al, Modern Compiler Design, John Wiley & Sons, 2000

Lex - A Lexical Analyzer Generator (available on line - aol) Yacc - Yet Another Compiler-Compiler (aol) 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 Introduction 2

Topics and Ref. To Text book 

Week

         1-2 3-4 5 5-6 7 8 9-10 11-12 13

Topics

Introduction, Lexical Analysis Parsing Symbol Table Syntax directed translation Type checking Run-time organization Intermediate code generation Code generation Code optimization Introduction

Chapters/Sections

2.1-2.6,3.1--3.4

2.4, 4.1-4.5, 4-7 2.7, 7.6

2.5, 5.1-5.5

6.1-6.2

7.1-7.3, 7.4-7.5

8.1-8.3 9.1-9-4 10.1-10.2

3

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/CUP/ http://www2.informatik.unibw-muenchen.de/Research/Tools/JACCIE/jaccie.html

http://www.jflex.de/ http://troi.lincom-asg.com/~rjamison/byacc/ http://www.javaworld.com/javaworld/jw-12-1996/jw-12-jack.html

Introduction 4

Jlex,CUP and Jaccie are available here at

 http://telaga.cs.ui.ac.id/WebKuliah/IKI40800/tools/  

Cara penilaian :

lihat BRP Assignments : lihat BRP Introduction 5

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 !

Introduction 6

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.

 The process is called translation .

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

Introduction 7

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;  Given its close relation to file conversion, it has wider application than just compilers;  It contains many generally useful algorithms in a realistic setting.

Introduction 8

Introduction :

proses kompilasi dan running a compiler [fig 1.1 – 4] Introduction 9

Introduction:

perbedaan compiler dan interpreter [fig 1.3 – 4] Introduction 10

Introduction: struktur suatu kompilator [fig 1.21 – 4]

Introduction AST :: Abstract Syntax Tree 11