CS 380 Exam One Terms and Concepts
Chapter 1
- Categories of programming languages
- Reasons to study programming languages
- Compilation vs. interpretation and variations
- Steps of compilation:
- Scanner (lexical analysis)
- Parser (syntax analysis)
- semantic analysis and intermediate code generation
- target code generation
Chapter 2
- Tokens and regular expressions
- what scanner code looks like (case or if statements)
- Context-free grammars:
- using grammars to generate parse trees
- showing that grammars are ambiguous
- fixing ambiguous grammars to not be ambiguous
- recursive descent parsing
- writing context-free grammars for particular languages
Chapter 3
- Binding time:
- language design time
- language implementation time
- program writing time
- compile time
- link time
- load time
- run time
- Static vs. dynamic in this context
- static allocation
- stack-based allocation
- heap-based allocation
- garbage collection
- Scope rules:
- static scoping
- nested subprograms, including how access to non-local objects works
- modules
- dynamic scoping, including why and how
- simulating code execution with static vs. dynamic scoping
- aliases and overloading
- Referencing environments
Chapter 4
- attribute grammars, basic idea, what they are used for
Chapter 5