Datasegment.com Online Dictionary
  Online Dictionary : Y : yale haskell

yale haskell


1 definition found

yale haskell - Free On-line Dictionary of Computing (26 May 2007) :

  Yale Haskell
  
     <language> 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 modules, turn
     specific compiler diagnostics on and off and enable and
     disable various optimisers.  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 menus.
  
     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 instances 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 annotations are available for controlling
     the optimiser, including those for specifying both function
     and data constructor strictness 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
     modules) 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:
     <haskell-request@cs.yale.edu>,
     <haskell-request@dcs.glasgow.ac.uk>.
  
     (1993-07-14)