Difference between revisions of "Discus"

From HaskellWiki
Jump to navigation Jump to search
Line 1: Line 1:
 
Disciple is an explicitly lazy dialect of the functional programming language [http://www.haskell.org Haskell].
 
Disciple is an explicitly lazy dialect of the functional programming language [http://www.haskell.org Haskell].
   
=== Disciple vs Haskell ===
+
== Disciple vs Haskell ==
 
* Strict [[DDC/EvaluationOrder|EvaluationOrder]] is the default, laziness is introduced explicitly.
 
* Strict [[DDC/EvaluationOrder|EvaluationOrder]] is the default, laziness is introduced explicitly.
* All data objects support DestructiveUpdate, without the need for Ref types.
+
* All data objects support [[DDC/DestructiveUpdate|DestructiveUpdate]], without the need for Ref types.
* Type directed FieldProjections complement type classing.
+
* Type directed [[DDC/FieldProjections|FieldProjections]] complement type classing.
* Supports a try-catch ExceptionMechanism.
+
* Supports a try-catch [[DDC/ExceptionMechanism|ExceptionMechanism]]
* The TypeSystem ensures that SideEffects and DestructiveUpdate play nicely with laziness.
+
* The [[DDC/TypeSystem|TypeSystem]] ensures that side effects and destructive update play nicely with laziness.
   
 
Some example [http://cs.anu.edu.au/people/Ben.Lippmeier/project/disciple/src/NBody-Main.ds code], and it's [http://cs.anu.edu.au/people/Ben.Lippmeier/project/disciple/nbody.png output].
 
Some example [http://cs.anu.edu.au/people/Ben.Lippmeier/project/disciple/src/NBody-Main.ds code], and it's [http://cs.anu.edu.au/people/Ben.Lippmeier/project/disciple/nbody.png output].
   
=== The Disciplined Disciple Compiler (DDC) ===
+
== The Disciplined Disciple Compiler (DDC) ==
 
* Uses a typed core language which includes effect, closure, region and mutability information. ([http://cs.anu.edu.au/people/Ben.Lippmeier/project/disciple/src/NBody.dump-core-reconstruct.dc example])
 
* Uses a typed core language which includes effect, closure, region and mutability information. ([http://cs.anu.edu.au/people/Ben.Lippmeier/project/disciple/src/NBody.dump-core-reconstruct.dc example])
 
* This extended type information is used to allow code-transformation style optimizations in the presence of side effects and mutable objects.
 
* This extended type information is used to allow code-transformation style optimizations in the presence of side effects and mutable objects.
Line 16: Line 16:
 
* Is in a usable alpha state.
 
* Is in a usable alpha state.
   
=== Get the Source ===
+
== Get the Source ==
 
Use [http://darcs.net darcs] to get the repo from [http://www.haskell.org haskell.org]
 
Use [http://darcs.net darcs] to get the repo from [http://www.haskell.org haskell.org]
 
darcs get http://code.haskell.org/~benl/disciple-HEAD
 
darcs get http://code.haskell.org/~benl/disciple-HEAD
Line 22: Line 22:
 
Check the ReleaseNotes and [http://code.haskell.org/~benl/disciple-HEAD/INSTALL INSTALL] instructions.
 
Check the ReleaseNotes and [http://code.haskell.org/~benl/disciple-HEAD/INSTALL INSTALL] instructions.
   
=== Contact the Maintainers ===
+
== Contact the Maintainers ==
 
* If you've tripped over a bug then please add it to the [http://code.google.com/p/disciple/issues Issues List].
 
* If you've tripped over a bug then please add it to the [http://code.google.com/p/disciple/issues Issues List].
 
* 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 11:49, 16 March 2008

Disciple is an explicitly lazy dialect of the functional programming language Haskell.

Disciple vs Haskell

Some example code, and it's output.

The Disciplined Disciple Compiler (DDC)

  • Uses a typed core language which includes effect, closure, region and mutability information. (example)
  • This extended type information is used to allow code-transformation style optimizations in the presence of side effects and mutable objects.
  • Produces standard C99, so is highly portable.
  • Is in a usable alpha state.

Get the Source

Use darcs to get the repo from haskell.org

   darcs get http://code.haskell.org/~benl/disciple-HEAD

Check the ReleaseNotes and INSTALL instructions.

Contact the Maintainers