CSE583: Programming Languages

3/7/00


Click here to start


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