Personal tools

DDC

From HaskellWiki

(Difference between revisions)
Jump to: navigation, 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.
   
== Development ==
+
== More Information ==
* See the [http://trac.haskell.org/ddc Development Wiki] for getting and building instructions.
+
* 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

DDC

Disciple is an explicitly lazy dialect of Haskell which supports destructive update, computational effects, type directed field projections and allied functional goodness.

1 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.

2 More Information