Winter 2026, CSCI 512, Test 1 Review
Quick review: Chapters 1 and 2 in your text.
This review is produced to help you study. This is
not a guarantee that all topics are listed in the
following topic review list.
Topic review:
- Chapter 1 -- Introduction
- Early computer programming methods
- Assembly language vs machine code
- History of programming languages
- Evolution of languages
- Factors pushing language design
- Kinds of languages: Declarative, Imperative, Functional
- Compilation vs interpretation
- Compilation basics
- Compilation targets
- Compiler bootstrapping
- Phases of a compiler
- Jobs of each phase of a compiler
- Results of a parser
- Abstract Syntax Tree
- Checks of the code: compile time, link time, run time
- Code generation output
- Chapter 2 -- Programming Language Syntax
- Syntax vs semantics
- Scanners: REs, kinds of scanners (hand, generated)
- RE's for tokens
- RE->NFA->DFA
- Simple scanner, no generator tool
- Other scanner issues
- Parsing: CFG as basis
- LL vs LR
- Recursive descent parser, no generator tool
- Parse tree
- Left most and right most derivations
- Top town vs Bottom up parsers
- LL and LR generic algorithms
- Typical grammars for LL(k)
- Typical grammars for LR(k)
- Nullable non-terminals
- First sets & first function
- Follow sets
- LL table generation (Predict)
- Shift reduce parsers, code outline
- LR(0) parser generation
- Configuration set
- Closure and goto.
- Building LR(0) configuration sets, parse tables
- Following a LR(0) parse
- SLR(1), LALR(1), LR(1) basic concepts
- Scanner and parser generator tools
Example questions:
- A job not typically done by a scanner is
- recognizing tokens.
- removing comments.
- defining identifiers.
- counting lines.
- Given a small grammar, create LR(0) Action and Goto tables?
- How does an abstract syntax tree differ from a parse tree?
Last modified: Jan 26, 26