Deriving Combinator Implementations

2001-12-12


Klicka här för att starta


Innehållsförteckning

Deriving Combinator Implementations

Can We Derive Combinators from Specifications?

Example: Specifying Lists

Axiomatising Lists

Strategy 1: A Term Implementation

Strategy 1: A Term Implementation

Strategy 1: A Term Implementation

Strategy 1: A Term Implementation

Strategy 1: A Term Implementation

Strategy 1: A Term Implementation

Strategy 1: A Term Implementation

Strategy 1: A Term Implementation

Strategy 1: A Term Implementation

Strategy 1: A Term Implementation

Strategy 1: A Term Implementation

Strategy 2: A Simplified Term Implementation

Strategy 2: A Simplified Term Implementation

Strategy 2: A Simplified Term Implementation

Strategy 2: A Simplified Term Implementation

Strategy 2: A Simplified Term Implementation

Strategy 2: A Simplified Term Implementation

Strategy 2: A Simplified Term Implementation

Strategy 2: A Simplified Term Implementation

Strategy 2: A Simplified Term Implementation

A Problem

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Interlude: What is a Context?

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Strategy 3: Context Passing Implementation

Summary of Strategies

So?

Specifying Monads

Specifying Run

Specifying Failure

Failure/Monad Interaction

Failure/Monad Interaction

Missing Laws

How Do We Choose Simplified Forms?

How Do We Choose Simplified Forms?

How Do We Choose Simplified Forms?

How Do We Choose Simplified Forms?

How Do We Choose Simplified Forms?

How Do We Choose Simplified Forms?

How Do We Choose Simplified Forms?

Simplified Term Implementation

What About Context Passing?

Summary So Far…

Prettyprinting Library

Prettyprinting Operations

Horizontal Composition

Interesting Laws

Specialised Laws

Results

Summary

Författare: John Hughes

E-post: rjmh@cs.chalmers.se

Hemsida: www.cs.chalmers.se/~rjmh