Download presentation
Presentation is loading. Please wait.
1
INRIA - LaBRICompose Group 2004 1 Generative Programming from a DSL Viewpoint Charles Consel Compose Research Group LaBRI – INRIA-Futurs 2004
2
2INRIA - LaBRI Compose Group 2004 Domain-Specific Languages: What Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem familyProgram family Problem Generator Program Application generator Preprocessor DSL compiler Specification Declaration DSL program
3
3INRIA - LaBRI Compose Group 2004 Unconventional, Domain-Specific Languages (1) Domain-specific notations and abstractions – Types (return value, SIP addr) – Exceptions (timers, resources…) Domain-specific verifications – No call loss – Valid state transition Domain-specific optimizations – Server state management Domain-specific code generation – Exception handling (multiple platforms) Domain-specific development tools – Textual tools – Graphical tools
4
4INRIA - LaBRI Compose Group 2004 Unconventional, Domain-Specific Languages (2) Examples of DSLs – Scripting languages Shell, AWK… (~) – Layer-oriented DSL XDR [ SUN ], Devil – Component-oriented DSL Plan-P, Bossa [ Muller & Lawall ], Call/C Benefits – Efficiency – Verification – Conciseness – Re-use – Productivity
5
5INRIA - LaBRI Compose Group 2004 Domain-Specific Languages: How Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem familyProgram family DSL Program Generator Program Representation Domain-specific information Domain-specific abstractions Exploitation Factorize / re-use Code/expertise/verification/treatment
6
6INRIA - LaBRI Compose Group 2004 Domain-Specific Languages: How Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem familyProgram family DSL Program Generator Program Representation Domain-specific information Domain-specific abstractions Exploitation Factorize / re-use Code/expertise/verification/treatment Generative Programming
7
7INRIA - LaBRI Compose Group 2004 Domain-Specific Languages: How Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem familyProgram family DSL Program Generator Program Representation Domain-specific information Domain-specific abstractions Exploitation Factorize / re-use Code/expertise/verification/treatment Encoding of expertise Generative Programming
8
8INRIA - LaBRI Compose Group 2004 From Program Family to Generative Programming: Declarations / AOP Declarations Generator Program DS info: declarations BT declarations AOP (call pattern/history) Program Processor Exploitation Verification Optimization Code generation
9
9INRIA - LaBRI Compose Group 2004 From Program Family to Generative Programming: Annotations Annotations Generator Program DS info: annotations Assertions Hints Program Processor Exploitation Verification Optimization Code generation
10
10INRIA - LaBRI Compose Group 2004 From Program Family to Generative Programming: Meta-Programming Transformer Generator Program DS info: transformer Extensions Program Exploitation Verification Optimization Code generation
11
11INRIA - LaBRI Compose Group 2004 From Program Family to Generative Programming DSL Program Generator Program Domain-specific information Domain-specific abstractions ( Re-)use of GP tools Semantic independent Restricted Reliable Predictable Technology independent Traded for reduced flexibility DeclarationsAnnotationsTransformer Complementary
12
12INRIA - LaBRI Compose Group 2004 Disclaimers Not the panacea: need for a program family Not fixed : need to evolve with the program family Not GPL expressivity: – Not embedded language: embedding rich run-time environment
13
13INRIA - LaBRI Compose Group 2004 Conventional vs. Unconventional Unconventional today conventional tomorrow Unconventional today gone tomorrow Examples: – Garbage collection – Objects Counter-examples – Parallelizing compilers – Language-based machine architectures
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.