@@ -122,14 +122,18 @@ You will get the home exam to work on during the exam week. This may imply furth
You will each be scheduled 30 minutes to present Your home exam to us, based on which Your final grade will be determined. Schedule will be agreed on later using Doodle.
Edit: Use discord, to schedule your presentation, suggest a time and wether you want to invite Jingsen as well.
---
## Your parser
- Your parser should accept the input language according to your grammar (EBNF).
- (+ for higher grades)
- You are NOT required to account for operator precedence in expressions, however you MUST support parenthesized sub expressions. (+ for precedence towards higher grades)
- You are NOT required to account for location information (spans), but your error messages will be better if you do. (+ for spans, towards higher grades)
- Error recovery is NOT required (+ for recovery towards higher grades)
- You or NOT required to account for comments (neither single nor multiline). Doing
- You are NOT required to account for comments (neither single nor multiline). (+ for supporting comments, note that regexp based comment filtering is not enough to do detect proper nesting of comments, try figure out why...)
## Your type checker
...
...
@@ -167,7 +171,9 @@ Implement for higher grades
- Basic code generation.
- Pass `noalias` where possible allowing for better optimization (assuming your borrow checker prevents aliasing).
- Other attributes, intrinsics, etc. that enables further LLVM optimizations.
- Bindings to external code, (this could allow for )
- Bindings to external code, (this could allow for e.g., input and output for your programs)
As an alternative using Cranelift as alternative to LLVM was suggested. In this case, optimization is not a primary target, but rather compilation speed, and flexibility to support target independent WASM for next-gen web applications is in focus. Also in this case bindings to external code is possible to provide interaction is possible.