Miranda(ID:911/mir003)


from the latin for "admirable", also for the heroine of Shakespeare's Tempest

David A. Turner University of Kent, Canterbury early 1980's.

Lazy, purely functional. A commercial descendant of SASL and KRC, with ML's type system. Terse syntax using the offside rule for indentation. Type declarations are optional. Nested pattern-matching, list comprehensions, modules. Sections rather than lambda abstractions. User types are algebraic, may be constrained by laws. Implemented by SKI reduction. The KAOS operating system is written entirely in Miranda.

the aim of the Miranda system is to provide a modern functional language, embedded in an "industrial quality" environment. it is now being used at a growing number of sites for teaching functional programming and as a vehicle for the rapid prototyping of software.





Structures:
Related languages
KRC => Miranda   Evolution of
ML => Miranda   Strong, Influence
Miranda => Amanda   Subset
Miranda => Haskell   Based on
Miranda => Miracula   Subset
Miranda => Orwell   Influence

References:
  • Turner, D.A. "Miranda: A Non Strict Functional Language with Polymorphic Types" view details
          in Functional Programming Languages and Computer Architecture, LNCS 201, Springer 1985 view details
  • Turner, D "An overview of Miranda" pp158-166 view details External link: Online copy
          in SIGPLAN Notices 21(12) December 1986 view details
  • "Functional Programming with Miranda", Holyer, Pitman Press 0-273-03453-7. view details
          in SIGPLAN Notices 21(12) December 1986 view details
  • Simon Thompson "Programming Language Semantics using Miranda" Technical Report 9-95, University of Kent, Computing Laboratory, University of Kent, Canterbury, UK, May 1995. view details Abstract: This paper explains the use of the functional programming language Miranda as a vehicle for describing the semantics of imperative programming languages. In particular we give a Miranda denotational description of a substantial subset of a Pascal-like language, describing a number of variants of the semantics, including parameter passing by value-result, dynamic binding of values to names and a simple semantics of jumps.

    We also give an executable operational semantics of our basic language, as well as a compiler for this language into a simple stack machine, which is itself modelled in Miranda.
    ps bib:
    @techreport{59,
    author = {Simon Thompson},
    title = {{Programming Language Semantics using Miranda}},
    month = {May},
    year = {1995},
    pages = {},
    keywords = {},
    note = {},
    url = {http://www.cs.ukc.ac.uk/pubs/1995/59},
    address = {University of Kent, Canterbury, UK},
    hensa_abstractfilename = {pub/misc/ukc.reports/comp.sci/abstracts/9-95},
    hensa_ftpaddress = {unix.hensa.ac.uk},
    hensa_reportfilename = {pub/misc/ukc.reports/comp.sci/reports/9-95.ps.Z},
    institution = {University of Kent, Computing Laboratory},
    number = {9-95*},
    }
          in SIGPLAN Notices 21(12) December 1986 view details
    Resources
    • Research Software Ltd
      i
    • Translators from MIranda to Haskell

      "
    • Translators from Miranda to LML

      "