Plof is an extremely 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.
The current version of Plof is Plof 3. Due to some fundamental problems of Plof 3 (which shouldn't affect the users' view of the language, just the implementation), it will soon be phased out in preference of Plof4 running on Fythe.
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 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:
To the curious: This Plof wiki runs Hackiki, the world's most hackable wiki.