Intermediate Representations
Type Checking
Parser Generators
Stack-based execution
Polymorphism
object-oriented languages
functional languages
First-class functions
in stateless or stateful languages
Dynamic memory management
garbage collection?
Binding mechanisms
No pain, no gain