News
Week 4: Composing Constraints and Generation Goals
Written on 19.05.2026 13:11 by Alexi Turcotte
Hey all!
I just added two new documents: one about how to compose constraints together and set up a basic NSGA-2 evolver (i.e., the multi-objective optimization algorithm, as when we have multiple constraints, we want to optimize for all of them), as well as one about how to set generation goals.
I also updated the grammar document with some of the discussion we had last Friday.
For this week, I'd like you to focus on getting your grammar working (if you haven't already), and running some preliminary experiments by generating lots of programs, trying to compile them, and seeing what sort of issues the compilers find with the programs. This will help you prioritize what behaviour to constrain, as well as help us identify general, generic issues that many languages face. Our discussion on Friday will centre around this. Also, if you're feeling particularly ambitious, you could try writing some really basic constraints to get more familiar with the design patterns. Remember: every line of Rust, every constraint you write will be easier than the last!
Best,
Alexi
