BASICK Interpreter family

Thu May 8 13:11:57 2014 UTC

This project contains simple interpreters for the BASIC-like language BASICK. These interpreters should all behave the same. They are themselves written using interpreted languages. Specifically, versions that current are part of the project are written in Python3.3.x, PHP5.5.x, ruby2.x, and lua5.2.x.

This dialect is quite simple, and the control flow support is minimal. You get IF, GOTO, and GOSUB/ RETURN which are enough to implement higher-level features like loops if you need them. Only integers are supported. There is no string support, no graphics support, and programs cannot use files. However, the interpreters do support LOAD and SAVE so you can keep program source code on your disk.

To get an idea of what the actualy syntax of BASICK is, you can look at the GRAMMAR.TXT file. Some interesting example programs are crashme.bas and fibo4.bas but more are included in the download.

You can download version 1.0 and try the BASICK interpreters yourself.

Current Status

Version 1.0 has been released!
After completing the ECMA-55 MinimalBASIC Compiler, I decided to go back and try again to get the lua version of BASICK done. BASICK is a much simpler dialect than MinimalBASIC and the Python, PHP, and ruby versions were fun to write. The lua version was so hard to write I gave up last year and decided that even learning x86-64 assembly would be more fun. However, with that done I had no more excuses. So after several long days of tedious debugging, I finally managed to beat the lua version into submission. Wow, I must say I feel the lua interpreter is overtly user-hostile. Lua doesn't include a debugger, and tends to return nil at the slightest provocation. It took an order of magnitude longer to get the lua version working than any of the other three, and working on it was not fun. However, having finished it I can say it is possible to write a lua version if you are really, really determined to do it.