About SPL

Characteristics

SPL is an educational tool, specifically targeted at novice programmers. It is not intended to be a full-featured programming language, and it is still a work in progress. (See Future Work below.)

The main objective behind SPL is to focus on algorithms. The idea is to enable a beginning programmer to implement an algorithm quickly and easily, without the learning overhead and syntactical distractions present in most languages. That is why SPL programs look a lot like pseudocode.

Simplicity

SPL consists of only five basic commands - input, output, set, if, while. New users can learn the language very easily and start writing programs quickly.

English-like Syntax

Many programming languages employ idioms that beginning programmers get wrong every time. A few examples:

SPL avoids such constructions.

Dynamic Typing

In SPL, variables do not need to be declared, and they can contain different types at different times.

Similarities with Other Languages

I was not familiar with Lua when I designed SPL, but SPL is turning out to be very similar to it (or rather, to a subset). I might eventually decide to use Lua instead in my teaching, but that will depend on what SPL ends up being.

SPL also has many similarities to Python, Turing, Visual Basic, and to any other language that has most of the features I was looking for.

The three languages I know best are APL, C, and Java. I love all of them, and I'm sure I've been influenced by them in my design, but they are too complicated for teaching, in my opinion.

Future Work

The version of SPL presented here is incomplete, but it is what I want for students writing their very first programs.

The next version will contain, at least, functions, file I/O, and some sort of data structure. I'm currently giving a lot of thought to what I want those to be.


About the Interpreter

The SPL interpreter is written entirely in Java. It requires a Java Virtual Machine, version 6 or later.

If you would like more information on the technical details of the application, feel free to contact me at:

swmonk AT gmail DOT com