Generative Programming froma DSL Viewpoint
Upcoming SlideShare
Loading in...5
×
 

Generative Programming from a DSL Viewpoint

on

  • 1,345 views

 

Statistics

Views

Total Views
1,345
Views on SlideShare
1,343
Embed Views
2

Actions

Likes
0
Downloads
13
Comments
0

1 Embed 2

http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Generative Programming froma DSL Viewpoint Generative Programming from a DSL Viewpoint Presentation Transcript

  • Generative Programming from a DSL Viewpoint Charles Consel Compose Research Group LaBRI – INRIA-Futurs 2004
  • Domain-Specific Languages: What Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem family Program family Problem Generator Program
    • Application generator
    • Preprocessor
    • DSL compiler
    • Specification
    • Declaration
    • DSL program
  • 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
  • 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
  • Domain-Specific Languages: How Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem family Program family DSL Program Generator Program
    • Representation
    • Domain-specific information
    • Domain-specific abstractions
    • Exploitation
    • Factorize / re-use
    • Code/expertise/verification/treatment
  • Domain-Specific Languages: How Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem family Program family DSL Program Generator Program
    • Representation
    • Domain-specific information
    • Domain-specific abstractions
    • Exploitation
    • Factorize / re-use
    • Code/expertise/verification/treatment
    Generative Programming
  • Domain-Specific Languages: How Problem 1 Program 1 Problem 2 Program 2 Problem 3 Program 3 … Problem family Program 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
  • 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
  • From Program Family to Generative Programming: Annotations Annotations Generator Program
    • DS info: annotations
      • Assertions
      • Hints
    Program Processor
    • Exploitation
      • Verification
      • Optimization
      • Code generation
  • From Program Family to Generative Programming: Meta-Programming Transformer Generator Program
    • DS info: transformer
      • Extensions
    Program
    • Exploitation
      • Verification
      • Optimization
      • Code generation
  • 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
    Declarations Annotations Transformer Complementary
  • 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
  • Conventional vs. Unconventional
    • Unconventional today  conventional tomorrow
    • Unconventional today  gone tomorrow
    • Examples:
      • Garbage collection
      • Objects
    • Counter-examples
      • Parallelizing compilers
      • Language-based machine architectures