During a programming course in C++11 which I held in 2014, I decided to implement an interpreter, as sample code, and my choice fell on BASIC, fifty years after John G. Kemeny and Thomas E. Kurtz designed the original BASIC language.
Despite Dijkstra's famous judgment, "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration", BASIC was one of the few languages simple enough for a 8 year old child to understand, so its simplicity made it easy for beginners to learn programming.
I was 8 years old when I started programming in BASIC and I'm not sure that I was able to understand so well advanced programming languages in those days.
What does the prefix “nu” mean?
The prefix "nu" does not mean "new", but it comes from a namespace that I often use in the source code, with different meaning, but it sounded good enough to be used.
nuBASIC lacks many features I would like to add. Also I would like to improve existing ones, but maintaining the current level of simplicity of the language and portability of the interpreter, because I want to keep nuBASIC as small and intuitive as possible.
I cannot say when I'll have time to improve it, this for me is an almost ludic activity, and I am not getting paid for it. However, I will try to do as I have done to date.
Moreover, the interpreter provides you a traditional BASIC command line interface where you can enter programs directly and execute them, although you can also use an IDE (right now available for Windows platform only) or an external text editor to write your program before passing it to the interpreter.
The console window (or the X-terminal in Linux) is also used to draw graphics.
This is an unusual choice, but again, this approach allows of writing simple application that needs to use graphics, although it has several drawbacks, including not optimal control of window repainting. I am planning to extend nuBASIC in order to support GUI paradigm, introducing event driven programming, but keeping also the simple support for console inline graphics.
Is nuBASIC compatible with other BASIC dialects?
nuBASIC is partially compatible with GW-BASIC, QBASIC and maybe others.
It also allows you to write both classic BASIC programs, which use line numbers and GoTo or GoSub control structures, and procedure oriented programs, based on structured and procedural programming paradigm.
The following two implementations of Rosetta Code example (the Rosetta stone of Fractal geometry is the Mandelbrot set) run correctly on nuBASIC interpreter:
nuBASIC is free, open source and distributed under GPLv2 License.
The standard documentation for the current stable version of nuBASIC is available at nuBASIC Reference session of this web site.
PDF and ODT Guides are also available at https://sourceforge.net/projects/nubasic/files/documentation/
It is a version of the standard of the C++ programming language approved by ISO on 12 August 2011.
C++11 includes several additions to the core language and extends the C++ Standard Library.
If you are interested in more information on C++11, please read this
nuBASIC source has been written in C++11 and compiles under several operating systems including Windows and Linux.
nuBASIC can be used by any user without any additional programs.
It has the components needed to create programs, including:
Send an email to firstname.lastname@example.org and I will answer you as soon as possible.