For a useful re-implementation of BBC BASIC, especially in compiled form, a run-time system is needed to provide services to the running program which cannot be directly provided by the operating system. In the case of our OWL BASIC implementation, we are targeting .NET so we already have a very sophisticated run-time in the shape [...]
Since BBC BASIC does not use C-like nested scopes marked by braces to delineate loops and other blocks, the structure of such blocks is not captured in the Abstract Syntax Tree (AST); that is to say that the statements within a loop will not be child nodes of the opening loop statement such as FOR [...]
Other personal projects, of both a software and familial nature have taken priority lately over my project to implement a BBC BASIC-a-like compiler for the .NET CLR, now called OWL BASIC in honour of the owl logo of the BBC’s Computer Literacy Project. Now I have some spare capacity to devote to the project, and [...]
This posting has been re-written from an earlier version which contained unnecessary complexity Following on from my proposal on how to compiler BBC BASIC functions with variant return types, in response to Richard Russell’s compilation challenges, I’d like to move on to compiling BBC BASIC loop structures. Nonetheless, several readers have comments how useful even [...]
Some significant challenges to compiling BBC BASIC have been raised by Richard Russell, maintainer of BBC Basic for Windows. I have decided to explore the issues he raises through further posts here, rather than through responses to his earlier comments, since they will be quite long. Today, we will look at the problem of the [...]
So having decided to build a BBC BASIC compiler for the CLR, in IronPython using PLY, the first step is to build a functioning lexer to tokenize the text input of a BBC BASIC program. BBC BASIC is normally stored in a binary tokenized format, where each keyword is stored as a one- or two-byte [...]
Recent Comments