Eotect Notes These

TITLE: Free BASIC Compilers and Interpreters

MARK: Eotect

DATE: 2022-11-26

SOURCE: https://www.thefreecountry.com/compilers/basic.shtml


Free BASIC Compilers and Interpreters (thefreecountry.com)

Free BASIC Compilers and Interpreters

Free Compilers/Interpreters for the BASIC Programming Language

You are here: thefreecountry.com (main page) > Free Compilers/Interpreters for Programming Languages > Free BASIC Compilers and Interpreters

Free BASIC Compilers and Interpreters

The term BASIC, an acronym for Beginner’s All-purpose Symbolic Instruction Code, actually describes a whole plethora of computer languages, not all of which are actually compatible with each other. On many home computers, the earliest implementations of the BASIC language was as a very simple line oriented interpreter. The simplicity of the original language made it easy for beginners to learn programming, giving rise to a whole generation of programmers who cut their teeth on this language (although it must be said that the language’s simplicity also led to a host of bad programming practices as programmers tried to work around the language’s limitations). Today, however, the language has grown very large and is split into a number of different dialects (many of which bear little resemblance to the original BASIC language) and includes support for many modern programming paradigms like structured programming (using functions or procedures) and object-oriented programming, etc.

Listed on this page are some free BASIC compilers, interpreters, Visual Basic clones (and Visual Basic itself), and development environments (IDEs) which you can use to develop programs using the BASIC programming language. If you are looking for documentation or tutorials on learning or using the BASIC language, you may wish to search the selection of BASIC programming books at Amazon.com.

Free BASIC Compilers and Interpreters

DarkBASIC Pro (Windows)

DarkBASIC Professional is an open source (though formerly commercial) BASIC implementation that supports a structured dialect of the BASIC language. It was designed as a game creation language, and supports the making of 2D and 3D games using DirectX. It comes with an IDE and a debugger. It generates standalone executables, which comprise your program, compiled into bytecode, and an interpreter. DarkBASIC is licensed under the MIT licence. You can download the executable package from the releases page. The main page which I linked to earlier only contains the source code, although it also links to a downloadable item labelled “DarkPHYSICS”. There is no explicit explanation of what the latter does, but given its name, it sounds like a physics engine.

Microsoft Visual Studio (Windows)

For an individual programmer, Microsoft Visual Studio appears to include most of the important tools of its commercial cousins. You get the IDE, debugger, optimizing compiler of the full version, minus a few things in the editor, debugging and profiling facilities. With this suite, you can develop programs for the desktop and mobile versions of Windows as well as Android. The software also comes with support for building programs with Visual Basic, C, C++, C#, F# and Python. At the time I wrote this, the site states that Visual Studio Community is free for individual developers, open source projects, academic research, classroom learning and non-enterprise organizations with 5 or fewer users. Warning: the program requires that you sign in with a Microsoft account (which is free) to continue to use it beyond the evaluation period of 30 days.

BaCon BASIC (Linux, macOS, *BSD)

BaCon BASIC is a BASIC to C translator for Unix-based systems (like Linux, FreeBSD, macOS, etc), which means that it takes your BASIC code and changes it into C source code. You will then need a C compiler to compile that code. At this time, the converter appears to be implemented using shell scripts, and you will need either the BASH or Korn shell to run it. (Note: if you are using Linux, chances are that you already have BASH somewhere on your system. I’m not sure about the other systems, though.)

Vintage BASIC (Windows, Linux)

Vintage BASIC is an interpreter with a language that is close to Microsoft’s BASIC version 2 as found in the Commodore 64. It is “informed by (but [does] not always stick to) the ANSI Minimal BASIC standard (ANSI X.360-1978)” (as noted in its user guide). You can enter your program using a normal programmer’s / text editor. If you are nostalgic for the old BASIC interpreters of bygone days, or simply want to learn to program in BASIC without having to master the event-driven, object-oriented and window/form-based programming metaphors present in many compilers today, this BASIC interpreter may interest you. The program works on Windows and Linux, and is open source.

Chipmunk BASIC Interpreter (Windows, macOS, Linux)

Chipmunk BASIC is a BASIC interpreter for macOS, Linux and Windows. There is also an older version for Mac OS 9 Classic. The interpreter provides you a traditional BASIC command line interface where you can enter programs directly and execute them, although you can also use a text editor to write your program before passing it to the interpreter.

Bas BASIC Interpreter (Unix)

Bas is a Unix-based BASIC interpreter that first tokenises your source code internally, resolving references to variables and jump targets, before running it. It supports certain BBC BASIC extensions like procedures, local variables and “better exception handling”. It is probably no longer being maintained any more.

Yabasic (Windows, Linux, Unix-like systems)

