Metaprogramming

  1. Metaprogramming Paradigms and Patterns
    1. Domain-Specific Languages (DSLs)
      1. Internal (Embedded) DSLs
        1. Designing Fluent APIs
          1. Method Chaining
            1. Builder Patterns
            2. Embedding DSLs in Host Languages
              1. Syntax Integration
                1. Type Safety
                2. DSL Implementation Techniques
                  1. Operator Overloading
                    1. Implicit Conversions
                  2. External DSLs
                    1. Designing Custom Syntax
                      1. Grammar Definition
                        1. Lexical Design
                        2. Parsing and Interpreting DSLs
                          1. Parser Generators
                            1. Interpreter Patterns
                            2. Code Generation from DSLs
                              1. Target Language Mapping
                                1. Optimization Strategies
                            3. Aspect-Oriented Programming (AOP)
                              1. Concepts
                                1. Join Points
                                  1. Method Calls
                                    1. Field Access
                                      1. Exception Handling
                                      2. Pointcuts
                                        1. Selection Criteria
                                          1. Pattern Matching
                                          2. Advice
                                            1. Before Advice
                                              1. After Advice
                                                1. Around Advice
                                                2. Aspects
                                                  1. Aspect Composition
                                                    1. Aspect Ordering
                                                  2. Implementation via Metaprogramming
                                                    1. Code Weaving
                                                      1. Compile-Time Weaving
                                                        1. Load-Time Weaving
                                                          1. Runtime Weaving
                                                          2. Runtime Proxies
                                                            1. Proxy Generation
                                                              1. Interception Mechanisms
                                                          3. Generative Programming
                                                            1. Program Families and Variability
                                                              1. Feature Models
                                                                1. Configuration Management
                                                                2. Code Synthesis Techniques
                                                                  1. Template-Based Generation
                                                                    1. Model-Driven Development
                                                                    2. Product Line Engineering
                                                                      1. Commonality and Variability Analysis
                                                                        1. Asset Management
                                                                      2. Policy-Based Design
                                                                        1. Policy Classes
                                                                          1. Policy Interfaces
                                                                            1. Policy Composition
                                                                            2. Configurable Behavior via Templates
                                                                              1. Template Parameters as Policies
                                                                                1. Policy Selection Mechanisms
                                                                                2. Design Patterns Integration
                                                                                  1. Strategy Pattern Enhancement
                                                                                    1. Template Method Refinement