Lund University →
Faculty of Engineering →
Department of Computer Science
Week by week 2020/2021 OLD INSTANCE
Links will work after the corresponding lecture.
Before that, they may give a Not Found or 404 error.
Meanwhile, if you would like to take a look at last year's slides, etc.,
they are available here.
Note that the information below is preliminary and might be updated.
Go to:
Week 1,
Week 2,
Week 3,
Week 4,
Week 5,
Week 6,
Week 7,
Week 8,
Exam,
IMPORTANT NOTICE:
See Retake April 2021 for important instructions about the retake exam.
Week 1 (Aug 31 - Sep 4)
Register formally in LADOK
- Instructions in Swedish
- (PhD students don't have to register, Instead, contact Görel Hedin if you want to take the course.)
Sign up on Moodle
- Sign up on Moodle as described here in the course program.
On Moodle you find links to online lectures, quizzes, and student forum.
Lecture 1: Introduction
Sign up for lab sessions
- Deadline: Thursday, Sept 3, 2020
- Sign up via the SAM system
- If you don't have a partner, ask at the Moodle forum.
Assignment 0. Java, Unix, and Gradle.
- Do this assignment on your own. Includes basic skills you need in the other assignments.
- Downloads: A0.pdf, A0-JavaGradleProject.zip.
- Estimated typical effort: 1-4 hours, depending on your current proficiency.
Lecture 2: Regular Expressions, Scanning
Assignment 1. Scanning and simple parsing.
- Deadline: the Lab session week 2.
- Covers: Lectures 2 and 3.
- Downloads: A1.pdf, A1-CalcParse.zip.
- Estimated typical effort: 5 hours.
Homework progress bar
Week 2
Lecture 3: Context-free grammars. Recursive-descent parsing.
- Slides L3
- Moodle Quiz Q3
- Appel Book: Parts of Ch 3 (38-47). (Intro to Parsing 3, Context-free grammars 3.1, intro to Predictive parsing 3.2.)
- Appel Exercises: 3.1-3.2. (No solutions provided)
Lecture 4: Ambiguities. LL problems.
Assignment 2. LR parsing and AST building
Lab sessions. Thursday.
- For approving and getting help with Assignment 1.
Homework progress bar
Week 3
Lecture 5: LL parsing. Abstract Syntax Trees.
Lecture 6: LR parsing. Visitors.
Assignment 3. Visitors, Aspects, and Attribute Grammars.
Lab sessions. Thursday.
- For approving and getting help with Assignment 2.
Homework progress bar
Week 4
Lecture 7: Aspects. Attribute Grammars.
Lecture 8: Reference attributes, Semantic Analysis.
- Slides L8
- Moodle Quiz Q8
- Appel Book: Ch 5 (103-115). Semantic Analysis. However, you may skip the section on EFFICIENT FUNCTIONAL SYMBOL TABLES (107-108).
- An Introductory Tutorial on JastAdd Attribute Grammars, Springer, LNCS 6491, 2011, preprint, published version, sections 1-5. (To access the published version, you need to be on the University network. But the difference is only typographic.)
- Exercises: Do exercises 3-4, 6-9, 14 in the above paper. There are solutions in the back of the paper, but try to solve the problems on your own before looking at them.
- Exercises: There are also exercises in the slides for this lecture.
Assignment 4. Semantic analysis using reference attribute grammars.
Lab sessions. Thursday.
- For approving and getting help with Assignment 3.
Homework progress bar
Week 5
Lecture 9: Circular attribute grammars. Interpreters.
Lecture 10: Runtime Systems
- Slides L10
- Moodle Quiz Q10
- Appel Book: Ch 6-6.1 on procedural run-time systems (116-126).
Focus on
Introduction, STACK FRAMES, THE
FRAME POINTER, REGISTERS, STATIC LINKS.
- Skim through HIGHER-ORDER
FUNCTIONS, PARAMETER PASSING, RETURN ADDRESSES.
Skip FRAME-RESIDENT VARIABLES
Assignment 5. Interpreter and static analysis
Lab sessions. Thursday.
- For approving and getting help with Assignment 4.
Homework progress bar
Week 6
Lecture 11: Code generation.
- Slides L11
- Moodle Quiz Q11
- Appel Book: Ch 7. Translation to Intermediate Code (only the Introduction on page 136. Skip 7.1 and
onwards)
Lecture 12: Object-oriented languages, Runtime Optimization.
Assignment 6. Code generation
Lab sessions. Thursday.
- For approving and getting help with Assignment 5.
Homework progress bar
Week 7
Lecture 13: Course review before exam.
Lecture 14: Guest lecture on ExtendJ, Tuesday, Oct 13, 11:15-12:00
- Dr. Jesper Öqvist will present ExtendJ, an extensible Java compiler built using JastAdd.
(Slides)
The lecture will be in the usual zoom channel.
Jesper works part time at LTH and part time at the startup Cognibotics where he is contributing to the design of a new robotics language.
Extra catch-up lab session.
If you are behind with the assignments you are welcome to this lab session.
Lab sessions. Thursday.
- For approving and getting help with Assignment 6.
Sign up for exam.
Sign up for the exam.
You will get an automatic email about this.
Homework progress bar
Week 8
Catch-up lab session.
Study old exams
Exam
At the exam, you may use the following documents. Copies of them will be available at the exam. You do not need to bring your own.
You may also use a dictionary from English to your native language.
Ordinary exam
- Will be held on campus, on Wednesday, October 28, 2020, 9:00-12:00, in MA:8 and MA:9.
- You need to have finished all lab/assignments to be allowed to take the exam.
- You need to sign up for the exam in advance. You should have received an automatic email about this.
- For students in risk groups and for students that have cold symptoms on the exam day, a digital alternative will be available. These students will also need to do a complementary oral exam.
- Update 2020-10-26: More detailed information is now posted at: Exam October 2020
.
- Update 2020-11-28:The exam and the solution are now available: 201028.pdf,
201028sol.pdf
- The results will be entered into LADOK on Monday Nov 30 or shortly thereafter.
- The corrected exams will be available in Moodle on Monday Nov 30 at the latest.
- Tentavisning: If you would like to discuss your exam, there will be possibility for that on Friday Dec 4, 13:00-13:30, on zoom:
https://lu-se.zoom.us/j/65485920610. Please use your university STIL account for Zoom. You will be placed in a waiting room, and you will be let you into the zoom meeting in order.
Retake of exam
- Will be held in the spring retake period, on Wednesday April 7, 2021, 8:00-13:00, digital exam. See Retake April 2021 for details.