Refal+
Programming Language

Refal+ is a modern dialect of Refal programming language.

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+ 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+ provides the following features: