Compiler: Spring 2006
徐讚昇
研究員
台北市南港區 11529
研究院路
二段一二八號
中央研究院資訊科學研究所
A24 號信箱
E-mail: tshsu [AT] iis.sinica.edu.tw
Homepage: http://www.iis.sinica.edu.tw/~tshsu
TEL: +886-2-2788-3799 ext. 1701
FAX: +886-2-2782-4814
- 助教:
陳柏年
台大資訊工程研究所博二
Email: comp06 [AT] csie.ntu.edu.tw
Office hours: 每禮拜五下午3:30--5:30 [AT] 332實驗室
助教的網頁
- Syllabus
- Samples programs:
- Homeworks:作業遲交每一天扣 10%, 抄襲(被抄襲)均不計分.
- Homework #1.
Due: 2:20pm, March 23, 2006.
- Homework #2.
Due: 2:20pm, April 6, 2006.
- Homework #3.
Due: 2:20pm, April 20, 2006.
- Homework #4.
Due: 2:20pm, May 18, 2006.
- Homework #5.
Due: 2:20pm, June 8, 2006.
- Mid-term exam: 2:20pm-5:10pm, April 20, 2006.
- Final project:
Due: 3PM, July 4 (Tuesday), 2006
No late submission!
- FAQ.
last uploaded 11:55AM, July 3, 2006.
-
Spec of Term Project.
last updated 11:55AM, July 3, 2006. (almost final version)
pp. 1--26 for the class June 8, 2006.
- email to TA your decision on one- or two-member team
before 5pm, June 19, 2006 (Monday).
- Formula to compute the final semester score:
- Homework 25%
- Midterm 35%
- Project 40%
- Class participation
- Web sites for past years:
Slides for the year 2003,
the year 2004, and
the year 2005,
are available.
-
Slides for this year:
I am also updating the slides this year, hopefully the last time.
Updated slides for a Thursday lecture will normally be available
the following Monday, however there is no guarantee.
-
Part 1 --- Introduction.
last updated Feb. 24, 2006. (final version)
pp.1--16 (Introduction) for the class Feb. 23, 2006.
-
Part 2 --- Scanner.
last updated March 30, 2006. (final version)
pp. 1--22 (Regular expressions) for the class March 2, 2006.
pp. 23--35 (LEX) for the class March 9, 2006.
-
Part 3 --- Parser.
last updated April 21, 2006. (almost final version)
pp. 1--6 for the class March 9, 2006.
pp. 7--24 (Parsing, general) for the class March 16, 2006.
pp. 25--43 (LL(1) Parsing) for the class March 23, 2006.
pp. 44--52 (LL(1) Parsing, LR pasing) for the class March 30, 2006.
pp. 53--71 (LR(0), SLR(1)) for the class April 6, 2006.
pp. 72--84 (LR(1)) for the class April 13, 2006.
pp. 85--90 (LALR(1), Conclusion) for the class April 27, 2006.
-
Part 4 --- Syntax-Directed
Translation.
last updated May 8, 2006. (almost final version)
pp. 1--19 (Syntax-directed translation) for the class
April 27, 2006.
pp. 21--26 (YACC) for the class May 4, 2006.
-
Part 5 --- Symbol Table.
last updated May 15, 2006. (almost final version)
pp. 1--7 (Basic Defs.) for the class May 4, 2006.
pp. 8--27 (Symbol tables, YACC coding hints)
for the class May 11, 2006.
-
Part 6 --- Run Time Storage
Organization.
last updated May 26, 2006. (almost final version)
pp. 1--17 (Def., Static allocation, Dynamic allocation
for local and global vars) for the class May 18, 2006.
pp. 18--26 (Dynamic allocation
for non-local vars) for the class May 25, 2006.
pp. 27--33 (DISPLAY; Dynamic scoping) for the class June 1, 2006.
-
Part 7 --- Code Generation.
last updated June 16, 2006. (almost final version)
pp. 1--3 (Basics) for the class June 1, 2006.
pp. 4--15 (Basic code generation: Declarations and simple statements) for the class June 1, 2006.
pp. 16--43 (Advanced code generation: Branching statements and procedure calls) for the class June 8, 2006.
-
Part 8 --- Optimization.
last updated June 16, 2006. (almost final version)
pp. 1--16 for the class June 15, 2006.
-
Part 9 --- How to Write a
Compiler.
last updated June 16, 2006. (almost final version)
pp. 1--4 for the class June 15, 2006.
- Part 10 --- A Simple
Code Generation (PSEUDO) Example.
last updated June 6, 2006.
pp. 1--13 for the class June 15, 2006.