"Douglas Quebbeman" <dhquebbeman(a)theestopinalgroup.com> wrote:
> I'd tend to agree, in general. However, I
think something like MIPS
> assembly (such as that taught in CS courses at UIUC) might work well as
a
> "learners" language, and doesn't
require knowing TOO much of the
hardware
> (aside from the registers / memory distinction,
which could be taught
using
a "file
cabinet / cubbyholes" analogy).
Was the MIPS a true 3-address machine (or do I mean 3-operand?)? Or
am I thinking of the NS32000 family?
Yes, I'm almost positive it was a three-operand machine -- I still remember
long nights writing "add $r5, $r3, $r12" and the like. I don't know if
what
we did was totally real, or more stylized -- all of our machine problems ran
through a simulator. But it was elegant: our implementation had a fixed
32-bit instruction size, thirty-one static 16-bit general purpose registers
(as $r0 was hard-coded to zero), some 32-bit floating point registers (don't
recall how many), plus stack and instruction pointers. Memory was 16-bit
addressable flat space... beyond that I'd have to pull out my old textbooks,
unless I sold them (which I think was the case).
> But, yeah, I'd say BASIC is still a pretty
good language to see if
someone
can
"get" programming -- provided that someone moves to a structured
language quickly if he or she wishes, instead of getting into bad
programming habits (as I did for a while).
I grudgingly agree.
Niklaus Wirth thought that BASIC hopelessly polluted a mind from
every being a good programmer. I, too, think that's harsh, probably
because I also started with (a superset of) BASIC, and wrote journal
articles for two years for The Cobb Group's Inside Microsoft BASIC
and Inside Quickbasic. And every time I think I've finally put it
behind me, it creeps back into my life. Most recently, TOPS-10 BASIC
running on a simulated DECSYSTEM-2020 (KS-10) (fixing MONPLY.BAS).
I adopted Quickbasic pretty easily, so learning structured programming
wasn't too bad; however, QB made me lazy in terms of things like syntax
checking (since it was on-the-fly) and variable declaration. It took me a
while before I could program in C without getting hopelessly frustrated.
(Remembering semicolons alone was enough to drive me nuts...)
But BASIC holds many fond memories for me, between learning it on Commodore
PETs, Apple II's, and GWBasic on my old 1186... and as far as getting people
to understand variables, conditional statements, loops and the like, it's
still very useful.
GSL, who now remembers that that LOGO simulator was written in QBX, not
GWBasic...