Lund University →
Faculty of Engineering →
Department of Computer Science
Week by week 2023/2024 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,
Week 1 (Aug 28 - Sep 1)
Register formally in LADOK
Sign up on Moodle
Lecture 1: Introduction
- The first lecture is Mon 15:15-17:00. Aug 28, 2023 in room MA:5 in the house "Matte-annexet".
- Confirm your seat in the course at lecture 1.
- Read the Course Program
- Slides L1
- Moodle Quiz Q1
- Appel Book: Ch 1-1.2 (See the course program for how to access the on-line book)
Sign up for lab sessions
- Deadline: Thursday, Aug 31, 2023
- Sign up via the SAM system
- If you don't have a partner, ask at the Moodle forum for someone who wants the same time slot as you.
Lecture 2: Regular Expressions, Scanning. Tuesday 13-15, E:B
Get a git repo for the assignments
See information about this in Moodle
Assignment 0. Java, Unix, Gradle, and Git.
- 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 3: Context-free grammars. Recursive-descent parsing. Thursday, Sept 1, E:B
- 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)
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.
Week 2
Lecture 4: Ambiguities. LL problems. Monday.
Lecture 5: LL parsing. Abstract Syntax Trees. Tuesday.
Lab sessions. Wednesday and Thursday
- For approving and getting help with Assignment 1.
- Go to the session you signed up for in the SAM system.
- All sessions are in the E:Panter lab room in the basement of the E-house.
Assignment 2. LR parsing and AST building
Week 3
Lecture 6: LR parsing. Visitors.
Lecture 7: Aspects. Attribute Grammars.
Lab sessions.
- For approving and getting help with Assignment 2.
Assignment 3. Visitors, Aspects, and Attribute Grammars.
Week 4
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.
Lecture 9: Circular attribute grammars. Interpreters.
Lab sessions.
- For approving and getting help with Assignment 3.
Assignment 4. Semantic analysis using reference attribute grammars.
Week 5
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
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)
Lab sessions.
- For approving and getting help with Assignment 4.
Assignment 5. Interpreter and static analysis
Week 6
Lecture 12: Object-oriented languages, Runtime Optimization.
Lecture 13: Guest lecture: Tuesday, Oct 3, 13:15-14:30, E:B
- Title: "Why Automotive Software Needs More Rust"
- Presenter: Julius Gustavsson, Volvo Cars
- Abstract: Automotive software (and systems software in general) has been predominantly done in C/C++ for the last four decades.
Although this has enabled tremendous innovation, there are issues related to memory safety that continue to plague these codebases
with no practical remedy in sight. Moreover, these issues tend to be at the heart of most serious cyber security vulnerabilities discovered to date.
As software-defined, cloud-connected vehicles have emerged, there has been a corresponding surge in
both the complexity and sheer volume of automotive software.
We need to face up to the fact that the old tools and methods we have used in the past may not be ideal anymore.
If we are to meet these challenges, we must increase quality and productivity at a lower cost without sacrificing personal safety or cyber security.
This is where Rust comes in as an important piece of the puzzle.
- Bio: Julius Gustavsson is a System Architect and Team Lead at Volvo Cars. He has 20 years of experience developing embedded systems in various industries.
Has debugged his fair share of obscure memory issues to realize that this can't be as good as it gets.
There must be a better way! He is currently leading Volvo Cars' first Rust project which is nearing production.
- Slides from Julius presentation.
Lab sessions.
- For approving and getting help with Assignment 5.
Assignment 6. Code generation
Week 7
Lecture 14: Course review before exam.
No lecture on Tuesday, Oct 10
Lab sessions.
- 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.
Week 8
Catch-up lab session.
- For approving Assignment 6.
- Tuesday, Oct 17, 13-15, in the E:Gamma lab room (E:2121) in the E house (on floor 2 - i.e., 1 floor up from the entry floor).
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.
Regular exam
- Friday, October 27, 2023, 14:00-19:00. In the room "Gasque-salen" in the house "Kårhuset".
- 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.
- Update 2023-12-08:
- The exam and the solution are now available: 231027.pdf,
231027sol.pdf
- Tentavisning: The corrected exams will be available for inspection on Tuesday, Dec 12, 11:30-12:30, in "glasburen",
E:2405.
- After that, the corrected exams will be available for inspection at Ulrika Templing's office,
E:2179
(Contact Birger Swahn in the neighbor office if Ulrika is not there).
Retake of exam
- The retake exam will be held in the spring retake period, on Tuesday April 9, 2024, at 8:00-13:00, in E:2116.