|SPL - The SPL Programming Language||
Warning: SPL is unmaintained. I do not recommend it for new projects.
SPL is a powerful scripting language. It is very feature-rich (hashes, regular expressions, objects, exceptions, built-in template language, etc. pp.) and has a c-style syntax. The Name "SPL" is a left-recursive acronym and expands to "SPL Programming Language". The name was meant to be pronounced as an acronym, but I've already heard people pronouncing it "spell", which is also fine with me.
The SPL VM is a pure bytecode interpeter. Support for JIT compilation or generating machine code for the host CPU is not planed and doesn't make much sense for various technical reasons. The entire SPL toolchain (compiler, assembler, virtual machine, etc) is pretty small (about 100k on x86 architectures). The additional memory usage by the applications is rather small too. One of the more advanced VM features is the capability to dump the entire VM state to a file and resume later. It is even possible to resume on another machine with a different architecture.
SPL has support for loadable modules. The spl package contains already modules for stuff such as accessing SQL databases (SQLite, Postgres, MySQL), XML (incl. XPATH and XSLT), Terminal and File IO, Web Application development (the CGI, WSF and W2T (Web 2.0 Toolkit) modules), SDL, Qt and much more.
SPL currently supports Linux,BSD Systems, other POSIX environments, MacOS-X (Darwin), SGI IRIX, Cygwin and native Win32 (using MinGW).
The SPL source releases can be downloaded directly from this webpage. The current development sources can be found in our Subversion Repository. More information about Subversion can be found on the Subversion Homepage.
WebSPL and WSF
The interesting thing about WebSPL is that, other than usual CGI scripts, a WebSPL script is not executed once for each HTTP request. Instead, there is one SPL process for each session and such a WebSPL script can pause its execution at any time, wait for the user to do something and continue execution as soon as the user did something.
In addition to that there is a module package called "WSF" (WebSPL Forms) which add an additional abstraction layer between the application login and the representation as web page. With this SPL modules, web application development becomes as easy as normal application development with well-designed widget sets.
WebSPL, WSF and W2T are included in the SPL source distribution.
One of the applications using SPL as scripting backend is the QCake 3D Game Designer. User supplied SPL scripts are used to control the behavior of the worlds created with QCake. QCake did use another scripting language before, but the QCake developer decided to switch to SPL soon after the first SPL snapshot releases became available in late 2004.
SPL is a plain C library with just a few dependencies. So it is possible to use SPL in your programs without adding much of a overhead. It also has a very simple and clean API - fast to learn and efficient to use.
It is even possible to embed a WebSPL webserver in your applications. This makes it very easy to write server applications with a Web GUI (e.g. as administrational interface) using the WSF module.
We need your help
SPL is under heavy development. You can help! The most important issues are: