Pliant

From Wikipedia, the free encyclopedia

The Pliant programming language is based on a dynamic compiler, which makes it act like it is interpreted. The default syntax is almost trivial, and based on indentation, so it is an off-side rule language. It is reflective: Pliant programs can modify the parser, compiler, code generator, and code optimizer.

FullPliant is an operating system based on, and written in, Pliant, by Pliant's author. The language and OS form an elegant integrated and highly flexible whole.

Pliant's core advantage is its ability to allow several levels of programming, from low-level instruction lists, to high-level expression manipulation, in one unified environment, and syntax as needed. Thus, it stresses the "compiling rules" definitions using "meta" functions (functions run at compile time to compile an expression) and "active types" (types having their own compiling scheme).

Contents

[edit] Motives

Hubert Tonneau initiated the Pliant project in 1984. His long work as a programmer on many development projects led him to perceive certain deficiencies, limits, in extant programming frameworks:

  • Lack of coherence between applications, libraries, etc., needing large amounts of glue code between related parts of programs.
  • Implicit acceptance of the impossible conciliation of high level constructs allowing improved expressiveness and conciseness in certain contexts, with low level adaptability allowing efficiency and optimized handling of exceptional cases.

[edit] Results

From these considerations, Tonneau thought it necessary to introduce a new efficient multilevel language having a pliant, flexible syntax and structure, which could be adapted to particular program contexts. The Pliant language is thus oriented toward efficiency, defined as computing resources, and programming adaptability. Key aspects of the language are: modularity, dynamic compiling, and full reflectivity allowing redefining the rules for syntax, compiling, and code optimizing.

New application services were then integrated at language level (examples: scheduling primitives, database management), thus bridging usual gaps between applications. From this viewpoint, a program is seen as a set of libraries, or even as a language extension, possibly introducing its own syntax changes.

[edit] FullPliant

Such applications can also be grouped into a coherent execution context, leading to an actual operating system, which is called FullPliant. This framework can be executed in two different ways: as a program executing various servers (on Linux or Windows platforms), or as an operating system running alone atop a Linux kernel.

Available servers include DNS, FTP, POP3, SMTP, LPD, remote execution, secured channel, and HTTP. The HTTP multisite web server provides the standard application interface. A powerful server-side dynamic page mechanism was introduced, on which rely existing applications (Forum, Photography correction and high fidelity printing, Webmail, etc.) and further HTTP-related servers (like WebDAV). The limits of the HTML/JavaScript system should soon lead to introducing an enhanced extended Pliant browser valuable as a state of the art user interface for possibly distributed applications.

FullPliant has been used in an industrial context since 2000. The transparent integration in the dynamic page extension of signature and right verification mechanisms clearly demonstrates that security can be achieved without unneeded additional programming complexity.

[edit] External links