Joy Programming Language

The language Joy is a purely functional programming language that was created by Manfred von Thun. Whereas all other functional programming languages are based on the application of functions to arguments, Joy is based on the composition of functions. All such functions take a stack as argument and produce a stack as value. Consequently much of Joy looks like ordinary postfix notation. However, in Joy a function can consume any number of parameters from the stack and leave any number of results on the stack. The concatenation of appropriate programs denotes the composition of the functions which the programs denote. One of the datatypes of Joy is that of quoted programs, of which lists are a special case.

Some functions expect quoted programs on top of the stack and execute them in many different ways, effectively by dequoting. So, where other functional languages use abstraction and application, Joy uses quotation and combinators -- functions which perform dequotation. As a result, there are no named formal parameters, no substitution of actual for formal parameters, and no environment of name-value pairs. Combinators in Joy behave much like functionals or higher order functions in other languages, they minimise the need for recursive and non-recursive definitions. Because there is no need for an environment, Joy has an exceptionally simple algebra, and its programs are easily manipulated by hand and by other programs. Many programs first construct another program which is then executed.

Joy Programming Language

The programming language Joy my research in the design and implementation of a computer language. Joy is a purely functional high level programming language which eliminates lambda abstraction and function application and replaces them by program quotation and function composition.

Download Joy Programming Language webpage content and source files [ZIP 4.9MB].

Symbolic Processing in Pascal

Symbolic Processing in Pascal contains an unpublished book which is based on several courses I have taught. Programs range from very easy to quite difficult, dealing with parsing, translating, interpreting and some theorem proving.

Download Symbolic Processing in Pascal webpage content and source files [ZIP 473KB].


Contains information found on Manfred von Thun's website that did not fit under the previous two sections, including: Deductive Logic - Extended propositional logic written in itself; and Computation - A queue machine for evaluating expressions.

Download Miscellanea webpage content and source files [ZIP 30KB].

Further Information

If there are any concerns or issues accessing the above information, please contact the Faculty of Humanities and Social Sciences Marketing Team.