Difference between revisions of "Discus"
Jump to navigation
Jump to search
(Remove old email address) |
(Moved most info to the trac.haskell.org wiki.) |
||
Line 2: | Line 2: | ||
Disciple is an explicitly lazy dialect of [http://www.haskell.org Haskell] which supports destructive update, computational effects, type directed field projections and allied functional goodness. |
Disciple is an explicitly lazy dialect of [http://www.haskell.org Haskell] which supports destructive update, computational effects, type directed field projections and allied functional goodness. |
||
− | |||
− | == Disciple vs Haskell == |
||
− | * Strict [[DDC/EvaluationOrder|EvaluationOrder]] is the default, laziness is introduced explicitly. |
||
− | * Type directed [[DDC/FieldProjections|FieldProjections]] complement type classing. |
||
− | * All data objects support [[DDC/DestructiveUpdate|DestructiveUpdate]]. |
||
− | * The [[DDC/EffectSystem|EffectSystem]] tracks what computational effects are being used in a program, without the need for state monads. |
||
− | * The [[DDC/ClassSystem|ClassSystem]] ensures that effects and destructive update play nicely with laziness. |
||
− | * [[DDC/ClosureTyping|ClosureTyping]] is used to track data sharing, and to preserve soundness in the presence of [[DDC/PolymorphicUpdate|PolymorphicUpdate]]. |
||
− | * Some [[DDC/FurtherReading|FurtherReading]]. |
||
− | |||
− | Some example [http://cs.anu.edu.au/people/Ben.Lippmeier/project/disciple/src/NBody-Main.ds code] showing most of the extensions, and its [http://cs.anu.edu.au/people/Ben.Lippmeier/project/disciple/nbody.png output], |
||
− | [http://cs.anu.edu.au/people/Ben.Lippmeier/project/disciple/src/NBody.dump-core-reconstruct.dc core] and [http://cs.anu.edu.au/people/Ben.Lippmeier/project/disciple/src/NBody.ddc.c C-code] |
||
== The Disciplined Disciple Compiler == |
== The Disciplined Disciple Compiler == |
||
Line 22: | Line 10: | ||
* Is an active research project and not yet "industrial strength", but will compile some programs if you're nice to it. |
* Is an active research project and not yet "industrial strength", but will compile some programs if you're nice to it. |
||
− | == |
+ | == More Information == |
− | * |
+ | * Please see the [http://trac.haskell.org/ddc Development Wiki] for further information. |
* 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. |
Revision as of 01:35, 17 June 2010
Disciple is an explicitly lazy dialect of Haskell which supports destructive update, computational effects, type directed field projections and allied functional goodness.
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 not yet "industrial strength", but will compile some programs if you're nice to it.
More Information
- Please see the Development Wiki for further information.
- 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