Hello,
to all new and future members.
It appears that I have the great fortune of making the first post to this forum.
Some time ago, I wrote an online tutorial, titled: "Let's Build a Scripting Engine-Compiler"
after starting the "Blunt Axe Basic Project", (simply called Bxbasic).
The tutorial is downloadable in different formats from the link at the bottom of this page.
What is Bxbasic ?
Bxbasic is presented as a programming tutorial, to develop and construct a Console Mode Scripting Engine and Byte Code Compiler. The Bxbasic dialect is a subset of the GW-Basic and QBasic programming languages.
How did Bxbasic get started ?
Well, this whole thing started years ago, when a number of programmers and I, that frequented the Rapid-Q developer’s group site, decided that we just didn't like what was going on out there in the realm of Rapid-Q and Basic programming in general. So, we set out to form our own programmer’s group, that being the QDepartment group.
A number of us were toying around with the various dialects of Basic currently available and we just weren't satisfied with what we were seeing. Microsoft has entirely and long ago abandoned QBasic/QuickBasic. A language many of us got a great deal of enjoyment programming in. Some of us program as an occupation and others just for pleasure. At any rate, Visual Basic (VB) costs an absolute fortune and some of the other alternatives just don't have the 'Touch and Feel' of QBasic. Not that QBasic is the greatest dialect or language ever written, by any means, but, (IMHO) it's just a fun environment to program in.
Unfortunately, QBasic (and Quick Basic 4.5) are still relegated to the world of 16 bit programming. When I first got involved with this, I was just looking for a tool that I could use to recompile some old Quick Basic programs I had written so that they could run in a 32 bit environment.
Like so many others, I experimented with the various dialects of Basic now available, with mixed results. Some Basics claimed to be nearly QBasic, others claimed to need only minimal rewriting. Some were available for 'free' while others cost quite a hefty chunk. Some of the so-called 'free' ones ended up really being crippled or minimal versions of a commercially available full featured product. Rapid-Q, one that I thought I liked (and so did a lot of other people) ended up requiring a full 50% rewrite before I could get any pre-existing code to run on it. And then, it didn't do all the things I needed it to do.
One day, some one suggested that maybe we should try to develop our own version of QBasic. If we could do that, then we would control what it did, what it didn't do and what it might do. So, after spending a few years learning what you need to know about writing interpreters and compilers, I began writing Bxbasic. From that point forward, in my spare time, I’ve been slogging through it. Writing code and finding out what worked and what didn't and finding out why not. Little by little, I started putting together the beginnings of a QBasic like scripting engine (interpreter). I needed to start with what I considered the most rudimentary aspects of the "Console Mode" GW-Basic and QBasic dialects.
Anyway, I figured I'd start with a "Console Mode" scripting engine-compiler and work up gradually, to bigger and better things. I'd add features a little at a time and eventually build this into something I might actually be able to use. That's where we are now.
Today, (in 2010, after a number of years on the back-burner), Bxbasic consists of:
A) a BASIC interpreter,
B) a BASIC scripting engine / byte-code compiler,
C) and a BASIC-to-MASM translator.
There are also two ports of Bxbasic, done by others;
1) a Pocket PC port,
2) and an Allegro port, which adds GUI support.
Work is ongoing on the intepreter and translator, heading in the direction of a stand-alone Basic Compiler.
Download Blunt_Axe_Basic tutorial:
http://sites.google.com/site/bluntaxebasic/tutor/-or- visit:
http://tech.groups.yahoo.com/group/QDepartment/