update 17 May 2020

Since October 2019 SharpBASIC is being redesigned from the ground up into a self-hosting compiler that directly emits native code for Linux and Windows using NASM and LD as backend. Current status and updates are posted on sharpbasic.com.


19 August 2019

The SharpBASIC interpreter/compiler is based on Thorsten Ball's Monkey language. But SharBASIC is quite different and should be thought of as sort of a BASIC/Pascal hybrid, but more powerful than BASIC and less verbose than Pascal.

The language is in its early stages. The interpreter works quite well and there are many working examples in the /ex folder.

The main characteristic of SharpBASIC is that all definition blocks are marked by the keywords OF..END, while all execution blocks are marked by the keywords DO..END. Look at the CONST, TYPES, IF, SELECT, FOR, WHILE and FUNCTION examples to see how block statements are defined.

SharpBASIC adopted Monkey arrays, lists and maps, but they're one-dimensional and further development is necessary.

Development was done on Linux using the GO language and the interpreter is the executable sb. Examples can simply be executed from the terminal, like:

./sb /ex/for.sbo

The extension .sbo means SharpBASIC object file. In a later development stage, project definition files could have the extension .sbp.

The .lang and .xml files are highlight definitions for gtksourceview on Linux. When in place, text editors like GEdit and Mousepad should recognize the language (you may need to select it manually in the editor).

The .lang file should be placed in ~/.local/share/gtksourceview-3.0/language-specs/

The .xml file should be placed in ~/.local/share/gtksourceview-3.0/styles/

- Frank Hoogerbeets
<frank@ditrianum.org>
