The Pure Programming Language
Pure is a modern-style functional programming language based on term rewriting. It offers equational definitions with pattern matching, full symbolic rewriting capabilities, dynamic typing, eager and lazy evaluation, lexical closures, built-in list and matrix support and an easy-to-use C interface. The interpreter uses LLVM as a backend to JIT-compile Pure programs to fast native code.
Pure is the successor of the author's Q language. It offers many new and powerful features and programs run much faster than their Q equivalents. (OTOH, Q still offers some additional library modules right now. Most of these will eventually be ported to Pure, but this will take some time.)
Pure is free software. As of Pure 0.37, the runtime and the standard library are now distributed under the GNU Lesser General Public License V3 to allow for commercial applications; please see the README file for details. 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 WebThe downloads. You can find the source releases there, as well as binary msi packages for MS Windows. Old releases can still be found at Pure's SourceForge page. The svn repository. (The current development sources are in trunk/pure.) The pure-lang mailing list. Join us there to discuss Pure and ask whatever questions you have. The wiki. Not much there yet, but you can help with that. ;-) The wikipedia entry. This is little more than a stub right now, so you can help by expanding that one, too. Packages and PortsThe MacPorts collection includes Ryan Schmidt's OSX port of Pure. The Packman project offers Toni Graffy's rpm packages for SUSE Linux. Fedora packages by Michel Salim are available in the usual repositories, see here. The Gentoo ebuild by Álvaro Castro Castilla is available here. 3rd Party ProjectsMichael Maul provides additional libraries for Pure as well as a project template for Pure module developers at his pure-lang-extras project. Kay-Uwe Kirstein's OpenCV module for Pure is available at his pure-vision project. Documentation and ExamplesGetting started. A quick guide to installing and using the Pure interpreter. The FAQ. Frequently asked questions with answers. The Pure Manual in html and pdf formats. The Pure Library Manual in html and pdf formats. A preliminary version of The Pure Programming Language (TPPL) is available. This is work in progress, but should already be useful as an introduction to Pure. An abridged version of TPPL is also available, the Pure Quick Reference (PQR). For the impatient. An ebook edition of the PQR is also available. The Pure Syntax is provided as a supplement for TPPL and PQR. For those who prefer syntax diagrams over EBNF grammars. The README, INSTALL and NEWS files. Have a look at some programming examples to get an idea how Pure programs look like. More examples. Addons. An overview of addon modules and libraries for Pure. The Grab Bag
Eddie Rucker's "pure drop of water" images, freely available for use e.g. as desktop icons or website images (thanks, Eddie!). Adam Sanderson has created a TextMate bundle for Pure, which provides syntax highlighting, some useful completions, and documentation look up. If you're still using LLVM 2.3, you'll need Cyrille Berger's patch to add PIC support on x86-64 systems. (This isn't required for LLVM 2.4 and later any more.) If you want to build Pure on Windows, you might wish to have a look at Jiri Spitz' instructions for compiling LLVM and Pure with mingw. For your convenience, we've also put together a little package with required mingw libraries, dlls and headers. (Please note that there's also an msi package available for Windows users, so you only need this stuff if you want/need to compile Pure on Windows yourself.) AuthorAlbert Gräf
Dept. of Computer Music
Johannes Gutenberg University of Mainz (Germany)