UBASIC and uBASIC are two quite different languages that are being confused in these alerts. They have in common that they have evolved from the original Dartmouth BASIC, but they evolved in different directions. uBASIC is a form of "micro-BASIC" - the lower-case "u" is as close as a keyboard can get to the Greek letter mu - which was the name of several BASICs that were stripped down to fit into the early personal computers. UBASIC is an extension of the original BASIC, developed by Professor Y. Kida of Japan and associates, for doing calculations in Number Theory (a major branch of mathematics). It is freely available to everyone; I think of it as a boon to the mathematical community. It is very helpful for research in Numerical analysis as well as in Number Theory. It is nearly as easy to use as the oeriginal BASIC and has valuable extended capabilities, such as arithmetic with numbers of about 2,500 digits, complex numbers, subprograms with local variables, functionals, etc. I think it would be a good thing to seoarate announcements about uBASIC from annoucements about UBASIC.
- As stated in the beginning of the UBASIC article, the BASIC interpreter language used for CHDK scripting is based on Adam Dunkel's open source "uBASIC - A really tiny BASIC interpreter":
Quote from http://www.sics.se/~adam/ubasic/ :
Ever since starting writing small BASIC programs on my first computer (an ABC80) I've always wanted to write a really small BASIC interpreter. So I sat down for an hour or two and did it.
The (non-interactive) uBASIC interpreter supports only the most basic BASIC functionality: if/then/else, for/next, let, goto, gosub, print, and mathematical expressions. There is only support for integer variables and the variables can only have single character names. I have added an API that allows for the program that uses the uBASIC interpreter to get and set BASIC variables, so it might be possible to actually use the uBASIC code for something useful (e.g. a small scripting language for an application that has to be really small).
My intention with this program is to be able to use it for adding a simple scripting language to severely memory-constrained applications or systems (e.g. a scripting language to the web server applications in uIP or Contiki). While I secretly hope that the uBASIC code may be useful to someone, it currently is a really quick hack made primarily for personal enjoyment. However, if you are interested in looking at how a really small BASIC interpreter can be written, go ahead and take a look at the code!