Programming Languages
Virtual machines
- The concept of a virtual machine
- Hierarchy of virtual machines
- Intermediate languages
Formal Definitions
Theory
Language Classifications
- Procedural
- Functional languages
- Applicative
- Single Assignment
- Object-oriented languages
- Logic
- Declarative
- Constraint logic languages
- Imperative
- Event-Driven
- Data flow languages
- Concurrent Languages
- Very high level languages (aka Fourth Generation Languages)
- Query Languages
- Assembly Languages
- Design languages
- Extensible languages
- Microprogramming languages
- Multiparadigm languages
- Nondeterministic languages
- Specialized application languages
- Intermediate Languages
- Metalanguage
- Markup languages
- Scripting languages
- Modeling, specification languages (synonyms)
Language Constructs and Features
- Pointer to Programming Fundamentals
Language Translation and Execution
- Interpreters
- Compilers
- Debuggers
- Language translation phases
- lexical analysis
- parsing
- code generation
- optimization
- Computer architecture-specific translation requirements
- Addressing modes
- Instruction set
- Instruction format
- paralellism
- Computer architecture-independent translation elements
- Regular expressions in lexical scanners
- Parsing (concrete and abstract syntax, abstract syntax trees)
- Context-free grammars in table-driven and recursive-descent parsing
- Symbol table management
- Code generation by tree walking
- Optimization techniques
- Tools for the translation process
- lexer (lexical analysis tool)
- parser
- Separate (modular) compilation
- Program libraries
- Linking
- Retargetable compilers
- Translator writing systems compiler generators
- Run time environments
PL design and implementation
- Language design
- General principles of language design
- Design goals
- Constraints
- Programming language syntax
- Language features: implementation issues
- Typing regimes
- Data structure models
- Name scopes
- Declarations
- binding
- visibility
- scope
- lifetime
- Instruction and control flow
- Fuctions, procedures, and subroutines
- Parameters
- Run time memory management
- Static and dynamic storage management
- Activation records
- Garbage collection
- Stack
- Heap
- Coroutines
- Data abstraction and object orientation
- Input output
- Exception handling
- Concurrent programming structures
- Modules packages
- Frameworks
Programming language semantics
- Informal semantics
- Formal semantics
- Denotational semantics
- Axiomatic semantics
- Operational semantics
to top