Table of Contents
CSE583: Programming Languages
Tonight
Domain specific languages
Tonight
Example DSLs
Synonyms for DSL
Example: Unix shells
Example: make
Benefits of DSLs [IRISA/INRIA]
Parameterization mechanism
Program families
Guideline
Guideline
How to design and implement a DSL?
Small example: reflexion mapping
An obvious point
Larger example: MDL
MDL control flow
MDL example
More of the example
MAWL: another example [Atkins et al.]
MAWL structure
Greet.mawl
GetName & ShowInfo.mhtml
Service creation, analysis & maintenance
Compile-time guarantees
Implementation flexibility
Prototyping services
Testing and validation
Multi-device services
Composing web services
Usage analysis
MAWL
Key issues: given a DSL design
No simple answers
Bottom line on DSLs
Topics we didn’t cover
Programming language semantics
Partial evaluation, program specialization, run-time compilation
Programming calculi(Other than the ?-calculus)
Parallel and concurrent languages
Logical frameworks and automatic deduction
Functional logic programming
Literate programming
What else?
Final
Final
Final
|
Author: David Notkin
Email: notkin@cs.washington.edu
Home Page: http://www.cs.washington.edu/education/courses/583
Download presentation source
|