Presentation is loading. Please wait.

Presentation is loading. Please wait.

Course Overview for Compilers J. H. Wang Sep. 20, 2011.

Similar presentations


Presentation on theme: "Course Overview for Compilers J. H. Wang Sep. 20, 2011."— Presentation transcript:

1 Course Overview for Compilers J. H. Wang Sep. 20, 2011

2 Compilers, Fall 2011CSIE, NTUT2 Instructor and TA Instructor –J. H. Wang ( 王正豪 ) –Assistant Professor, CSIE, NTUT –Office: R1534, Technology Building, NTUT –E-mail: jhwang@csie.ntut.edu.twjhwang@csie.ntut.edu.tw –Tel: (02) 27712171 ext. 4238 –Office Hours: 8:10-10:00 on Tuesdays, 10:10am- 2:00pm on Wednesdays TA –Lily (@ R1424, WIRL Lab.)

3 Compilers, Fall 2011CSIE, NTUT3 Course Description Time: 12:30-3:00pm, Tue. Classroom: R725, Sixth Teaching Building Textbook: –Charles N. Fischer, Ron K. Cytron, and Richard J. LeBlanc Jr., Crafting a Compiler, Global Edition, Pearson Education, Inc., 2009. ( 開發圖書 ) Crafting a Compiler –http://www.cs.wustl.edu/~cytron/cacweb/http://www.cs.wustl.edu/~cytron/cacweb/ References: –Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools, 2nd ed., Addison- Wesley, 2007. ( 台北圖書 ) (a.k.a ‘The Dragon Book’) Compilers: Principles, Techniques, and Tools, 2nd ed. –http://dragonbook.stanford.edu/http://dragonbook.stanford.edu/

4 Compilers, Fall 2011CSIE, NTUT4 Intended Audience An introductory course of compilers for undergraduates –seniors Prerequisite –Basic knowledge of data structures and discrete mathematics –Programming experience is necessary for projects

5 Compilers, Fall 2011CSIE, NTUT5 Additional References More information –http://en.wikipedia.org/wiki/Compilerhttp://en.wikipedia.org/wiki/Compiler Course Web page –http://www.ntut.edu.tw/~jhwang/Compile r/http://www.ntut.edu.tw/~jhwang/Compile r/

6 Compilers, Fall 2011CSIE, NTUT6 Teaching Lectures: mostly in slides Homework assignments: about 3 assignments Programming exercises: about 2 assignments –Assignments should be turned in within two weeks Exams: 1 midterm exam Projects: 1 term project/presentation

7 Compilers, Fall 2011CSIE, NTUT7 Grading Policy Homework assignments and programming exercises: 40% Mid-term exam: 30% Final project or presentation: 30%

8 Compilers, Fall 2011CSIE, NTUT8 Programming Exercises and Final Project At least two programming exercises –Team-based (at most 2 students per team) –Writing your own code or reusing existing open source code would be fine –Topics: (more on this later…) One final project –Either team-based (the same as programming exercise) –Or compiler-related academic paper presentation would be another possible option But, your should do it on your own (only 1 person), NOT team-based –A proposal is needed around midterm (Nov. 2011) Introduction, methods used, experiment designs

9 Compilers, Fall 2011CSIE, NTUT9 Major Topics Lexical Analysis: scanning Syntax Analysis: parsing Code Generation Optimization

10 Compilers, Fall 2011CSIE, NTUT10 Organization of the Textbook I. Basic Part: (Chap. 1-9 will mostly be covered) –Course Overview (1 wk) –Design of a Simple Compiler (1 wk) –Theory and Practice of Scanning (2 wks) –Formal Grammars and Parsing (2 wks) –Top-Down Parsing (2 wks) –Bottom-Up Parsing (3 wks) –Syntax-Directed Compilation (2 wks) –Declaration Processing and Symbol Tables (2 wks) –Semantic Analysis (2 wks) II. Advanced Part: (will be skipped) –Intermediate Representations –Code Synthesis for Virtual Machines –Runtime Support –Target Code Generation –Program Analysis and Optimization

11 Compilers, Fall 2011CSIE, NTUT11 Tentative Schedule Before midterm –Chap. 1, Overview (1 wk) –Chap. 2, Design of a Simple Compiler (1 wk) –Chap. 3, Theory and Practice of Scanning(2 wks) –Chap. 4, Formal Grammars and Parsing (2 wks) –Chap. 5, Top-Down Parsing (2 wks) Before term project –Chap. 6, Bottom-Up Parsing (3 wks) –Chap. 7, Syntax-Directed Compilation (2 wks) –Chap. 8, Declaration Processing and Symbol Tables (2 wks) –Chap. 9, Semantic Analysis (2 wks) –Term Project Presentation (1-2 wks)

12 Compilers, Fall 2011CSIE, NTUT12 Programming Exercises Lexical analyzer –Using scanner generator such as lex, flex Parser –Using parser generator such as yacc, bison (Details to be announced…)

13 Compilers, Fall 2011CSIE, NTUT13 Possible Topics for Term Project Design and implement a new language or syntax (for programming, human languages, for describing elements in game, or any other purposes) –Lexical analysis –Syntax analysis –Code generation –Optional: optimization

14 Compilers, Fall 2011CSIE, NTUT14 Possible Applications Parsing and converting documents in different formats (HTML, XML) Parsing network protocols and answering requests in servers Parsing SQL query results from databases and generating reports Printing or previewing PostScript or PDF files in printers Parsing e-mail contents and filtering e-mail spam Converting hardware specification description into electric circuit layouts Designing new computer architectures …

15 Compilers, Fall 2011CSIE, NTUT15 Thanks for Your Attention! Any question or comment?


Download ppt "Course Overview for Compilers J. H. Wang Sep. 20, 2011."

Similar presentations


Ads by Google