DDC
From HaskellWiki
(Difference between revisions)
| Line 22: | Line 22: | ||
* Is an active research project and is not yet "industrial strength", but will compile some programs if you're nice to it. | * Is an active research project and is not yet "industrial strength", but will compile some programs if you're nice to it. | ||
| - | == | + | == Development == |
| - | + | * See the [http://trac.haskell.org/ddc Development Wiki] for getting and building instructions. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
* If you've tripped over a bug then please add a [http://trac.haskell.org/ddc/newticket New Ticket]. | * If you've tripped over a bug then please add a [http://trac.haskell.org/ddc/newticket New Ticket]. | ||
| - | |||
* You can also post in http://groups.google.com/group/disciple-cafe. | * You can also post in http://groups.google.com/group/disciple-cafe. | ||
| - | |||
* Or ask in #disciplined on irc.freenode.net | * Or ask in #disciplined on irc.freenode.net | ||
| + | * Or send mail to Ben.Lippmeier (wibble) anu.edu.au | ||
Revision as of 05:45, 23 July 2009
Disciple is an explicitly lazy dialect of Haskell which supports destructive update, computational effects, type directed field projections and allied functional goodness.
1 Disciple vs Haskell
- Strict EvaluationOrder is the default, laziness is introduced explicitly.
- Type directed FieldProjections complement type classing.
- All data objects support DestructiveUpdate.
- The EffectSystem tracks what computational effects are being used in a program, without the need for state monads.
- The ClassSystem ensures that effects and destructive update play nicely with laziness.
- ClosureTyping is used to track data sharing, and to preserve soundness in the presence of PolymorphicUpdate.
- Some FurtherReading.
Some example code showing most of the extensions, and its output, core and C-code
2 The Disciplined Disciple Compiler
- Uses a typed core language which includes effect, closure, region and mutability information.
- This extended type information is used to allow code-transformation style optimizations in the presence of side effects and mutable objects.
- Compiles via standard C99, so is highly portable.
- Tested on linux-{x86, x86_64} and darwin-{x86, x86_64} (tested on 10.5.4)
- Is an active research project and is not yet "industrial strength", but will compile some programs if you're nice to it.
3 Development
- See the Development Wiki for getting and building instructions.
- If you've tripped over a bug then please add a New Ticket.
- You can also post in http://groups.google.com/group/disciple-cafe.
- Or ask in #disciplined on irc.freenode.net
- Or send mail to Ben.Lippmeier (wibble) anu.edu.au

