Modularity    Modularity
  • Clear separation of concerns
  • Language constructs and runtime infrastructures
Context-oriented programming    Context-oriented programming
  • Context-dependent behavioral variations
  • Dynamically scoped software composition
End-user development and collaboration environments    End-user development and collaboration environments
  • Domain-oriented programming
  • Domain-specific languages
Aspect-oriented Programming    Aspect-oriented programming
  • Dynamic aspect deployment
  • Aspect execution models
Meta-level Architectures    Meta-level architectures
  • Effective metamodels
  • Separation of crosscutting concerns
Software Evolution    Software evolution
  • Runtime evolution
  • Dynamic refactoring
Domain-specific Languages    Domain-specific languages
  • Growing abstractions
  • Embedded languages
Virtual Execution Environments    Virtual execution environments
  • Virtual machine architectures
  • Product lines for virtual machines