Moonrock Basic Compiler
MoonRock is a free BASIC-like language for the MS-DOS operating system written exclusively by Rowan Crowe. The compiler produces small and tight executables optionally optimised for 8086, 80186+ or 80386+ code. Notably the Moonrock compiler works for both DOS real mode or DPMI protected mode.[1]
The Moonrock compiler comes with the ArrowSoft assembler, documentation and sample programs. It is not being maintained any more.[2]
Although originally written in Microsoft's QuickBASIC, later versions integrated assembly language add-ons before being completely written in Moonrock itself. It is one of the very few free and open source compilers which is capable of compiling itself. Moonrock is thus also a development language.
The last stable version is Moonrock 0.50. It has been widely downloaded and is still used by groups of DOS game programmers. Moonrock was one of the first compilers to output compact .ASM assembly language code, making it easier for game programmers to optimise for speed and graphic handling routines.[3]
Moonrock was created as an alternative to QuickBasic. The compact code results in small size executables unlike QuickBasic's bloatcode. Moonrock is relatively unique as expressions are evaluated left to right, regardless of operation precedence. [4]