The Pure Programming Language

Pure is a functional programming language based on term rewriting. Its core is actually purely algebraic and purely functional, but the name can also be taken as a recursive acronym for the "Pure Universal Rewriting Engine." Pure has a modern syntax featuring curried function applications, lexical closures and equational definitions with pattern matching, and thus is somewhat similar to languages of the Haskell and ML variety. But Pure is also a very dynamic language, and is more like Lisp in this respect. The interpreter has an LLVM backend to do JIT compilation, hence programs run blazingly fast and interfacing to C modules is easy.

As a language which uses general term rewriting as its underlying computational model (instead of the lambda calculus, which most other functional programming languages are based on), Pure also offers the symbolic evaluation capabilities which you'd expect from such a language. Pure is closely related to the author's Q language and is slated to eventually become its successor, since it offers many new and powerful features and programs run much faster than their Q equivalents. (OTOH, Q still offers many more library modules right now. Most of these will eventually be ported to Pure, but this will take some time.)

Pure is free software distributed under the GNU General Public License V3. The interpreter is known to compile and run without hitches on Linux, OSX and Windows, porting to other POSIX platforms should be a piece of cake.

Pure on the Web

Documentation and Examples

The Grab Bag


Albert Gräf <Dr.Graef at t-online.de>
Dept. of Computer Music
Johannes Gutenberg University of Mainz

[SourceForge] © 2008 by Albert Gräf