The original Dartmouth BASIC manual is a great read - for someone writing a BASIC interpreter, I guess...Heater wrote:DavidS,So it's not really BASIC at all.And BBC BASIC V (ARM BASIC) is as structured as C, ARM BASIC even has pointers, which is very important.
BASIC has line numbers. It has GOTO, GOSUB/RETURN. LET, FOR/NEXT etc. BASIC uses floating point numbers. It allowed defining actual named functions with DEF. Where a "function" is a single expression that can fit on one line.
In fact it looked like what's described in it's manual: See attachment.
Modern so called "BASIC"s with the structured programming constructs etc are not BASIC. They are reincarnations of Algol
Edit: Hmmm...the BASIC manual is too big to attach. It's here: http://www.cs.bris.ac.uk/~dave/basic.pdf
But one thing that's happened to BASIC, probably more than any other computing language is that over the years is that it's evolved, changed and in some cases mutated from what might be considered "True BASIC"... There are now even 2 (almost) competing standards for BASIC too (which very few adhere to)
I'm with you on pointers (and peek/poke) though - they crept into the microcomputer BASICs to make up for limitations in the system - lack of ROM space, so some BASICs set text position with poke, read the keyboard directly with peek, more advanced micro basics (Atom/Beeb, etc.) do have a bit of an underlying operating system to help, but still have overloaded commands (plot, vdu, etc.) In these enlightened days, there's no need for them.
It's still a fascinating observation of computer language evolution though. At the time, computers were mostly loaded from card decks, or tapes - but BASIC was interactive - on a slow (very slow!) printing terminal - so it needed line numbers as screen editors hadn't been invented yet. Latterly some variants didn't need line numbers - goto a label for example.
All good stuff!
-Gordon (the punk-rock BASIC programmer)