Refal Plus programming language
Refal Plus is a modern dialect of Refal
Refal (REcursive Functions Algorithmic Language) was originally developed in the middle of
1960s by V.F.Turchin
as a tool for
describing the semantics of other algorithmic languages.
Later, when reasonably efficient Refal implementations had been created, Refal was used as a
symbol manipulation language in such fields as computer algebra, compiler and interpreter
writing, artificial intelligence, etc.
The principal data type in Refal are arbitrary trees, referred to as ground expressions. In
programs and text files ground expressions are represented by linear sequences of symbols and
parentheses, with parentheses being properly paired. Symbols represent such elementary data
objects as characters, words, numbers and references to objects.
The principal means of analyzing and accessing ground expressions is pattern matching. Refal
patterns may contain symbols, parentheses, and variables. If matching a ground expression
against a pattern succeeds, the pattern's variables are bound to the corresponding components
of the ground expression, which can be used later for building new ground expressions.
Refal Plus has been developed taking into account the experience gained from the design,
implementation and use of such languages as Basic Refal, Refal-2, Refal-4, Refal-5 and RL.
As compared to the other Refal dialects, Refal Plus provides the following features:
From "The Refal Plus programming language" book by R. Gurin and S. Romanenko.
- Advanced modules support
- Static declarations of dynamic objects
- Significantly improved function declarations
- Failure and error trapping
- Input/output of ground expressions
- Operations on boxes, vectors, and tables
- "Vector" representation of ground expressions
The book can be downloaded (428 Kb) as a DjVu document.