Features include but are not limited to:
* Completely stateful. It is at any point possible to interrupt a running
SPL script, dump its entire state to disk and resume later on.
* Feature-Rich. SPL has native support for hashes and arrays, regular
expressions, object oriented programming, etc.
* Dynamic. SPL is a full dynamic language - with all the advantages and
disadvantages.
* C-Style Syntax. SPL has a c-style syntax (as well as many other languages
such as Java, JavaScript, PHP, S-Lang, etc). So it is easier to get
started.
* Advanced String Lexing. SPL allows the programmer to simply embed
variables and complex expressions in string and template files. E.g.
this is very important for rapid development of web applications.
* Well-Structured Backend. The SPL runtime is not just one big blackbox.
Instead there is a clear and visible seperation of compiler, assembler,
optimizer, virtual machine, etc. This makes it possible to easily adapt
the library for your special needs when embedding it in your applications.