Login
Newsletter
Werbung

Fr, 16. Juni 2000, 00:00

Programmvorstellung: Pliant

Pliant ist eine dynamisch compilierte Programmiersprache. Das bedeutet, dass der Code zwar compiliert wird, aber nur "bei Bedarf", wodurch ein Pliant-Programm natürlich auch Code dynamisch generieren und ausführen kann (wie eval() in Perl).

Der Projektleiter von Pliant war der Ansicht, dass die bisherigen Programmiersprachen sich entweder darauf konzentrieren, für Menschen angenehm zu sein (wie beispielsweise LISP), oder (wie C) zu maschinenorientiert sind, und daher für Menschen schwierig sind. Pliant versucht daher, die ideale Brücke zwischen Programmierer und Computer zu sein und dabei Code zu erzeugen, der C-Code an Geschwindigkeit möglicherweise sogar übertrifft.

Ein besonderes Feature von Pliant ist seine anpaßbare Syntax. Während man C nicht durch das Einbinden einer Bibliothek objektorientierte Funktionalität geben kann, wäre etwas derartiges bei Pliant möglich. Es ist sogar ein Pliant-Modul denkbar, das C-Code direkt in Pliant nutzbar macht. Dadurch kann ein großer Teil der Möglichkeiten der Sprache Pliant in der "Standardbibliothek" implementiert werden, wodurch der Compiler selbst eine Größe von ca. 100 KB erreicht.

Der Pliant-Webserver läuft mit einem in Pliant geschriebenen HTTP-Server. Derzeit wird an einer Datenbank-Engine gearbeitet, die auch schon benutzbar ist. Um ein wenig Aufmerksamkeit zu erregen, wird auch ein Pliant-orientiertes Linux-System zusammengestellt, das ohne eine libc auskommt (der Pliant-Compiler ist zwar in C geschrieben, verwendet die Standardbibliothek aber nicht).

Pliant wird standardmäßig nach /pliant installiert, was wohl vielen Leuten nicht sonderlich gefallen dürfte. Man kann natürlich ein anderes Zielverzeichnis wählen.

Die Standardsyntax von Pliant ist nichts gänzlich Neues, sondern eher eine Kombination aus vielem bereits Existierenden. Damit Sie einen Eindruck davon bekommen, hier ein kleines Stückchen Code:

function fact x -> y
 arg Int x y
 if x = 0
 y := 1
 else
 y := x * (fact x-1)
# Und nun testen wir die Funktion:
for (gvar Int i) 1 9
 console i " -- " (fact i) eol
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung