related topics
{math, number, function}
{system, computer, user}
{language, word, form}
{work, book, publish}

In computer software programming languages history, Pliant is the first attempt to connect C and LISP branches.

It was written by Hubert Tonneau, first published in 1999, and is released under GNU General Public License version 2.


Bring raw efficiency and high expressivity at once.

Selected solution

Focus on program encoding as opposed to language features.


Pliant is based on two main main concepts:

First, the program is successively encoded in four precisely defined models:

  • Source code
  • Expressions tree
  • Instructions list
  • Executable

Then, the three transitions between these four models can freely be changed at application level because the compiler is dynamic and reflexive.

As a result, Pliant meta programming is no more defined as syntactical rewriting as in LISP, but as a transition from the free semantic expressions tree model to the fixed semantic and efficient instructions list model. It has two consequences:

  • a Pliant meta function is not only extending the semantic of the language, but is also responsible for providing efficient execution
  • it avoids uncontrolled side effects between various extensions


A full computing system, named FullPliant has since been provided that is:

  • A proof of concept that the language can be efficiently used in many areas (database engine, graphical stack, web framework, etc)
  • A smaller, so easier to adapt, overall computing system

External links

Full article ▸

related documents
Occam (programming language)
Java applet
Client-side scripting
Oberon programming language
Erlang unit
Java API for XML Processing
Rich Text Format
Mercury (programming language)
Data structure
Dynamic HTML
Blowfish (cipher)
Initialization vector
Serial number
Wikipedia:Browser notes
Hello world program
Accumulator (computing)
World file
Wikipedia:Database queries
Code coverage
C shell
Abstract machine
Interchange File Format
Wikipedia:Federal Standard 1037C terms/computer programming terms