Yabasic, or Yet Another BASIC, is an open source BASIC interpreter for Windows, Linux and other Unix-like systems. It does not have a built-in editor, so you will need to get a programmer’s editor (or use the plain text editor that comes with your system, eg, Notepad on Windows). It features goto, loops, named subroutines, libraries, graphics, printing, interfacing with libraries written in C, etc. The interpreter allows you to create standalone programs with it, by binding itself (ie, the interpreter) with your program source to form a single executable file. When the latter is run, the bound interpreter will automatically execute the source that has been attached to it. Note: the above link points to the program’s source code repository. To get the binary (ie, executable) Yabasic for your system, click the “www.yabasic.de” link on that page. (For those wondering why I did not simply link to it here: although the link says “www.yabasic.de”, it ultimately redirects to what appears to be a temporary website. I prefer to link to official sites rather than temporary ones that can, without notice, be deleted or replaced by random third party sites.)

Microsoft Small Basic (Windows)

Microsoft Small Basic (no relation to the other “Small Basic” listed elsewhere on this Free Basic Compilers page) is a small language with about 15 or so keywords designed to making it easy and “fun” for people learning to write computer programs. It uses and creates programs for the .NET framework. (In case you think it is something like the old BASIC interpreters that you grew up with in the days of DOS, CP/M and Apple II, it’s not.) It comes with an IDE with what Microsoft calls Intellisense (an autocomplete facility that gives suggestions how you can complete your keywords/function calls as you type) and context sensitive help.

FreeBASIC (Windows, Linux, DOS)

FreeBASIC is an open source (GNU GPL) BASIC compiler that is syntax compatible with QuickBASIC, QBASIC, PDS and Visual Basic for DOS. It generates 32-bit executables that run under Windows and DOS. At the time this was written, the compiler is still very new, and has little documentation.

SDLBasic (Windows, Linux)

SDLBasic is a BASIC interpreter that integrates the WxBasic interpreter (see elsewhere on this page), the SDL graphics library, and a graphics engine, so that you can use it to write 2D games in BASIC. It is open source software, with the runtime engine licensed under the LGPL and the editor used in the IDE under Scintilla’s licence. It runs under Windows and Linux. Linux users can probably get it through their distribution’s package manager (ie, the program that lets you install/uninstall software on the system).

ThinBasic Basic Interpreter (Windows)

ThinBasic is a BASIC interpreter for Windows that can be used to create and run BASIC applications on Windows as well as CGI scripts for a web server running in Windows. It supports the addition of DLLs (called modules here) that provide additional functionality, such as the Crypto module which adds cryptographic functions which you can call from your application, the SMTP, FTP, TCP modules which Internet-enables your applications, sound-playing modules, and so on.

PC-BASIC (Windows, macOS, Linux, Unix-like systems)

PC-BASIC is an interpreter for GW-BASIC, Advanced BASIC (BASICA or IBM BASIC from the old IBM PC computers), Catridge Basic (from the IBM PCJr) and Tandy 1000 GWBASIC. (For those of you who are born after that period, those were BASIC interpreters that came with or ran on computers from the 1980s or thereabouts. ) It emulates the most common hardware (video, audio, DOS disk drives, cassette tapes, serial and parallel ports, etc) at the time, can read and write binary data files created by the original GW-BASIC, and is able to run plain text, tokenised and protected .BAS files. The interpreter/emulator is released under the GNU General Public License version 3. It runs on Windows, macOS, Linux and Unix-like systems.

GW-BASIC (source only)

Microsoft has released the source code for the 10 February 1983 version of GW-BASIC, a BASIC interpreter that came with old versions of MS-DOS (of which versions 1.25 and 2.0 are also open source). More details about this release can be found in the blog post of the Microsoft developer who announced it. Note that this is just the source code. You will still need a compatible assembler to produce a binary. (Yes, it was written in assembly language.) Unfortunately, information about the build environment historically used appears to have been lost in the mists of time, but one commenter on the blog thinks that it was an Intel ASM86 assembler, based on comments embedded in the code. Important: if you are looking for a BASIC interpreter or compiler to learn BASIC programming, please try one of the other BASIC compilers or interpreters listed on this page, since they are more likely to work out-of-the-box on modern computers. This GW-BASIC release is meant for historical reference, and will probably only interest the people who grew up with GW-BASIC (or its equivalent, BASICA) in the 1980s, and want to revisit it for nostalgic reasons.

Gambas - Gambas Almost Means Basic (Linux, *BSD)

Gambas is a Basic development environment supporting the Basic programming language with object extensions. It includes an IDE, a BASIC compiler, an interpreter, an archiver and a graphical user interface component. The archiver combines all the files in your project into a single executable file. Although not intended to be a Visual Basic clone, it has a visual rapid application development interface like VB. Supported operating systems include Linux and FreeBSD, OpenBSD.

Mono’s VisualBasic.NET Compiler (Mono Visual Basic Compiler) (Linux, Windows)

Mono is an open source cross-platform implementation of Microsoft’s .NET Development Framework. It includes a VB compiler (VB.NET compiler/Visual Basic compiler that generates .NET virtual machine code, not native code) that was still under development at the time of this writing, a runtime for CLR (the Common Language Infrastructure) and a set of libraries. You can embed the runtime into your applications. Mono currently works on Linux (both x86 and PPC), Windows, S390, with work being carried on for Strong/ARM and SPARC.

Decimal BASIC (Windows, macOS, Linux)

