Presentation is loading. Please wait.

Presentation is loading. Please wait.

600.429 FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.

Similar presentations


Presentation on theme: "600.429 FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University."— Presentation transcript:

1 600.429 FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University

2 Homework 4 It’s up – we’ll discuss it soon! I even added it to Blackboard :-) Don’t delay in installing Euterpea – there seem to be Mac issues. You can work on the assignment even if it’s not installed. There will be a turn-in later this week to kick off the DSL implementation project. Come talk to me about projects. Talk to other students about teaming up.

3 Domain Specific Languages What is a DSL? How do we build them? How is a DSL different from an API? Why is Haskell a good vehicle for DSLs?

4 DSL Design Space Front end: how do we express programs in this language? Custom: write a parser / preprocessor Embedded: add vocabulary to an existing language. Use language extension constructs (special syntax, overloading, monads)

5 DSL Design Space How do we express the semantics of the language? Embedded: within the host language, often augmented by libraries Translated: generate code in a different language (usually source code)

6 DSL Correctness No correctness issues beyond those in the embedded part of the language. The type vocabulary is embedded in standard Haskell Custom type checking – the type system of the DSL requires a user-written type checker Extended types – the type system requires extensions to the Haskell type system

7 Haskell Evaluation and the DSL How does the lambda in Haskell relate to the DSL? It doesn’t – the language has a custom syntax and there is no Lambda in the language Integrated – the Haskell lambda calculus is part of the evaluation mechanism in the language Expanded – the language doesn’t have lambda in its semantics; the lambdas in the input are expanded away (lambda as “cpp”)

8 DSL Semantics How are semantic properties expressed or used? Embedded in Haskell semantics As rewrite rules – domain specific rewrites augment ordinary equational reasoning Custom – program semantics are not related to Haskell at all Custom Functional – as above, except that the underlying lambda calculus reasoning is valid

9 DSL Design Space Program Transformation None – the program is run “as written” Lambda calculus – transformations are possible in the “lambda” part of the language Tree rewrite – domain-specific rules are applied to the program in an AST (Abstract Syntax Tree) for optimization or code generation

10 Euterpea – A Music DSL See the reading for documentation. Note that this teaches Haskell as well as the music language. This language has two components: a note level and a sound level. We’ll work at the note level for now.

11 Overview Syntax: embedded in standard Haskell Code generation: programs are compiled to Midi files Semantics: the book discusses the difference between the Haskell level of the semantics and the music level but the implementation does not rely on these semantics Semantics: theses are “custom” - not related to Haskell Types: embedded in the Haskell type system Lambda: expanded away Transformation: programs are transformed to MIDI semantics during code generation

12 A Simple DSL Formula Start with domain-specific objects (musical notes) as data declarations Add domain-specific combinators (:+: and :=:) and transformations (transpose, instrument) Write utilities which make the language easier to use (note, rest) Add an interpretation function (play) which creates values in the underlying domain (midi files) – this makes use of transformations that are validated by domain-level semantics

13 Code Time Off to Haskell!


Download ppt "600.429 FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University."

Similar presentations


Ads by Google