Thanks! I now have Matrix Brandy Basic running on my Pi Zeros.
For those who have recently joined, the present thread is a continuation of this previous thread entitled "Why Avoid Basic?" that focused on what characteristics a good first programming language should have and whether modern versions of Basic possessed those characteristics. While some might claim the exact programming language doesn't matter and it's better to begin learning the computer science using whatever means are available without further delay, it is also reasonable to write programs using the various languages to determine whether those languages really are equally suitable for the beginner or whether some are more suitable than others.
Rather than making things up for the sake of having an interesting conversation, it is expedient to recall what insights have already been provided by the successful pioneers of the past. As discussed in this forum post, the efforts of Kemeny and Kurtz are notable for creating a revolution in interactive computing at Dartmouth College that led to widespread computer literacy. While poking fun of the Basic programming language itself is tempting, it is perhaps more productive to discuss the design goals set forth in the 1964 preface to the first draft of the Basic instruction manual.
Having said this, I've now have versions of the classic.bas Fibonacci code that work with four different Basic interpreters: bwBasic, ScriptBasic, Matrix Brandy Basic and gplBasic. A graph depicting the relative performance of these interpreters will appear in an upcoming post. For now note that the changes needed to adapt classic.bas for bwBasic were posted above and the changes needed for ScriptBasic were posted here. The changes for classic.bas to run under the other two Basic interpreters are as follows:BASIC Instruction Manual wrote: When plans were made for the Dartmouth College time-sharing system, which will enable 20 or more people to use the computer at the same time, the need arose for a language to meet several requirements:
1. It should be very easy to learn. This will enable faculty and students to obtain useful information from the computer without an undue investment in learning machine languages.
2. It should be possible to change programs from this language to the language of the machine ("compile") quickly. This is a necessity when twenty people share the time of the computer.
3. It should be a stepping-stone for students who may later wish to learn one of the standard languages, such as FORTRAN or ALGOL.
4. It should be a general purpose language; that is, every kind of machine computation should be programmable in it.
Matrix Brandy Basic
The sbrandy version of the interpreter was used which reads from standard input and writes to standard output. In order to run under Matrix Brandy Basic, the classic.bas program was converted to uppercase. Then, all occurrences of "LOG" were replaced with "LN" and finally line 290 was changed to read
Code: Select all
290 M0=1:INPUT "? " N:IF N=0 THEN STOP
Code: Select all
#!/bin/bash
cat | sbrandy -size 48000000 brandy.bas
The gplBasic interpreter appears to be the effort of a single person named Lennart Benschop. It was downloaded from
http://www.xs4all.nl/~lennartb/gplbasic.tar.gz
and patched as follows:
- In main.c line 8 replace string.h by signal.h
- In main.c line 78 replace for(;;) by for(;argc>2;)
Code: Select all
1080 if p1=1 or p1=3 then 1200
7046 if mid$(s$,len(s$),1)=" " then s$=mid$(s$,1,len(s$)-1)