LISP‎ > ‎

Tulisp example

Tulisp is an application that was developed in 2010-2011, to convert tlp files (representing graphs in TLP = TuLiP format defined by researchers) into LISP data structures (representing graphs), and vice versa. Tulisp application takes advantage of the fact that the contents of a tlp file looks like a big (actually huge) LISP form, (tlp ...), by defining tlp as a LISP macro, so that you just need to load the tlp file in order to get a LISP representation of the graph (using appropriate class instances).

For the other way round, exporting a LISP graph into a tlp file, Tulisp simply associates a print-object method to some graph class, defined in such a way that the printed representation of the LISP graph is the desired contents of the tlp file.

An Illustration of LISP Object Oriented Programming and Macro Language
Tulisp is thus a good illustration of  both object oriented programming in LISP (using a tiny subset of CLOS), and LISP macro language. It is mostly “pure LISP” except for the use of input/output functions.

Tulisp comprises the defcl module, which mainly introduces a simplified version of defclass CLOS macro, which forbids side effects, in agreement with LISP functional programming.

Although you are not supposed to use methods in your Flow Game project, you may want to look at some of Tulisp modules, for an example of LISP programming, for example graphs.lisp, cgraphs.lisp, tulisp.lisp: do not pay too much attention to method programming (using defmethod or defgeneric macros). The Tulisp directory below (Mac version) is also available on my ENSEIRB-MATMECA account (Unix version), see



Tulip/LISP interface builtin classes


Tulip/LISP interface builtin classes - instances

Using Tulisp Compiled Library
Tulisp may be used as a compiled library. At ENSEIRB-MATMECA, this is explained in router.lisp example, see

which loads Tulisp directly from its installation directory.

For more information, check

<to be completed>