Difference between revisions of "Discus"
Jump to navigation
Jump to search
(Slurped across from google code page) |
|||
Line 2: | Line 2: | ||
=== Disciple vs Haskell === |
=== Disciple vs Haskell === |
||
− | + | * Strict EvaluationOrder is the default, laziness is introduced explicitly. |
|
− | + | * All data objects support DestructiveUpdate, without the need for Ref types. |
|
− | + | * Type directed FieldProjections complement type classing. |
|
− | + | * Supports a try-catch ExceptionMechanism. |
|
− | + | * The TypeSystem ensures that SideEffects and DestructiveUpdate 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]) |
|
− | + | * 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 === |
=== Get the Source === |
||
Line 25: | Line 25: | ||
=== 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]. |
|
− | + | * You can also post in http://groups.google.com/group/disciple-cafe |
|
− | + | * Or send mail to Ben.Lippmeier@anu.edu.au |
Revision as of 11:30, 16 March 2008
Disciple is an explicitly lazy dialect of the functional programming language Haskell.
Disciple vs Haskell
- Strict EvaluationOrder is the default, laziness is introduced explicitly.
- All data objects support DestructiveUpdate, without the need for Ref types.
- Type directed FieldProjections complement type classing.
- Supports a try-catch ExceptionMechanism.
- The TypeSystem ensures that SideEffects and DestructiveUpdate play nicely with laziness.
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
* If you've tripped over a bug then please add it to the Issues List. * You can also post in http://groups.google.com/group/disciple-cafe * Or send mail to Ben.Lippmeier@anu.edu.au