changelog shortlog tags changeset files revisions annotate raw

bin/index

changeset 193: f29745fd2d88
parent:f19f037eeade
child:ae26829011f6
author: Gregor (codu.org)
date: Fri Aug 20 17:51:54 2010 +0000 (21 months ago)
permissions: -rwxr-xr-x
description: medit/bin/index chebang=#!/usr/bin/env .wiki cont== Plof

Plof is an extremely [[design|flexible]] programming language, and an experiment in pushing this flexibility to its logical extreme. Plof's grammar is defined at runtime (predominantly by code written in Plof) and can be extended very simply by Plof code. It has a prototype-based type system with a simple and intuitive syntax, designed to make the transition easy for programmers used to class-based type systems. It also supports many functional features, and is in fact a lazily-evaluated language with currying.

In spite of this extreme flexibility, Plof is designed to be very simple to implement. The core bytecode language is less than 100 opcodes, and the parsing environment is expected to be nothing more than a simple packrat parser (memoized recursive-descent parser).

The code for the C implementation of Plof are available through Mercurial at https://codu.org/projects/plof/hg/ , and is the primary complete implementation.

The Plof spec is in Mercurial at https://codu.org/projects/plof/spechg/ , or precompiled at http://codu.org/plof/plof3.pdf . The spec is mostly complete for the lower layers, but not for the user language. There is also a series of small Plof tutorials describing the user language and some modification of grammar [[tutorial|here]].

There is an IRC channel for Plof, #plof on FreeNode. All pushes to the Plof repository are logged there, as are the results of Plof's test suite. The test suite results are available in more detail at http://codu.org/plof/testresults/ (only the latest run).

Feel free to test out Plof by running Plof code directly through this wiki:

{{{
#!/bin/bash
echo -n '<form action="plof" method="post"><fieldset>
<textarea name="code" rows="25" cols="65">'

echo -n 'Stdout.write "Hello, world!\n"'

echo '</textarea><br/>
<input type="submit" value="Run">
</fieldset>
</form>'
}}}

To the curious: This Plof wiki runs [[http://hackiki.org/|Hackiki]], the world's most hackable wiki.

<a href="#" onclick="autoSchemePrime(true);">Re-scheme this page</a>
1#!/usr/bin/env .wiki
2= Plof
3
4Plof is an extremely [[design|flexible]] programming language, and an experiment in pushing this flexibility to its logical extreme. Plof's grammar is defined at runtime (predominantly by code written in Plof) and can be extended very simply by Plof code. It has a prototype-based type system with a simple and intuitive syntax, designed to make the transition easy for programmers used to class-based type systems. It also supports many functional features, and is in fact a lazily-evaluated language with currying.
5
6In spite of this extreme flexibility, Plof is designed to be very simple to implement. The core bytecode language is less than 100 opcodes, and the parsing environment is expected to be nothing more than a simple packrat parser (memoized recursive-descent parser).
7
8The code for the C implementation of Plof are available through Mercurial at https://codu.org/projects/plof/hg/ , and is the primary complete implementation.
9
10The Plof spec is in Mercurial at https://codu.org/projects/plof/spechg/ , or precompiled at http://codu.org/plof/plof3.pdf . The spec is mostly complete for the lower layers, but not for the user language. There is also a series of small Plof tutorials describing the user language and some modification of grammar [[tutorial|here]].
11
12There is an IRC channel for Plof, #plof on FreeNode. All pushes to the Plof repository are logged there, as are the results of Plof's test suite. The test suite results are available in more detail at http://codu.org/plof/testresults/ (only the latest run).
13
14Feel free to test out Plof by running Plof code directly through this wiki:
15
16{{{
17#!/bin/bash
18echo -n '<form action="plof" method="post"><fieldset>
19<textarea name="code" rows="25" cols="65">'
20
21echo -n 'Stdout.write "Hello, world!\n"'
22
23echo '</textarea><br/>
24<input type="submit" value="Run">
25</fieldset>
26</form>'
27}}}
28
29To the curious: This Plof wiki runs [[http://hackiki.org/|Hackiki]], the world's most hackable wiki.
30
31<a href="#" onclick="autoSchemePrime(true);">Re-scheme this page</a>