Programming Languages Directory

Site Topics

C Programming Language
Assembling Computers
CIS
Computer Science Careers
Women and Computer Science
ADA Programming Language
ALGOL Programming Language
APL Programming Language
AWK Programming Language
Basic Programming Language
C++ Programming Language
COBOL Programming Language
Delphi Programming Language
Eiffel Programming Language
Euphoria Programming Language
Forth Programming Language
FORTRAN Programming Language
HTML Programming Language
ICON Programming Language
Java Programming Language
Javascript Programming Language
LISP Programming Language

 

The Miranda Programming Language

Free resources updated everyday:

XXXLINKSXX

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 Program

Source Code: (QuickSort)
sort [] = []
sort (a:x) = sort [ b | b <- x; b <= a ]
             ++ [a] ++
             sort [ b | b <- x; b > a ]

Due to the unavailability of a Miranda compiler, an executable program is not available.

This example implements QuickSort using Miranda.

 

 

 

 

 

 


 



 

Site Topics

LOGO Programming Language
Mathematica Programming Language
MATLAB Programming Language
Miranda Programming Language
Modula-2 Programming Language
Oberon Programming Language
Pascal Programming Language
PERL Programming Language
PL/I Programming Language
Prolog Programming Language
Python Programming Language
REXX Programming Language
SAS Programming Language
Scheme Programming Language
SED Programming Language
Simula Programming Language
Smalltalk Programming Language
SNOBOL Programming Language
Database Programming Language
Visual Basic Programming Language
Visual C++ Programming Language
XML Programming Language

 

 

 

 

C Programming Language | Assembling Computers | CIS | Computer Science Careers | Women and Computer Science | ADA Programming Language | ALGOL Programming Language | AWK Programming Language | Basic Programming Language | C++ Programming Language | COBOL Programming Language | Delphi Programming Language | Eiffel Programming Language | Euphoria Programming Language | Forth Programming Language | FORTRAN Programming Language | HTML Programming Language | ICON Programming Language | Java Programming Language | Javascript Programming Language | LISP Programming Language | LOGO Programming Language | Mathematica Programming Language | MATLAB Programming Language | Miranda Programming Language | Modula-2 Programming Language | Oberon Programming Language | Pascal Programming Language | PERL Programming Language | PL/I Programming Language | Prolog Programming Language | Python Programming Language | REXX Programming Language | SAS Programming Language | Scheme Programming Language | SED Programming Language | Simula Programming Language | Smalltalk Programming Language | SNOBOL Programming Language | Database Programming Language | Visual Basic Programming Language | Visual C++ Programming Language | XML Programming Language | Home | Site Map