I don't know if I'll be teaching the course again, but if I wait until next year I'll forget feedback I've received. Note that more test cases have been added (if you pull the new starter code); those are for the (potential) future!
I don’t have solutions ready to post, but you may reach out to me to verify your answers.
The parser visualizer website previously linked also shows the parsing steps. For the grammars we have previously seen (e.g. midterm 1, midterm 2), try walking through the algorithm by hand and comparing with the website.
Nothing new from midterm 2 (the actual exam and the exercises).
Exercises from the textbook:
Readings from the textbook:
Reading:
For pseudocode/CFGs we have previously seen (e.g. midterm 2), try converting them to stack based operations. Think about what bytecodes/operations are necessary to support branches and loops.
Exercises from the textbook:
A turing machine takes a single tape of input. If you wanted to supply two arbitarily long sequence of bits to a turing machine on a single tape, how would you unambiguously encode the two sequences on to a single tape?