TM
The Miranda Programming Language
For the Miranda home page see
miranda.org.uk.
Click below to go directly to a specific section:
History | Significant
Language Features | Areas of Application | Sample
Programs
Related Links | Printed
References | Acknowledgments
History
Miranda was developed in 1985-86 by David Turner, and is now currently
being marketed by Research Software Ltd. of England. Miranda was
the successor of the functional languages SASL and KRC. With Miranda,
the main goal was to produce a commercial version of a standard non-strict
purely functional language. To make Miranda commercially viable,
the development environment had to be made very flexible and easy-to-use.
Significant Language Features
-
Miranda, A Non-Strict Purely Functional Language
-
Non-Strict:
In Non-Strict functional languages, the arguments to a function are
not evaluated until they are actually required within the functions being
called. Therefore, any parameter can be passed to a function and
until it is needed in that function, this parameter is not evaluated.
This is also known as lazy evaluation, and the main advantage of using
this method is that it allows for passing infinite element data structures
to a function.
-
Purely Functional:
Pure functional languages perform all computation using function application.
"Side-effect" features such as destructive assignments and looping are
not even provided within the language, and therefore all programs have
to strictly adhere to the functional approach of programming.
-
Characteristics of Functional Languages
-
Develop a clean simple semantic model which uses the function as the basis
for computation.
-
The order of execution is irrelevant.
-
Compared to imperative languages, functional languages:
-
Allow a more concise representation (higher level of abstraction).
-
Decrease development time.
-
Basic Data Structures
-
Lists - defined as a set of homogeneously typed values. The
list data structure is an extremely powerful feature of Miranda.
It allows quick and simple list processing and also allows infinite lists.
-
Tuple - a non-homogenous sequence of values which can be utilized
to form enumerated data types or even form complex data structures such
as records.
-
Laws - produce "non-free" data types. Two examples of these
"non-free" data types are constrained data types and data types with memorized
information.
Areas of Application
The main uses of Miranda are:
rapid prototyping
teaching functional programming
as a specification language
research into functional programming
a general purpose programming tool
Sample Programs
Related Links
Printed References
-
Thompson, Simon. "Laws in Miranda." ACM Communications, Vol. 2,
Iss. 3, 1986
Acknowledgements
Dr. David Turner, the creator of Miranda, provided much of the information
used to create this page.
Miranda is a trademark of Research Software Limited of England.
Last modified: 3:29 PM on 12/16/1997
Created by: Stacey Miller & Tony Vitale
This page has been accessed