Rpal
Encyclopedia
RPAL is a functional
Functional programming
In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state...

 programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 related to the ML programming language
ML programming language
ML is a general-purpose functional programming language developed by Robin Milner and others in the early 1970s at the University of Edinburgh, whose syntax is inspired by ISWIM...

. It is a subset of PAL, a language invented by Arthur Evans, Jr. and John Wozencraft
John Wozencraft
John McReynolds "Jack" Wozencraft was an electrical engineer and information theorist, professor emeritus at the Massachusetts Institute of Technology...

 in the early 1970s at MIT
Massachusetts Institute of Technology
The Massachusetts Institute of Technology is a private research university located in Cambridge, Massachusetts. MIT has five schools and one college, containing a total of 32 academic departments, with a strong emphasis on scientific and technological education and research.Founded in 1861 in...

 for teaching programming language construction.

This language is used almost exclusively by Dr. Manuel Bermúdez of the Computer Science department at the University of Florida
University of Florida
The University of Florida is an American public land-grant, sea-grant, and space-grant research university located on a campus in Gainesville, Florida. The university traces its historical origins to 1853, and has operated continuously on its present Gainesville campus since September 1906...

 as a means of teaching the construction of programming languages and encouraging students to shift paradigm
Programming paradigm
A programming paradigm is a fundamental style of computer programming. Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation A programming paradigm is a fundamental style of computer programming. (Compare with a...

s from the imperative model
Imperative programming
In computer science, imperative programming is a programming paradigm that describes computation in terms of statements that change a program state...

 to the functional model
Functional programming
In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state...

. Programs in this language can only be made up of a single expression
Expression (programming)
An expression in a programming language is a combination of explicit values, constants, variables, operators, and functions that are interpreted according to the particular rules of precedence and of association for a particular programming language, which computes and then produces another value...

, because the language does not offer a sequencing operator. The other notable operator that the language is missing is an assignment operator
Assignment (computer science)
In computer programming, an assignment statement sets or re-sets the value stored in the storage location denoted by a variable name. In most imperative computer programming languages, assignment statements are one of the basic statements...

. The only way to change a variable is to create a new binding for it. This binding is permanent, and cannot be changed. The same name, however, may be rebound in a nested scope
Scope (programming)
In computer programming, scope is an enclosing context where values and expressions are associated. Various programming languages have various types of scopes. The type of scope determines what kind of entities it can contain and how it affects them—or semantics...

.

PAL


Language specification

The following links are the specification of the language as presented by Dr. Bermúdez:
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK