Introductory remarks

I have been asked, how about a list of (typical) exam questions? I always said, the list of possible questions is basically known, as for every concept or definition in the pensum, there could be a question. So since there is one or a couple of slides about ambiguity, so there could be a question "what's ambiguity?" or "tell me about ambiguity!". I call that here a bland question. For every concept (like ambiguity) covered in the lecture, there could be a bland question ``what's XXX/tell me about XXX'' or similar. There can be also not so bland questions in connection with that, like ``is an ambiguous grammar LR-parsable?'' ``why are ambiguous grammars not good for parsing'', etc.

I always had a list of questions, basically for myself, making the exam more smooth or structured. Of course, in principle I know basically all topics, but it may take time to remember all aspects that has been discussed, so in a concrete exam situation, I should not waste time to collect my thoughts (maybe while listening to an answer) to figure out what to ask next.

What this list is not!

This is meant to give an impression of possible questions. Most importantly it's not complete, i.e. just because a question (or a topic) is not listed here does not mean it's not pensum or cannot be asked.

Then of course the questions as listed here are "unnaturally sterile" and "isolated", or bland as I called it. In a concrete exam, (depending on the candidate), it's mostly a dialogue, with follow-ups etc. While some of the questions may be asked in bland form What is a context-free grammar?, there are many different ways to shape an answer (give the definition, give an example, explain why it's context free and what role they play for parsing etc.) Depending on the reaction and the response to the bland question, there would be a follow up question, but typically it might not be just picking up a random bland question from the same section of the material, but reacting on the given response. So questions can range from a bland what is BNF? ``can you say a bit more about the example you are given'' (if for instance an example is offered by the candidate but without much words, and one likes to check if the example is just learned by heart, or understood).

Of course I will not include situational questions like "can you explain your example in more detail" in the list of possible questions here, though they might be common.

The bland questions, as I called them, is basically the list of concepts. As mentioned, I (as examiner) use them basically as aide-mémoire during the exam, it's basically nothing more as a list of keywords, or in index of concepts from the lecture or script.

Variations

The list of questions is (and cannot) be complete for all (non-bland) variations that could be asked. I cannot think of all variations (some are maybe situational), but if there is a concept like "liveness", then variations of that concept are

bland question What is liveness/xxx?
variations motivation for liveness/xxx: what is it good for
give an example, illustrating liveness/xxx
here is an example: explain liveness/xxx with this
we discussed variations of XXX/liveness, name them, explain them
in which stage of the compiler did we discuss liveness/xxx
XXX/liveness is a special case of YYY, explain that

Many concepts can have such variations (or more), they are in that sense generic. However, specific concepts may have variations that only make sense for that. For instance, maybe for some concepts (like first and follow sets), we have not discussed variations (as for liveness). Related to that, some "variation" or follow-ups to some concept make sense only for that concept. For liveness we could ask "liveness analysis: is it a backward or forward analysis". There exists also analyses for which that would make sense to ask it, but we did not discuss or presented that in the lecture. In the list of questions sometimes there are those follow ups as concrete questions, but also there, the possibility of variations is endless, so it's not complete also in that respect (even if all topics were at least touched upon).

General (in particular intro chapter)

Warm-up and intro

Not asked, not pensum

Scanning

Warm up

-..

Regex

Regular expressions/language

Finite state automata questions

What is Thompson's construction?

Subset construction?

DFA vs. reg?

Do some things from exercise [regexp]

Minimization

Grammars

Intro

General: trees

Grammars

First and Follow sets

Example: expression

Ambiguity

Parsers

"defects" in grammars (for

Removing left-recursion

left-factoring

Top down vs. bottom up parsers

Top-Down parsing

LR(1) parsing construction

LR-parser machine

Example: construct the LR(0) DFA

S -> (S) S | eps E -> E + num | num

conflicts in LR(0)

Not part of the questions

A-Grammars

Symbol tables

Types

RTE

Parameter passing

Garbage collection

ICode-gen

3AIC

P-code

Generating p-code

Generating 3AIC

from p-code to 3AIC and back

More complex data type

Control statements and logical expressions

Code generation

Intro

CFG

Liveness analysis