SIMPL - A Serial Interpreted, Minimal Programming Language


Recommended Posts

Hi All,


A couple of years ago, I stumbled across a minimalist, interpreted programming language, created by Ward Cunningham - wiki pioneer.


He called it Txtzyme - a concatenation of text and enzyme, and suggested that it could boost creativity.


What it is, is a tiny interpreted language, where a single ASCII character is interpreted as an instruction, and causes a block of associated C code to be executed.


It is so compact, it can be condensed into about 90 lines of Arduino C code.


However, what it provides, is a powerful means to command the hardware of a microcontroller, just using a few characters sent over a serial port.  


Essentially it is a low level language for exercising new hardware.


I took Ward's simple interpreter and extended it, to create a programming tool, that I call SIMPL.  It borrows heavily from some of the minimalist ideas, first used 40 years ago by Chuck Moore's FORTH and the various TinyBasics used in the mid-1970s for some of the early 8 bit systems.


To cut to the chase, I now have SIMPL running on ZPUino, on a Papilio Duo with Logic Start Shield.  


I can turn LEDs on and off with a few snippets of interpreted code, run LED chasers or synthesize musical tones.


I'm currently trying to compile about 2 years of experimentation into a concise document.  In the meantime - if you want to play with SIMPL - the raw sketch is up her on this github gist.



I'd appreciate comments and feedback. Have fun



Ken B






Link to comment
Share on other sites



Thanks for taking a look.


This tiny interpreted language is a great way of breathing the first life signs into new hardware.


I was amazed how quickly I hacked it to run on the ZPUino.


In this simple form, It can toggle an output pin at 161kHz - just using the digitalWrite function.


Does the ZPUino  recognise standard  AVR register naming for direct I/O port manipulation - that way it would get an order of magnitude higher speed over digitalWrite see








Link to comment
Share on other sites


This topic is now archived and is closed to further replies.