-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path2012-index.html
409 lines (374 loc) · 11 KB
/
2012-index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META NAME="generator" CONTENT="http://txt2tags.org">
<TITLE>Programming Language Technology</TITLE>
</HEAD><BODY BGCOLOR="white" TEXT="black">
<CENTER>
<H1>Programming Language Technology</H1>
<FONT SIZE="4"><I>Course codes: Chalmers DAT150, GU DIT230</I></FONT><BR>
<FONT SIZE="4">Spring Term 2012</FONT>
</CENTER>
<P>
Official URL: <A HREF="http://www.cse.chalmers.se/edu/course/DAT150">http://www.cse.chalmers.se/edu/course/DAT150</A>
</P>
<P>
Google group: <A HREF="http://groups.google.com/group/proglang-course-2012">http://groups.google.com/group/proglang-course-2012</A>
</P>
<H1>News and changes</H1>
<P>
18/1/2013 Link to the lecture notes removed, as
<A HREF="http://www.digitalgrammars.com/ipl-book/">the book is available</A>.
More material on the
<A HREF="http://www.cse.chalmers.se/edu/course/DAT151/">new course page</A>.
</P>
<P>
22/2 The next versions of the lecture notes will appear in the course Google group, and the old
version will not be updated.
</P>
<P>
4/2 <B>Wednesday lab supervisions cancelled for the rest of the course</B>. Please choose one of the Monday groups.
</P>
<P>
4/2 CHARM days 7-8 February: no lab class, no exercise on 8 February. Lecture on 7 February as normal.
</P>
<P>
4/2 <A HREF="laborations/lab2/lab2.html">lab2 PM</A> now in place.
</P>
<P>
24/1 Link to <A HREF="exercises/exercises-01.html">exercises 1</A> on 25/1 was at wrong date in the table.
Now corrected. Sorry for the mistake!
</P>
<P>
10/1 <B>Exceptional time and place of Lecture 2: Fri 19/1 at 15-17 in HC1</B>
</P>
<P>
10/1 Updated schedules. Link to the
lecture notes (removed a year later).
</P>
<P>
3/1/2012 First version of this page - so far mainly a copy of the 2011 material.
Updates forthcoming soon. Major changes are expected,
because the course has become a pure MSc course.
</P>
<H1>Schedule</H1>
<P>
All lectures are in HC4, except 20/1. All exercises are in ML 3,4.
</P>
<P>
The linked material is in plt = lecture notes (the <A HREF="http://www.cse.chalmers.se/edu/course/DAT151/">PLT book</A>)
dragon = course book by Aho & al. (see below).
</P>
<TABLE BORDER="1" CELLPADDING="4">
<TR>
<TH>Date</TH>
<TH>Time</TH>
<TH>Title</TH>
<TH COLSPAN="2">material</TH>
</TR>
<TR>
<TD>Tue 17/1</TD>
<TD>10-12</TD>
<TD>Introduction</TD>
<TD>plt 1, dragon 1</TD>
</TR>
<TR>
<TD><B>Fri 20/1</B></TD>
<TD><B>15-17</B></TD>
<TD>(<B>in HC1</B>) Grammars: abstract and concrete syntax</TD>
<TD>plt 2, dragon 2.8.2,4.1-4.3</TD>
</TR>
<TR>
<TD>Tue 24/1</TD>
<TD>10-12</TD>
<TD>Hands-on with Lab 1</TD>
<TD><A HREF="laborations/lab1/lab1.html">lab1 PM</A></TD>
</TR>
<TR>
<TD>Wed 25/1</TD>
<TD>15-17</TD>
<TD>Exercise on the introduction and grammars</TD>
<TD><A HREF="exercises/exercises-01.html">exercises 1</A></TD>
</TR>
<TR>
<TD>Thu 26/1</TD>
<TD>13-15</TD>
<TD>Theory of lexing and parsing</TD>
<TD>plt 3, dragon 3,4</TD>
</TR>
<TR>
<TD>Tue 31/1</TD>
<TD>10-12</TD>
<TD>Type checking</TD>
<TD>plt 4, dragon 5,6</TD>
</TR>
<TR>
<TD>Wed 1/2</TD>
<TD>15-17</TD>
<TD>Exercise on lexing and parsing</TD>
<TD><A HREF="exercises/exercises-02.html">exercises 2</A></TD>
</TR>
<TR>
<TD>Thu 2/2</TD>
<TD>13-15</TD>
<TD>Interpretation</TD>
<TD>plt 5</TD>
</TR>
<TR>
<TD><I>Fri 3/2</I></TD>
<TD><I>23</I></TD>
<TD><I>Lab 1 deadline</I></TD>
<TD><I><A HREF="laborations/lab1/lab1.html">lab1 PM</A></I></TD>
</TR>
<TR>
<TD>Tue 7/2</TD>
<TD>10-12</TD>
<TD>Hands-on with Lab 2</TD>
<TD><A HREF="laborations/lab2/lab2.html">lab2 PM</A></TD>
</TR>
<TR>
<TD>Thu 9/2</TD>
<TD>13-15</TD>
<TD>Code generation</TD>
<TD>plt 6, dragon 6,7</TD>
</TR>
<TR>
<TD>Wed 15/2</TD>
<TD>15-17</TD>
<TD>Exercise on type checking and interpretation</TD>
<TD>to appear</TD>
</TR>
<TR>
<TD>Thu 16/2</TD>
<TD>10-12</TD>
<TD>Functional programming languages (by Arnar)</TD>
<TD><A HREF="lectures/proglang-10.html">old slides</A>, plt 7 (to appear), dragon 6.5,7.3</TD>
</TR>
<TR>
<TD><I>Mon 20/2</I></TD>
<TD><I>23</I></TD>
<TD><I>Lab 2 deadline</I></TD>
<TD><I><A HREF="laborations/lab2/lab2.html">lab2 PM</A></I></TD>
</TR>
<TR>
<TD>Tue 21/2</TD>
<TD>10-12</TD>
<TD>Hands-on with Lab 3</TD>
<TD><A HREF="laborations/lab4/lab3.html">lab3 PM</A></TD>
</TR>
<TR>
<TD>Wed 22/1</TD>
<TD>15-17</TD>
<TD>Exercise on code generation</TD>
<TD><A HREF="exercises/exercises-04.html">exercises 4</A></TD>
</TR>
<TR>
<TD>Thu 23/2</TD>
<TD>13-15</TD>
<TD>Programming language design</TD>
<TD>plt 8-9, dragon 1</TD>
</TR>
<TR>
<TD>Tue 28/2</TD>
<TD>10-12</TD>
<TD>Compiling natural language</TD>
<TD>plt 10</TD>
</TR>
<TR>
<TD>Wed 29/2</TD>
<TD>15-17</TD>
<TD>Exercise on functional languages</TD>
<TD><A HREF="exercises/exercises-05.html">exercises 5</A></TD>
</TR>
<TR>
<TD>Thu 1/3</TD>
<TD>13-15</TD>
<TD>Preparing for the exam</TD>
<TD><A HREF="exams/exam-plt-2010-2.pdf">Training Exam</A></TD>
</TR>
<TR>
<TD><I>Mon 5/3</I></TD>
<TD><I>23</I></TD>
<TD><I>Lab 3 deadline</I></TD>
<TD><I><A HREF="laborations/lab4/lab3.html">lab3 PM</A></I></TD>
</TR>
</TABLE>
<P>
<A HREF="https://web.timeedit.se/chalmers_se/db1/timeedit/p/public/r.html?sid=3&h=t&p=20120116.x%2C20120302.x&objects=201047.182&ox=0&types=0&fe=0">Official course schema in Time Edit</A>
</P>
<H1>Description</H1>
<P>
The aim of the course is to give understanding of how programming
languages are designed, documented, and implemented. The course covers
the basic techniques and tools needed to write interpreters, and
gives a summary introduction to compilation as well. Those who have
passed the course should be able to
</P>
<OL>
<LI>define the lexical structure of programming languages by using
regular expressions, explain the functioning of finite automata,
and implement lexical analysers by using standard tools;
<LI>define the syntax of programming languages by using context-free
grammars, explain the principles of LL and LR parsing, and implement
parsers by using standard tools;
<LI>define and implement abstract syntax;
<LI>master the technique of syntax-directed translation and its
efficient implementation in their chosen programming language;
<LI>formulate typing rules and implement type checkers;
<LI>formulate operational semantic rules and implement interpreters;
<LI>write simple code generators;
<LI>be familiar with the basic implementation issues of both
imperative and functional languages;
<LI>design and implement special-purpose programming languages.
<LI>master the principles of polymorphic type checking by unification
<LI>implement an interpreter for a functional language
</OL>
<H1>Teachers</H1>
<P>
<A HREF="http://www.cse.chalmers.se/~aarne/">Aarne Ranta</A>, course responsible.
</P>
<P>
Arnar Birgisson,
Ramona Enache,
Grégoire Détrez, assistants.
</P>
<P>
The fastest way to get an answer is to mail the course's
Google group <A HREF="http://groups.google.com/group/proglang-course-2012">http://groups.google.com/group/proglang-course-2012</A>.
</P>
<H1>Google Group</H1>
<P>
If you have any general questions regarding the course, the labs or the exercises,
please ask them in our
Google group <A HREF="http://groups.google.com/group/proglang-course-2012">http://groups.google.com/group/proglang-course-2012</A>.
This will reach all teachers and fellow students.
If you are not yet member of the group, you have to
</P>
<UL>
<LI>get a google account, and
<LI>request an invitation to the proglang-course-2012 group.
</UL>
<P>
You can do both on <A HREF="http://groups.google.com/group/proglang-course-2012">the group page</A>.
<B>You will have to give your real name and your person number when you register,</B>
<B>otherwise your membership is not approved.</B>
This is necessary to identify you as a participant of the course.
</P>
<H1>Laboration times and supervision</H1>
<P>
Location: ED 3507
</P>
<P>
Times:
</P>
<UL>
<LI>Monday 10-12 (Arnar)
<LI>Monday 15-17 (Grégoire)
</UL>
<P>
<B>Notice</B>: Wednesday 10-12 classes cancelled from 8 February.
</P>
<P>
Extra supervisor at some of the times, especially before lab deadlines.
The labs rooms and supervision
are available from the second week of the course (Monday 23 January).
</P>
<P>
Normally, each student should attend one supervised laboration time each week.
Since attendance is not compulsory, there may be room for more
times. But, if there is lack of room, those who attend their first
supervision of the week have priority to get a place and supervisor help.
</P>
<H1>Literature</H1>
<P>
Aho, Lam, Sethi & Ullman:
<I>Compilers Principles, Techniques & Tools</I>
<B>Second edition</B>,
Pearson/Addison Wesley
2007
</P>
<P>
also known as <I>the Dragon book</I>.
</P>
<P>
Make sure to get the second edition! The book is available
at web bookshops and will be sold at Cremona.
</P>
<P>
The lecture notes are also being developed
in the form of a book. They will cover the material needed for the
course, whereas the Dragon book contains much more and will also serve
the Compiler Construction course.
<B>The book appeared soon after the course</B>: see
<A HREF="http://www.cse.chalmers.se/edu/course/DAT151/">PLT book</A>)
</P>
<P>
More on functional languages, and some help for Lab 3, is given in these
<A HREF="http://pauillac.inria.fr/~xleroy/talks/compilation-agay.pdf">slides</A>
by Xavier Leroy.
</P>
<H1>Laborations</H1>
<P>
There will be three laborations, written individually or in
pairs.
</P>
<UL>
<LI>deadline 3/2: <A HREF="laborations/lab1/lab1.html">parser</A>
<LI>deadline 20/2: <A HREF="laborations/lab2/lab2.html">type checker and interpreter</A>
<LI>deadline 5/3: <A HREF="laborations/lab4/lab3.html">functional language</A>
</UL>
<P>
Reporting is done via
<A HREF="https://fire.cs.chalmers.se:8009/cgi/Fire-proglang">Fire</A>.
Before reporting, you must run your program through a test suite,
such as the one for <A HREF="laborations/lab1/testscript/">lab 1</A>.
</P>
<P>
<B>Final deadline is Wednesday 15 March</B> for all returned and corrected labs.
No labs will be graded after this deadline.
</P>
<H1>Exercises</H1>
<P>
There are two classes on Wednesday at 15-17:
</P>
<UL>
<LI>in ML3 (Arnar)
<LI>in ML4 (Ramona)
</UL>
<P>
Exercises give <B>bonus points</B> for the exam: 0.4 points per exercise, the sum
rounded to the nearest integer. To claim bonus points, mark the ones you have
done in a list in the beginning of the class. Marking an exercise means that you
are prepared to present its solution on the blackboard.
</P>
<P>
To make sure that all your bonus points are counted, you should always go to the
same teacher's class.
</P>
<H1>Exam</H1>
<P>
Written exam, usual grading scales.
Extra points will be given for exercises.
</P>
<P>
Date: 8 March
</P>
<P>
Time: 14.00-18.00
</P>
<P>
Place: V
</P>
<P>
The exam has the same structure as these <A HREF="exams/">old exams</A>.
</P>
<H1>Software</H1>
<P>
BNF Converter, <A HREF="http://www.cse.chalmers.se/research/group/Language-technology/BNFC/">http://www.cse.chalmers.se/research/group/Language-technology/BNFC/</A>
</P>
<P>
Precompiled <A HREF="doc/javatools.tgz">Java tools (Cup and JLex)</A>
</P>
<!-- html code generated by txt2tags 2.6 (http://txt2tags.org) -->
<!-- cmdline: txt2tags -thtml index-2012.txt -->
</BODY></HTML>