Submission via GitLab

This commit is contained in:
Alex Hirsch 2021-02-23 14:59:54 +01:00
parent 9d1e140c01
commit 02e695959f
4 changed files with 34 additions and 71 deletions

View File

@ -5,7 +5,7 @@
| 2021-03-05 | *Introduction* | | 2021-03-05 | *Introduction* |
| 2021-03-12 | *Explaining lexer & parser code* | | 2021-03-12 | *Explaining lexer & parser code* |
| 2021-03-19 | Lexer complete | | 2021-03-19 | Lexer complete |
| 2021-03-26 | | | 2021-03-26 | Team composition |
| 2021-04-16 | Parser complete | | 2021-04-16 | Parser complete |
| 2021-04-23 | | | 2021-04-23 | |
| 2021-04-30 | Semantic checks complete | | 2021-04-30 | Semantic checks complete |
@ -16,12 +16,11 @@
| 2021-06-04 | | | 2021-06-04 | |
| 2021-06-11 | TAC → ASM (with function calls) complete | | 2021-06-11 | TAC → ASM (with function calls) complete |
| 2021-06-18 | CFG generation complete | | 2021-06-18 | CFG generation complete |
| 2021-06-25 | Build Test Submission deadline | | 2021-06-25 | |
| 2021-07-16 | Final Submission deadline (no extensions) | | 2021-07-16 | Final Submission deadline (no extensions) |
- [mC Compiler Specification](specification.md) - [mC Compiler Specification](specification.md)
- [Getting Started Code-base](https://git.uibk.ac.at/c7031162/mcc) - [Getting Started Code-base](https://git.uibk.ac.at/c7031162/mcc)
- [Submission Guidelines](submission.md)
## Structure ## Structure
@ -38,8 +37,12 @@ Teams may span across proseminar groups.
The proseminar takes place online [over at Twitch](https://www.twitch.tv/AlexWarhawk), attendance is not mandatory. 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. ### Repository
Please follow the submission guidelines.
Host your code on the University GitLab and add me as developer to your repository.
Furthermore, it is required to set up GitLab CI to automatically build and test your code.
The getting started code-base comes with a basic [`.gitlab-ci.yml`](https://git.uibk.ac.at/c7031162/mcc/blob/master/.gitlab-ci.yml).
### Programming Language ### Programming Language
@ -55,6 +58,26 @@ Go easy on external dependencies and obscure language extensions — yes, I'm lo
Code readability is paramount. Code readability is paramount.
Using overly complex or cryptic concepts may negatively impact the evaluation process — again, looking at you, Haskell and your voodoo magic lenses. Using overly complex or cryptic concepts may negatively impact the evaluation process — again, looking at you, Haskell and your voodoo magic lenses.
## Submission
### Team Composition
Send me a mail (one per team) with the names of your team members and a link to your repository.
Don't forget to add me as developer to your repository.
### Feedback Request
Just message me whenever you want to receive feedback on your code.
Tell me which commit to look at.
Ensure that the repository does not contain any personal information like names or student IDs as I'll be going over it on stream.
### Final Submission
Add the tag `final` to the revision you want me to look at for the final evaluation.
I'll only evaluate your solution if the corresponding CI job builds and tests your code successfully.
## Grading ## Grading
The final grade is computed solely from the final submission. The final grade is computed solely from the final submission.
@ -68,3 +91,5 @@ Just message me on Discord if you need anything.
Alternatively, you can send me an email using the following link. Alternatively, you can send me an email using the following link.
📧 [send email](mailto:alexander.hirsch@uibk.ac.at?subject=703602%20-%20) 📧 [send email](mailto:alexander.hirsch@uibk.ac.at?subject=703602%20-%20)
You can also open issue on GitLab, please message me if I do not respond within 24 hours; I might not have received a notification.

View File

@ -27,7 +27,6 @@ This includes things like:
- Contains list of prerequisites - Contains list of prerequisites
- Contains build instructions - Contains build instructions
- Contains *Known Issues* section - Contains *Known Issues* section
- Submitted code builds successfully.
- `mcc` executable operates as demanded by the specification. - `mcc` executable operates as demanded by the specification.
- A respective executable can be built and run for the *mandelbrot* test input. - A respective executable can be built and run for the *mandelbrot* test input.

View File

@ -12,7 +12,7 @@
As stated by the curriculum, your task is to build a simple compiler for a small procedural programming language. As stated by the curriculum, your task is to build a simple compiler for a small procedural programming language.
It's quite hard to fit this goal into the 5 ECTS budget of this module (lecture included), nevertheless I think I found the right trade-offs with the given specification. It's quite hard to fit this goal into the 5 ECTS budget of this module (lecture included), nevertheless I think I found the right trade-offs with the given specification.
Still, it is highly recommended to work in teams and that you start early - always trying to be ahead of schedule. Still, it is highly recommended to work in teams and that you start early always trying to be ahead of schedule.
</aside> </aside>
## Prerequisites ## Prerequisites
@ -31,7 +31,7 @@ While I don't care whether you have officially finished your bachelor, you shoul
- - - - - -
- Fluent in C (or C++, or Go, or Rust, or Haskell) - Fluent in C (or C++, or Go, or Rust, or Haskell)
- General programmer mindset - General programming mindset
- Knowing your tools - Knowing your tools
- Algorithms and data structures - Algorithms and data structures
@ -44,9 +44,9 @@ While I don't care whether you have officially finished your bachelor, you shoul
<aside class="notes"> <aside class="notes">
Since this course is very programming intensive, you need to be fluent in one of these languages. Since this course is very programming intensive, you need to be fluent in one of these languages.
If choose C and think strings are compared using `==` you'll have a very hard time. If you choose C and think strings are compared using `==` you'll have a very hard time.
For OS, if you think calling `exec` without `fork` while implementing a library is a good idea, maybe revisiting the OS course would be a good idea. For OS, if you think calling `exec` without `fork` while implementing a library is a good idea, maybe consider revisiting the OS course.
</aside> </aside>
- - - - - -
@ -81,10 +81,6 @@ The lecture and proseminar assumes that you are familiar with the basics of gram
- Specification provided - Specification provided
- Evaluation scheme provided - Evaluation scheme provided
## Requirements
- Working compiler
## Recommended Schedule ## Recommended Schedule
- See README - See README
@ -93,11 +89,6 @@ The lecture and proseminar assumes that you are familiar with the basics of gram
You are free to deviate from this schedule. You are free to deviate from this schedule.
</aside> </aside>
## Submissions
- End of June: build test submission (optional)
- Mid of July: final submission (no extensions)
## Teams ## Teams
- 13 people - 13 people

View File

@ -1,52 +0,0 @@
# Submission Guideline
- Replace `XX` with your team number with leading zero (e.g. `02`).
- One submission *per team*.
- Familiarise yourself with the `git archive` command.
## Feedback Request
1. Run the following command, assuming you want to submit the currently checked out version:
$ git archive --prefix=feedback_request/ --format=zip HEAD > feedback_request.zip
2. Verify that the resulting archive contains everything you want to submit and nothing more.
3. Ensure that the resulting archive does not contain any personal information like names or student IDs.
4. Submit the archive via mail using the following line as subject (or link below).
703602 - Feedback Request
📧 [send email](mailto:alexander.hirsch@uibk.ac.at?subject=703602%20-%20Feedback%20Request)
## Build Test Submission
1. Run the following command, assuming you want to submit the currently checked out version:
$ git archive --prefix=team_XX_build_test/ --format=zip HEAD > team_XX_build_test.zip
2. Verify that the resulting archive contains everything you want to submit and nothing more.
3. Submit the archive via mail using the following line as subject (or link below).
703602 - Team XX Build Test Submission
📧 [send email](mailto:alexander.hirsch@uibk.ac.at?subject=703602%20-%20Team%20XX%20Build%20Test%20Submission)
## Final Submission
1. Run the following command, assuming you want to submit the currently checked out version:
$ git archive --prefix=team_XX_final/ --format=zip HEAD > team_XX_final.zip
2. Verify that the resulting archive contains everything you want to submit and nothing more.
3. Ensure everything works.
- Everything builds
- No (unjustified) warnings
- All unit tests succeed
- All integration tests succeed
- No memory is leaked
- Known issues is present and up-to-date
4. Submit the archive via mail using the following line as subject (or link below).
703602 - Team XX Final Submission
📧 [send email](mailto:alexander.hirsch@uibk.ac.at?subject=703602%20-%20Team%20XX%20Final%20Submission)