Language:
Free Online Dictionary|3Dict

yale haskell

Source : Free On-Line Dictionary of Computing

Yale Haskell
     
         A fully integrated {Haskell} programming
        environment.  It provides tightly coupled interactive editing,
        {incremental compilation} and dynamic execution of Haskell
        programs.  Two major modes of compilation, correspond to
        {Lisp}'s traditional "interpreted" and "compiled" modes.
        Compiled and interpreted modules may be freely mixed in any
        combination.
     
        Yale Haskell is run using either a command-line interface or
        as an {inferior process} running under the {Emacs} editor.
        Using the Emacs interface, simple two-keystroke commands
        evaluate expressions, run dialogues, compile {module}s, turn
        specific compiler diagnostics on and off and enable and
        disable various {optimiser}s.  Commands may be queued up
        arbitrarily, thus allowing, for example, a compilation to be
        running in the background as the editing of a source file
        continues in Emacs in the foreground.
     
        A "scratch pad" may be automatically created for any module.
        Such a pad is a logical extension of the module, in which
        additional function and value definitions may be added, but
        whose evaluation does not result in recompilation of the
        module.
     
        A tutorial on Haskell is also provided in the Emacs
        environment.  A {Macintosh} version of Yale Haskell includes
        its own integrated programming environment, complete with an
        Emacs-like editor and {pull-down menu}s.
     
        Yale Haskell is a complete implementation of the Haskell
        language, but also contains a number of extensions, including:
     
        (1) Instead of stream based I/O, a {monadic I/O} system is
        used.  Although similar to what will be part of the new
        {Haskell 1.3} report, the I/O system will change yet again
        when 1.3 becomes official.
     
        (2) Haskell programs can call both {Lisp} and {C} functions
        using a flexible foreign function interface.
     
        (3) Yale Haskell includes a {dynamic typing} system.  Dynamic
        typing has been used to implement {derived instance}s in a
        user extensible manner.
     
        (4) A number of small Haskell 1.3 changes have been added,
        including {polymorphic recursion} and the use of @_@ in an
        expression to denote {bottom}.  Although the 1.3 report is not
        yet complete, these changes will almost certainly be part of
        the new report.
     
        (5) A complete Haskell level {X Window System} interface,
        based on {CLX}.
     
        (6) A number of {annotation}s are available for controlling
        the optimiser, including those for specifying both function
        and data constructor {strict}ness properties, "{inlining}"
        functions, and specialising {over-loaded} functions.  Many
        standard {prelude} functions have been specialised for better
        performance using these annotations.
     
        (7) {Separate compilation} (including {mutually recursive}
        {module}s) is supported using a notion of a UNIT file, which
        is a kind of localised {makefile} that tells the compiler
        about compiler options and logical dependencies amongst
        program files.
     
        (8) Yale Haskell supports both standard and "{literate}"
        Haskell syntax.
     
        Performance of Yale Haskell's compiled code has been improved
        considerably over previous releases.  Although still not as
        good as the Glasgow ({GHC}) and Chalmers ({HBC}) compilers,
        the flexibility afforded by the features described earlier
        makes Yale Haskell a good choice for large systems
        development.  For some idea of performance, Hartel's latest
        "Nuc" benchmark runs at about the same speed under both Yale
        Haskell and hbc.  (Our experiments suggest, however, that Yale
        Haskell's compiled code is on average about 3 times slower
        than hbc.)
     
        Binaries are provided for {Sun}/{SPARC} and {Macintosh}, but
        it is possible to build the system on virtually any system
        that runs one of a number of {Common Lisp} implementations:
        {CMU Common Lisp}, {Lucid Common Lisp}, {Allegro Common Lisp}
        or {Harlequin LispWorks}.  {akcl}, {gcl} and {CLisp} do not
        have adaquate performance for our compiler.  The current
        version is 2.1.
     
        {Yale (ftp://nebula.cs.yale.edu/pub/haskell/yale)}.
        (128.36.13.1).  {UK
        (ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/yale/)}.  {Sweden
        (ftp://ftp.cs.chalmers.se/pub/haskell/yale/)}.  E-mail:
        ,
        .
     
        (1993-07-14)
Sort by alphabet : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z