* Program manipulation techniques: transformation, specialization,
normalization, reflection, rewriting, run-time code
generation multi-level programming.
* Program analysis techniques: abstract interpretation, static
analysis,
binding-time analysis, type-based analysis.
* Related issues in language design and models of computation:
imperative, functional,
logical, constraint-based, object-oriented, parallel,
concurrent, secure, domain-specific.
* Programs as data objects: staging, meta-programming, incremental
computation, mobility, tools and techniques, prototyping
and debugging.
* Applications: systems programming, scientific computing, embedded
systems, graphics, security, model checking, compiler
generation, compiler optimization, decompilation.