From 666a1860a7290893f80797a35fde18b9fd462792 Mon Sep 17 00:00:00 2001 From: Alex Hirsch Date: Thu, 4 Feb 2021 13:21:11 +0100 Subject: [PATCH] Update course information for next semester --- README.md | 74 +++++++++++++++--------------------------- evaluation_scheme.md | 6 ++++ slides/intro_slides.md | 24 +++----------- specification.md | 8 ++--- 4 files changed, 42 insertions(+), 70 deletions(-) diff --git a/README.md b/README.md index 5ec44e6..5a1a379 100644 --- a/README.md +++ b/README.md @@ -2,28 +2,26 @@ | Date | Topic / Recommended Schedule / Deadlines | | ---------- | ----------------------------------------- | -| 2020-03-03 | *no proseminar* | -| 2020-03-10 | Lexer complete | -| 2020-03-17 | | -| 2020-03-24 | | -| 2020-03-31 | Parser complete | -| 2020-04-07 | | -| 2020-04-14 | | -| 2020-04-21 | Semantic checks complete | -| 2020-04-28 | | -| 2020-05-05 | AST → TAC conversion complete | -| 2020-05-12 | | -| 2020-05-19 | TAC → ASM (no function calls) complete | -| 2020-05-26 | | -| 2020-06-02 | TAC → ASM (with function calls) complete | -| 2020-06-09 | CFG generation complete | -| 2020-06-16 | Polish | -| 2020-06-23 | Build test submission deadline | -| 2020-07-14 | Final submission deadline (no extensions) | +| 2021-03-05 | *Introduction* | +| 2021-03-12 | *Explaining lexer & parser code* | +| 2021-03-19 | Lexer complete | +| 2021-03-26 | | +| 2021-04-16 | Parser complete | +| 2021-04-23 | | +| 2021-04-30 | Semantic checks complete | +| 2021-05-07 | | +| 2021-05-14 | AST → TAC conversion complete | +| 2021-05-21 | | +| 2021-05-28 | TAC → ASM (no function calls) complete | +| 2021-06-04 | | +| 2021-06-11 | TAC → ASM (with function calls) complete | +| 2021-06-18 | CFG generation complete | +| 2021-06-25 | Build Test Submission deadline | +| 2021-07-16 | Final Submission deadline (no extensions) | - [mC Compiler Specification](specification.md) - [Getting Started Code-base](https://git.uibk.ac.at/c7031162/mcc) -- [Submission Guideline](submission.md) +- [Submission Guidelines](submission.md) ## Structure @@ -32,15 +30,16 @@ The ultimate goal of this course is to build a working compiler according to the You are not allowed to use code from other people participating in this course or code that has been submitted previously by somebody else. A *getting started* code-base is provided, but you can also start from scratch. -During the lab, short QA sessions will be held. -You can work on your compiler in the meantime. -I'll be present for questions all the time, yet a big part of this course is to acquire the necessary knowledge yourself. - Please note that minor modifications may be made to the specification until 2 weeks before the final deadline. Therefore, double check for modifications before submitting — Git provides you the diff anyway. You may work together in teams of 1–3 people. -Teams may span across pro-seminar groups. +Teams may span across proseminar groups. + +The proseminar takes place online [over at Twitch](https://www.twitch.tv/AlexWarhawk), attendance is not mandatory. + +I recommend sending me snapshots of your code-base, I'll provide feedback on stream. +Please follow the submission guidelines. ### Programming Language @@ -54,37 +53,18 @@ Any of the following programming languages can be used: Go easy on external dependencies and obscure language extensions — yes, I'm looking at you, Haskell. Code readability is paramount. -Using overly complex and cryptic concepts may negatively impact the evaluation process — again, looking at you, Haskell and your voodoo magic lenses. - -### Evaluation System - -I'll be using a virtualised, updated Ubuntu 20.04 LTS (64 bit) to examine your submissions. -From this you can infer the software versions I'll be using. -The submitted code has to compile and run on this system. +Using overly complex or cryptic concepts may negatively impact the evaluation process — again, looking at you, Haskell and your voodoo magic lenses. ## Grading -The final grade is computed as the weighted average of the final submission (80%) and the QA sessions (20%). -Both of these parts as well as the majority of QA session grades must be positive to pass this course. +The final grade is computed solely from the final submission. Be sure to adhere to the specification, deviating from it (without giving proper reason) will negatively impact your grade. See [Final Submission Evaluation Scheme](evaluation_scheme.md) for more details. -### Remote Seminar - -While university grounds are locked down, no attendance is required and no QA sessions are held. -I'll stream during the regular seminar times [over at Twitch](https://www.twitch.tv/AlexWarhawk), feel free to tune in and ask questions. -Streams should be recorded by Twitch automatically and remain online for 14 days. - -I recommend sending me snapshots of your code-base, I'll provide feedback while streaming. -See [Submission Guideline](submission.md). - ## Contacting Me -If you have questions or want to know more about a certain topic, I am always glad to help. - -You can contact me by email, just be sure to send it from your university account. -Please keep your email informal and include the course number in the subject. -Preferably use the following link. +Just message me on Discord if you need anything. +Alternatively, you can send me an email using the following link. 📧 [send email](mailto:alexander.hirsch@uibk.ac.at?subject=703602%20-%20) diff --git a/evaluation_scheme.md b/evaluation_scheme.md index 72e2a26..c1d8c33 100644 --- a/evaluation_scheme.md +++ b/evaluation_scheme.md @@ -54,3 +54,9 @@ Furthermore, the control flow graph is an essential tool used by optimising comp - TAC data structure is present and independent from front- and back-end. - A dedicated CFG data structure is present. - A CFG of a given IR function can be obtained and visualised. + +## Evaluation System + +I'll be using a virtualised, updated Ubuntu 20.10 (64 bit) to examine your submissions. +From this you can infer the software versions I'll be using. +The submitted code has to compile and run on this system. diff --git a/slides/intro_slides.md b/slides/intro_slides.md index bb07747..187272b 100644 --- a/slides/intro_slides.md +++ b/slides/intro_slides.md @@ -1,12 +1,12 @@ % Compiler Construction % Alex Hirsch -% 3 March 2020 +% 5 March 2021 -# This ProSeminar +# This Proseminar ## Curriculum -> […] development of a compiler for a simple procedural programming language +> […] development of a compiler for a simple, procedural programming language - - - @@ -85,23 +81,13 @@ The lecture and proseminar assumes that you are familiar with the basics of gram - Specification provided - Evaluation scheme provided -## In the Lab - -- QA sessions -- I'll be present for questions -- You can work on your compiler - ## Requirements - Working compiler -- More positive than negative QA sessions ## Recommended Schedule -- March: lexer / parser -- April: semantic checks, start IR generation -- May: finish IR generation, start ASM generation -- June: finish ASM generation, CFG generation, polish +- See README