Decimal BASIC supports the syntax and most of the core modules and the graphics module of the ANSI/ISO standard for Full BASIC. This BASIC interpreter includes a debugger that lets you step/trace through your program, set breakpoints and examine the values held in your variables when it hits a breakpoint. Versions are available for Windows, macOS and Linux. There is also a BASIC to Object Pascal translator that runs on those systems.

GLBCC - GNU / Liberty Basic Compiler Collection (Windows, Linux)

The GNU Liberty Basic Compiler Collection allows Windows and Linux users to compile Liberty Basic code on those platforms. Unlike the original Liberty Basic, this compiler creates standalone native executables that do not rely on an external interpreter. GNU / LibertyBasic is open source and licensed under the GNU GPL and the GNU LGPL.

Just BASIC (Windows)

Just BASIC creates standalone programs from your BASIC source code. (I think it compiles to intermediate code which is then executed by an interpreter.) It supports functions, subprograms, control structures like DO/LOOP and SELECT/CASE, has a GUI builder, supports sprite animation, sound and music, and comes with a source level debugger.

wxBasic (Windows, Linux)

wxBasic is a BASIC interpreter licensed under the GNU LGPL that runs on Windows and Linux. wxBasic code “looks a lot like QBasic”. It has OpenGL support, among other things. This interpreter does not appear to be maintained any more.

SmallBASIC (Windows, Linux, N770/N800, PalmOS, eBookMan)

SmallBASIC is a language designed to handle mathematics and graphics. It includes trigonmetric, matrix and algebraic functions, system, sound and graphic commands, structured programming syntax, an IDE, etc. It works on Linux, Windows, Android, Nokia Internet Tablet, PalmOS and eBookMan. It is released under the GNU GPL.

MoonRock Compiler (DOS)

This Basic-like language with extensions produces executables (binaries) for MSDOS real-mode or DPMI protected mode. It comes with the ArrowSoft assembler, documentation and sample programs. It does not seem like it’s being maintained any more.

Mole BASIC Interpreter (Linux, AIX, Sun, BSD)

Mole Basic, or Merty’s Own Language Extension Basic, runs on Linux, AIX, Sun and BSD and comes in (C?) source code form which you can modify to extend the language. Binaries for Linux is also provided.

XBASIC BASIC Compiler (Windows, Linux)

This is a free BASIC compiler, integrated development environment, and debugger that runs on Windows, as well as Linux. You can actually write graphics and GUI programs that can be compiled by both the Windows and Linux versions without changing your source code.

Bywater BASIC Interpreter (source only)

This is a free BASIC interpreter that compiles and runs on Unix systems. It supports subsets of the ANSI Standard for Minimal BASIC and the ANSI Standard for Full BASIC. It has been re-released under the GNU GPL (I think it was in the public domain before) and supports MSDOS and POSIX systems (eg Unix, Linux, etc).

BCX BASIC Compiler (Windows)

BCX is a Win32 console mode program that translates a BASIC source file into C source code which can be compiled using LCC-Win32 (see our Free C/C++ Compilers page for more information about this free C compiler). It accepts a subset of modern BASIC, as well as extensions like user-defined functions and inline C code.

QB64 (QB64 Phoenix Edition and QB64.com) (Windows, macOS, Linux)

[Update (8 June 2022): there seems to be some sort of crisis with the project (see either of the listed sites for details), and the original site is gone. Some of the developers are now working on the QB64 Phoenix Edition, and there seems to be another set of people also trying to resurrect QB64 at the .com site. (At the time I write this, I’m not even sure they know about each other.)]
This BASIC compiler aims to be 100% compatible with the QuickBasic 4.5 compiler and the QBasic interpreter, but being able to create executable files that will run on modern Windows, macOS and Linux systems. The language has also been extended to provide support for handling TCP/IP (internet) connections and email, displaying graphic files, playing stereo sound and music files, using animation, displaying True Type fonts, handling mouse and game controller input, integrating with C++, SDL and Windows API DLLs, etc. The compiler comes with its own IDE, although you can of course use some other editor if you prefer.

TNT Basic (macOS, source only)

[Update: this is a source code repository for TNT Basic. The original site (linked to in the repository) appears to be gone (it leads to a blank page). There are no executables/binaries for download.]
TNT Basic is a BASIC interpreter for the Macintosh. It is geared towards programmers who are creating games for the Macintosh. The development environment makes it easy for you to create and edit your code, add graphics and sprites to your program, sounds, music, maps, and define inputs for your game. TNT Basic works on Mac OS 8.6 and above (PowerPC Mac). At the time this brief review was written, a beta version for macOS support is also available.

Basic4GL (Windows)

[Update: this project appears to be gone.] Basic4GL is a BASIC compiler for Windows with built-in OpenGL 1.1 support. It is also able to generate code for an Android phone or tablet (though you have to develop your programs on Windows first). It automatically handles things like initialising OpenGL, opening an OpenGL window, etc, allowing you to get straight into writing OpenGL code. The language has built-in support for vectors and matrices and you can perform mathematical operations on them (add, multiply) using vector and matrix notation algebra. Other features in Basic4GL include a 2D tile and sprite engine. The compiler generates intermediate code which is run by a virtual machine. The IDE comes with an integrated editor and debugger.