r3 - 04 Feb 2007 - 03:10:57 - Anton OrlovYou are here: TWiki >  Refaldevel Web > WebHomeEn > RefalPlusEn

Refal Plus programming language

Refal Plus 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 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:

  • 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

From "The Refal Plus programming language" book by R. Gurin and S. Romanenko.
The book can be downloaded (428 Kb) as a DjVu document.

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r4 < r3 < r2 < r1 | More topic actions...

This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback