It has been suggested that the 3-1 USENET preference for ^ over FORTRAN
** is due to UNIX bc/dc, but the usage seems to predate UNIX (it was
evidently common on ITS, too).
It seems likely that both the bc/dc use and ITS use have a common root
in some notation or computer language, but I have no idea which one it
might be. C, Pascal, Fortran, Ada, Basic, APL, COBOL, and LISP are all
right out, and I doubt it came from any assembler :-).
Has anyone got any idea about this?
--
Eric S. Raymond = er...@snark.thyrsus.com (mad mastermind of TMN-Netnews)
I don't have any sources, but will say an obvious reason for
liking it..
Since it points up, it just is sort of more mnemonic, because
it sort of means "put the next part in the superscript".. This is a really
quick description of it, but it should suffice.
"**" doesn't really make sense initially.
Also, "^" is universally used to denote "CONTROL," like ^G is
controlG, the bell character.
--
/Apple II(GS) Forever! unk...@ucscb.ucsc.edu MAIL ME FOR INFO ABOUT CHEAP CDs\
\WRITE TO ORIGIN ABOUT ULTIMA VI //e and IIGS! Mail me for addresses, & info. /
Microsoft??????!? Boy, you guys are young! Unlike Mark The Gaijin,
I haven't been around since the beginning :-), but ^ was the standard
character in the "BASIC BASIC" book, and in the BASIC versions used
on PDP-11/20s in 1971 and on HP-?000's in 1972, so I assume it was
in the original Dartmouth BASIC language definition, unlike some
Microsoftisms like separate integer and floating-point data types.
Of course, on the canonical Teletype ASR-33, the ^ is an up-arrow
character, which makes a little sense to use for exponentiation.
Was ^ in early versions of LISP? What did APL use?
--
# Bill Stewart 908-949-0705 erebus.att.com!wcs AT&T Bell Labs 4M-312 Holmdel NJ
# "If it weren't for us, American troops would be invading exotic places like
# Lebanon and Grenada, and the Air Force would do stuff like bombing Libya"
# Abbie Hoffman
Grrrr... Man, when did you start computing? Was your first machine a
MS-DOS machine?
There is no BASIC but Microsoft's, and Bill Gates is the author.
Ever seen an Apple II? A TI-994a? Ever heard of Dartmouth? Tiny BASIC?
Unfortunately, Microsoft does not seem to be able to repeat the quality
of its BASICs in thier current suite of software. What if they burned
Mickeysoft C into ROM? How many ROM revisions would there be? How about
burning the "bug-free" Mickeysoft Word into ROM? Man, when they produced
code bug free enough to burn into ROM without updating, that was impressive.
Nowadays...
>------------------------------------------------------------------------
>William R. Ward | UC Santa Cruz, CIS | [backbone]!ucbvax!
>(408) 426-7267 | her...@ucscf.UCSC.EDU | ucscc!ucscf!hermit
>UCSC-Cowell-787 +--------------------------------------------------
>Santa Cruz, CA 95064 | Disclaimer: Nobody reads this anyway.
>------------------------------------------------------------------------
--
| b...@epmooch.UUCP (Ben Mesander) | "Cash is more important than |
| ben%serval...@uokmax.ecn.uoknor.edu | your mother." - Al Shugart, |
| !chinet!uokmax!servalan!epmooch!ben | CEO, Seagate Technologies |
That's what I was looking for. My guess had been that Microsoft got it from
whatever the current BASIC standard was. (The separate types business came
from having to fit a BASIC interpreter into 8K or less.) I was just tossing
out possibilities in the hope that someone's memories would be tickled.
++Brandon
--
Me: Brandon S. Allbery VHF/UHF: KB8JRR on 220, 2m, 440
Internet: all...@NCoast.ORG Packet: KB8JRR @ WA8BXN
America OnLine: KB8JRR AMPR: KB8JRR.AmPR.ORG [44.70.4.88]
uunet!usenet.ins.cwru.edu!ncoast!allbery Delphi: ALLBERY
It is less mysterious when you consider that in pre-1963 ASCII ^ was
an upwards-pointing arrow. By the way, _ was a left pointing arrow,
hence its use in programs with a
target_source
command syntax. These characters appeared as such on model 33 and 35
Teletypes, which were the standard ASCII terminal for most sites in
the early-mid 70's.
The earliest use I know of ^ for exponentiation was in BASIC.
_____ | ____ ___|___ /__ Mark ("Gaijin") Crispin "Gaijin! Gaijin!"
_|_|_ -|- || __|__ / / R90/6 pilot, DoD #0105 "Gaijin ha doko?"
|_|_|_| |\-++- |===| / / Atheist & Proud "Niichan ha gaijin."
--|-- /| |||| |___| /\ (206) 842-2385/543-5762 "Chigau. Omae ha gaijin."
/|\ | |/\| _______ / \ FAX: (206) 543-3909 "Iie, boku ha nihonjin."
/ | \ | |__| / \ / \M...@CAC.Washington.EDU "Souka. Yappari gaijin!"
Hee, dakedo UNIX nanka wo tsukatte, umaku ikanaku temo shiranai yo.
> ^ was the standard character in the "BASIC BASIC" book [for
> exponentiation], and in the BASIC versions used on PDP-11/20s
> in 1971 and on HP-?000's in 1972, so I assume it was
> in the original Dartmouth BASIC language definition...
BASIC-PLUS on the PDP-11 allowed the use of ^ or ** interchangeably for
exponentiation, perhaps as a consiliatory gesture to the Fortran community.
I don't know which the original Dartmouth BASIC used.
--
This is my address: p...@ama.caltech.edu
This is UUCP: ...!{ihnp4,uunet}!
This is my address on UUCP: ...!{ihnp4,uunet}!caltech.edu!ama!ph
Any questions?
"Does Emacs have the Buddha nature?" --Paul Hardy
APL uses * for exponentiation and x for multiplication, if you have
a device using the APL char set.
Hmm. BASIC, I thought, was invented by Bill Gates. That's how MicroShit
(ahem) got its name and stuff like that. I have never seen a non-MS
version of BASIC on any computer, except for _recent_ packages like
Borland's Turbo BASIC.
|I should also note that TeX uses it the same way, but to *typeset*
|exponentiation. Where'd Don Knuth get it?
Bearing in mind that on many old terminals the ^ character is an
up-arrow instead of a caret, this is a logical way to represent a
superscript.
--
>Hmm. BASIC, I thought, was invented by Bill Gates. That's how MicroShit
>(ahem) got its name and stuff like that. I have never seen a non-MS
>version of BASIC on any computer, except for _recent_ packages like
>Borland's Turbo BASIC.
You haven't seen much, then.
Basic was invented at Dartmouth college in the mid-60's. I don't know if Bill
Gates was involved, but I sincerely doubt it. Back in the bad old days when
"microcomputer" meant a toy-like, BASIC-only device with a tape drive and at
most 16 K of RAM, there were literally hudnreds of different BASIC's around
- almost one for every machine. It is true that Microsoft managed to get a
large segment of the market - most CP/M machines had some version of MS BASIC,
Apple ][ BASIC was written by MS, not to mention IBM PC BASIC and GWBASIC.
But there were lots of manufacturers that had their own BASIC's (mainly,
perhaps, because their machines were too incompatible with anything else to
run MS BASIC :-) ). Some examples from the micro world: Sinclair/Timex ZX8[01],
the British Acorn computers (Atom, Electron, BBC), various HP machines
(HP BASIC was very advanced with matrix operators, etc), the Swedish ABC 80,
etc, etc, etc. Not to mention, of course, the various minicomputer BASIC's
- do you really think Bill Gates wrote VAX BASIC?
In summary, there were, and still are, hundreds of BASIC dialects which
were *not* written by MS and in fact are more or less incompatible with it.
MS was the biggest BASIC vendor, and their BASIC used to be some sort of
standard, but that's all.
BTW, I've seen it claimed several times that MS invented BASIC. Since
this is an alt.folklore newsgroup - does anyone know how this legend
originated? Was it perhaps spread as deliberate desinformation by Microsoft's
marketing department?
Magnus Olsson | \e+ /_
Dept. of Theoretical Physics | \ Z / q
University of Lund, Sweden | >----<
Internet: mag...@thep.lu.se | / \===== g
Bitnet: THEPMO@SELDC52 | /e- \q
and all pre-Amiga computers by Commodore had them in their characcter
sets where ^ and _ should appear. And of course, Commodore transposed
the ASCII values for upper- and lowercase text (a result of the early
PETs being uppercase only, then lowerccase having been added just as it
was added to ASCII standard, but they wanted "uppercase/graphics mode"
values 0-63 to be pre-1963 correct.)
though i'm sure you all don't care about Commodore 8-bits.
>Basic was invented at Dartmouth college in the mid-60's. I don't know if Bill
>Gates was involved, but I sincerely doubt it.
According to BYTE's 15th anniversary edition, Bill Gates founded Microsoft
while still an undergraduate, and their first product was a implementation of
BASIC for the Altair computer.
This must have been sometime around 1975. If Bill Gates got his degree at then
normal age, he must have been around 12 years old when BASIC was invented.
WRONG. WRONG. WRONG. BASIC was a mainframe language long before Gates thought
about porting it. Some versions even had matrix operations (of course, in the
micro ports, this feature was the first to go).
>(ahem) got its name and stuff like that. I have never seen a non-MS
>version of BASIC on any computer, except for _recent_ packages like
Well, the last package I saw was Waterloo BASIC running on MUSIC/SP. Before
that, I recall a BASIC package on the very first UNIX system I ever tried out,
on some sort of VAXen (though the system administrator claimed it was really
a pdp-11). The first time I saw BASIC was on a DEC-10 at Syracuse University,
in 1979.
I guess you haven't been around enough.
Jim
Actually, MS-BASIC (or GW-BASIC, for that matter) is one of the
newer versions I've seen. Various computers like the Vic-20, TI 99/4A,
and Apple ][, all had their own BASIC. But they all used the ^ key as
an exponentiation operator.
There are probably older versions, but I never used BASIC on any
other machines.
I doubt there was any single origin, myself. The ^ character used
to be an up-arrow on older terminals, and it would have been a highly
intuitive character to use (as many people have pointed out).
---
Noah Friedman
frie...@ai.mit.edu
Back in 1974 (when I was in high school) I used a version of BASIC on a
minicomputer (the Nova or Novo - or some such name).
I seem to recall that BASIC was quite popular for educational use then and was
implemented on several minis and mainframes. I did most of my programming in
Algol, however.
Missed it by a mile! BASIC was around when Bill Gates was running about
biting his parent's ankles. Quoting from Thomas E. Kurtz's article in
_History of Programming Languages_, Richard Wexelblat, ed.,
"In early 1964, with the assistance of two grants from the NSF and
educational discounts from General Electric, Dartmouth acquired a GE-225
computer (replaced in the summer of 1964 by a GE-235) combined with a
Datanet-30 and a disk that coule be accessed from either machine (Kemeney
and Kurtz, 1968). Kemeny had begun work during the summer of 1963 on a
compiler for a draft version of BASIC; GE provided access to the GE-225
machines in the area. Design and coding for the operating system began in
the fall of 1963, with the main responsibility falling to students Michael
Busch and John McGeachie. The pace quickened in February 1964 when the
equipment arrived on the campus. The first BASIC program under time sharing
was run on May 1, 1964, around 4 AM."
The referenced article is attributed to Kemeny, J.G., and Kurtz, T.E. (1967).
Dartmouth Time Sharing. _Science_ 162:223-228.
Stan Kelley-Bootle defines BASIC in his _The Devil's DP Dictionary_ as
"BASIC n. [Origin: _Either_ acronym for Beginner's All-purpose Symbolic
Instruction Code, or Geology: _basic_ "containing relatively little silica."]
Originally a simple mid-level language used to test the student's ability to
increment line number, but now available only in combplex, extened versions.
--
Steve Lamont, SciViGuy -- (408) 646-2572 -- a guest at network.ucsd.edu --
NPS Confuser Center / Code 51 / Naval Postgraduate School / Monterey, CA 93943
"... most programmers don't even bother going to the metal on machines where
the metal is painful and there's no light to see by..." -J. Eric Townsend
Wow.
Consider that:
(1) Bill Gates is about the same age as I am
(2) I used BASIC on a Wang 3300 minicomputer, a IBM 360/67 mainframe
(under the CALL-OS "timesharing system"), and a DEC PDP-8 as a
15-year-old high school student in 1971
(3) BASIC was already pretty old stuff by that time [much of our
documentation was from Dartmouth BASIC in the late 60's].
(4) Many of the DECUS BASIC games are dated 1969.
Gates must've invented BASIC when he was in elememtary school! Rather
precocious, isn't he????
1/2 ;-)
Of course the roots of microcomputer BASIC are right at the very first
hobbyist uP machines. I remember the heady days when mags like Byte,
DDJ and Creative Computing would proudly publish Tiny Basics, to run in
4k or 8k or whatever. In those days, choices of HLLs for uPs were
limited. FORTRAN was considered too hard and Pascal was still
something academics taught. Only BASIC was considered "friendly" and
widespread enough. Then also there were dozens of homebrew languages.
But many of those hobbyists were no doubt influenced by minicomputer
implemtations like on RSTS, HP's machines, etc.
> Hmm. BASIC, I thought, was invented by Bill Gates. That's how MicroShit
> (ahem) got its name and stuff like that. I have never seen a non-MS
> version of BASIC on any computer, except for _recent_ packages like
> Borland's Turbo BASIC.
You're gonna get plenty of replies, but hey, usenet is funny that way.
Bill Gates wrote the early Altair version, I believe, back in the days
when most people fiddled bootstrap and other code in by switches. He wrote an
excellent version that fit in around 4 to 6 k-- some guys in Texas took that
code, and bummed it even smaller and gave it back for free.
Anyway, there was a ruckus because Gates didn't like giving the program
away free to people (which is why he's a millionaire now). This went against
the total hacker effort at the time (I agree with the hackers; it was a lovely
hack, but nothing I'd pay money for if I could anon ftp it ;), so it sort of
pissed him off.
Maybe his feelings of inadaquency forced him to program as best he
could and cheat others, leading him to business and therefore $$$ ;)
My final point: yeah, Gates was involved with BASIC, and opened the
path for lotsa other BASIC stuff (which is why just about every IBM and clone
I've ever booted off the HD has had either BASICA or GWBASIC on it; even I use
it sometimes for my calculus :-), but nopenope, he didn't create it.
> ------------------------------------------------------------------------
> William R. Ward | UC Santa Cruz, CIS | [backbone]!ucbvax!
> (408) 426-7267 | her...@ucscf.UCSC.EDU | ucscc!ucscf!hermit
> UCSC-Cowell-787 +--------------------------------------------------
> Santa Cruz, CA 95064 | Disclaimer: Nobody reads this anyway.
> ------------------------------------------------------------------------
Coincidentally, you might want to change the disclaimer, as there's
this friend of a friend I have that works for a guy who heard about a dude at
the CIA who reads all of Usenet. :-) :-) :-)
--
David Konerding, Wesleyan University
DKONE...@EAGLE.WESLEYAN.EDU
Under Earth and Throneless I May Be/ Yet While I Lived, All Earth Was Under Me
- SILVER CHAIR, by C.S. Lewis
> The first time I saw BASIC was on a DEC-10 at Syracuse University,
> in 1979.
The first time I saw BASIC was on a GE635 (H6000) running G(E)COS III, in '68 or
'69.
>
> I guess you haven't been around enough.
I guess I have...
--
David Harrington internet: d...@eire.unify.COM
Unify Corporation ...!{csusac,pyramid}!unify!eire!dgh
3870 Rosin Court voice: +1 916 920-9092
Sacramento, CA 95834 fax: +1 916 921-5340
Apple's original Integer BASIC was also by Microsoft I believe. There was some
dispute a while back because Microsoft never got any royalty from the release,
but supposedly it was a "one-shot" deal, and Microsoft wasn't entitled to it
anyway.
The Radio Shack Model-100 BASIC was also written by Microsoft, by the way.
Some rumors indicate that it was written in a weekend hack-session or
something. Anyone here who can shed some light on this?
--
Craig L. Stodolenak "Puritanism is the nagging fear that someone,
uunet!uwm!mixcom!craig somewhere, might be happy."
cr...@mixcom.UUCP -- H. L. Mencken
> >Hmm. BASIC, I thought, was invented by Bill Gates.
> Gates must've invented BASIC when he was in elememtary school! Rather
> precocious, isn't he????
Since nobody else has mentioned this, I'll put in my $0.02. Gates first wrote
a version of Basic for the Altair (as someone else already pointed out). This
was when he was in college at Harvard. He sold the paper tape for kilobucks
(well, at least about $100, which was an awful lot for an 8080 paper tape
program). Because of the high price, the tape was widely pirated by everyone
and their cousin, which prompted him to take out ads against software piracy.
Supposedly, though, he worked on this Basic on Harvard's computers, and
therefore it wasn't his private property to sell & profit by (developed on
a non-commercial licensed Unix system? anyone know any more?). Nevertheless
he made enough money from its sales to drop out of college and found Microsoft.
Go back to 1960 and look at Algol 60. It used uparrow for exponentiation.
However the language explicitly allowed for differences between 'publication
language' and 'machine langauge', i.e. the representations might differ
between the actual program as presented to the machine and the algorithm
as published. As has been noted, many devices for punching papertape and
cards had up arrows (e.g. ASR 33); some had not. For the devices without
up arrow a replacement was searched. At our institute the replacement was
the overstrike of a vertical bar and a circumflex. At other installations
it was simply the circumflex (as that was available on nearly every
typewriter of that time, e.g. your favorite Selectric). I do not know
whether the uparrow was already used in Algol 58 (aka IAL), or indeed
whether it already defined exponentiation; but I can check that when back
to work next week. Some people remarked that ANSI has changed the standard
at some time to use circumflex rather than up arrow and underscore rather
than back arrow at some time. That is true, but as far as I know that
was not in 1963 but in 1968 or thereabouts. And at least ISO 646-1973 still
gives 'up arrow head' in the reference version (with circumflex as secondary
name). Fortran used ** because it much closer tied with the hardware
representation (026 card punch).
Other features of Algol 60, many might not know:
1. Assignment was := and considered a single symbol. As above a single
keystroke substitute was looked for and some installations came up with
the back arrow (available on e.g. ASR 33). I particularly liked the
back arrow, but never had access to a machine using it.
2. Case sensitivety. Algol 60 was case sensitive in all identifiers and
keywords. So at our institute all non-language defined standard functions
were in uppercase. To print something you had to use PRINT, etc. (Later
also the function print was supplied, but you could still not use Print.)
However I doubt whether any installation distinguished between 'Boolean'
(the canonical name) and 'boolean' (really a heresy).
Algol 68 followed Algol 60 in disregarding hardware representation. It had
three different forms: (I parafrase from memory) publication representation,
machine representation and reference representation. The compiler I used
had a representation for all symbols defined by Algol 68; even for aleph,
which, according to the report, did not have a machine representation!
--
dik t. winter, cwi, amsterdam, nederland
d...@cwi.nl
AppleSoft (the Apple // BASIC in ROM in virtually all Apple //s,
loadable from disk in the others), was written by MicroSoft.. My theory
as to why there were never major renovations to AppleSoft (even when Apple
gave a damn about the //) is because of legal ramifications.. They'd've
had to deal with MicroSoft to be able to edit and/or rewrite parts of
their code. (A similar argument is why they haven't updated APW C, but
the truth is because Apple now barely gives a damn for their
$1billion/year computer line)
My main point was supposed to be that MicroSoft has written BASIC for
many if not most personal computers.
> I doubt there was any single origin, myself. The ^ character used
>to be an up-arrow on older terminals, and it would have been a highly
>intuitive character to use (as many people have pointed out).
Ba Dump PISH!
(I presume the "pointed out" is with no pun intended?!)
Excuse me, but as I said in another posting, AppleSoft ("Apple
Basic" as you call it) was written by MicroSoft.
>Ian Farquhar Phone : 61 2 805-9400
Woah.. I realize this is totally off the topic of computers or
anything, but I've never seen that last name except on an episode of
"The Wonder Years".. I'm -not- insulting your name, or at least not
intending to.
Well, it wasn't a Unix system. It was a DECsystem-20. The code also had a
number of similarities with the BASIC supplied for the -20 (which DEC sup-
plied in source form). However, the Gates/Allen/Davidoff BASIC had some major
differences (like looking up line numbers by linear search, rather than using
a linked list).
Microsoft used DECsystems for many years (for all I know, they still do)
for software development. I used to get bug lists for BASIC/FORTRAN/EDIT-80
as lineprinter output from the TOPS monitor.
BASIC-80 wound up in some strange places (bank ATM's for one). Of course,
when Microsoft ported it to the PC they just hacked the assembler to generate
8086 code from their pseudo-8080 sources, so the IBM PC BASIC was stuck at
the 64Kb limit, while their competitors started taking BASIC seriously. It
took Microsoft a while to see the writing on the wall and do Quickbasic (and
later the various BASIC compilers)
By the way, early licensees of Microsoft BASIC paid a $50K flat fee, as
Microsoft thought they'd never make more than that on a per-unit royalty.
Radio Shack convinced them of the error of that in a hurry. Later licenses
were an initial fee plus a per-unit royalty.
Terry Kennedy Operations Manager, Academic Computing
te...@spcvxa.bitnet St. Peter's College, US
te...@spcvxa.spc.edu (201) 915-9381
>In article <10...@darkstar.ucsc.edu> her...@ucscf.UCSC.EDU (William R. Ward) writes:
>>
>>Hmm. BASIC, I thought, was invented by Bill Gates.
>>I have never seen a non-MS
>>version of BASIC on any computer, except for _recent_ packages like
>>Borland's Turbo BASIC.
>Apple Basic, MicroWorld Basic, Metacomco Basic, VAX Basic, the list
>stretches on and on...
Aplesoft BASIC is based on Microsoft, and was actually written by
Bill Gates and his Harvard roommate (?), the name of whom I forget
right now.
>Ian Farquhar Phone : 61 2 805-9400
>Australia EMail : ifar...@suna.mqcc.mq.oz.au
--
---
Henry Throop
Internet: thr...@jacobs.cs.orst.edu
In article <PH.91Ja...@ama-1.ama.caltech.edu>, p...@ama-1.ama.caltech.edu (Paul Hardy) writes:
> Supposedly, though, he worked on this Basic on Harvard's computers, and
> therefore it wasn't his private property to sell & profit by (developed on
> a non-commercial licensed Unix system? anyone know any more?). Nevertheless
> he made enough money from its sales to drop out of college and found Microsoft.
Well, it wasn't a Unix system. It was a DECsystem-20. The code also had a
number of similarities with the BASIC supplied for the -20 (which DEC sup-
plied in source form). However, the Gates/Allen/Davidoff BASIC had some major
differences (like looking up line numbers by linear search, rather than using
a linked list).
I don't know exactly what Bill Gates and company actually developed on
Harvard's machine. The story I'd heard was some development tools (a
linker?). In any case, PDP-10 code won't run very far on an Altos.
In any case, the machine was not a DECsystem-20 (which was DEC's later
renaming of the PDP-10 with a certain version of the OS etc.). It was
a PDP-10 running TOPS-10. In fact, it was PDP-10 serial number 5 or
so.
You are confused. Initially Apple ]['s came with Integer Basic, by Steve
Wozniak, in ROM and AppleSoft Basic, by MicroSoft, on casette tape, as an
optional extra.
Later, Apple introduced expansion cards containing AppleSoft Basic in ROM.
Still later, they introduced cheap floppy drives.
Then, some idiot in marketing replaced the ROM debugger by a bunch of
crappy code that might or might not boot the floppy when you switched on
the machine or hit reset. This abomination was called Apple ][+ by the
marketing droids and Apple ][- by folks who liked the real Apple ][.
The other mistake of the ][- was that it only contained AppleSoft basic.
Wozniak left Apple in disgust.
By now, Apple can't even spell ][ correctly, writing it // or something.
I'm beginning to feel old...
Happy New Year to you all,
Hans Mulder h...@fwi.uva.nl
--
--Bill Kinnersley
>Apple's original Integer BASIC was also by Microsoft I believe. There was some
>dispute a while back because Microsoft never got any royalty from the release,
>but supposedly it was a "one-shot" deal, and Microsoft wasn't entitled to it
>anyway.
Integer BASIC was written by Woz himself, using just the miniassembler
in ROM, no less. Bill Gates wrote Applesoft BASIC a few years later,
which is still being used. The ROM chips for the IIgs still say
Copyright Apple Inc. and Microsoft, so I would assume they are still getting
royalties for it. Interestingly, Microsoft recently licensed Applesoft
to a clone maker (Laser) so they could make Apple compatible computers,
for about $100,000. That's just pocket change to Microsoft, so I don't
know why they wouldn't just give it away, but that's how thing work.
>The Radio Shack Model-100 BASIC was also written by Microsoft, by the way.
>Some rumors indicate that it was written in a weekend hack-session or
>something. Anyone here who can shed some light on this?
Microsoft wrote not only the BASIC, but the rest of the ROM as well,
including a word processor, data base, telcom, etc. It's pretty bug
free, so I doubt it was just a weekend hack.
>Craig L. Stodolenak "Puritanism is the nagging fear that someone,
>cr...@mixcom.UUCP -- H. L. Mencken
according to the book "Hackers" by Levy.
Bill Gates sold the first implementation of "Tiny Basic" for the altair.
He showed it off to the Homebrew Computer Club, where he was a member at
the time, and promptly had copies distributed without his permission.
He promptly threatened to sue.
Note: this is all from memory and might not be totally correct.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Lawyer fodder.
Jenner .....................................dfpedro@uswnvg.UUCP
*Disclaimer? You bet! I speak for myself only.*
I was there at the time. It was HARV-10, host 9 on the ARPAnet. There was a
strict no-personal-use, no-commercial-use policy in effect. The machine and
all accounts on it were funded either with university or government contract
money.
Late one night I noticed Gates and co. working on the project. I told them
it was against the rules, and they were fairly rude in return. I now wish
that I had called the administration in at that point, but Harvard has a
`gentlemen's tradition' that one need not use a hammer...
geoff steckel (gw...@wjh12.harvard.EDU)
(...!husc6!wjh12!omnivore!gws)
Disclaimer: I am not affiliated with Sun Microsystems, despite the From: line.
This posting is entirely the author's responsibility.
All versions of Commodore BASIC were derived directly from Microsoft
BASIC, as was Applesoft (Apple ][) BASIC. Creative Computing's 10th
Anniversary of Microcomputing issue (1974) had a Genealogy of BASIC
that showed ALL microcomputer BASICs beign derived from Gates &
Allen's Altair BASIC, the original Microsoft product (though Bill &
Paul had not officially incorporated Microsoft yet -- indeed, they
were, I beleive, employees of MITS at the time). I can't speak
directly about the TI BASIC, but I was a Commodore user for years.
--
------- ======= ------- ======= ------- ======= ------- ======= ------- =======
uw-beaver!sumax!polari!lsh -- lsh@polari
Lee Hauser
If I pay for access, I don't have to disclaim ANYTHING!
Bill Gates' Altair BASIC (8k version) was actually the first piece of
pirated microcomputer software. Someone "borrowed" the paper tape of
the 8k interpreter (still full of bugs, by the way) and copied it on a
Teletype paper punch then returned it (this all happened at the first
West Coast Computer Faire, if I remember correctly). The hackers of
course corrected all the mistakes. You're right; even then Bill was
looking for $ and was upset about the theft. Something you have to
remember about Bill Gates and Paul Allen: they were rich kids to start
with. Bill's dad is a very senior partner in one of Seattle's bigger
law firms and Paul's dad did something prominent with libraries at the
University of Washington. They both attended a very exclusive Seattle
private school which had a computer, which they had full access to.
They started programming together in high school and were actually
independant contractors to the City of Seattle, for whom they wrote
software to analyze car-counter output. They did not, and never
claimed, to invent BASIC -- it's just that they did write the first,
and most successful, microcomputer BASIC interpreter.
From what I remember from Steven Levy's "Hackers" (or another related
source), Gates wrote the first draft of Altair BASIC on the plane trip
from Mass. to Albuquerqe -- or at least a substantial part of it.
Since it was written entirely in 8080 machine code (I've seen a copy
of a listing), it could not have been easily written on a Unix machine
or any other mini or mainframe (unless , of course, he also had access
to a cross-assembler, which is possible since the 8080 was used as a
controller). I've never heard the part about selling the tape (see an
earlier post by me re: pirating an early copy).
>Creative Computing's 10th
>Anniversary of Microcomputing issue (1974) had a Genealogy of BASIC
>that showed ALL microcomputer BASICs beign derived from Gates &
>Allen's Altair BASIC, the original Microsoft product
Sounds bogus to me - but of course that depends on how you
define "being derived from". I'm prepared to believe that "all"
microcomputer BASICs are *influenced* by Microsoft BASIC - MS BASIC
played the role of de facto standard until more powerful, structured
BASICS became popular in the mid 80's. So, in a rather weak sense,
most BASICs are "derived" from the Altair BASIC, just as C, Pascal,
Ada, Modula 2, Algol 68 etc, are derived from Algol 60. That doesn't
mean that the languages are very alike - C++ and Algol 68 don't resemble
each other, or Algol 60 very much! And it certainly *doesn't* mean that
Bill Gates invented BASIC (which was the original claim). As stated before,
the first BASIC was written when Gates was 10 years old.
The BASIC on my old Acorn Atom is rather distantly related to
Microsoft BASIC, as seen in the following code fragment:
40P.$12"DRAGON"''
75?#23=0;?#24=#96;H=0
80DIM EE14,XX14,YY14;F.C=0TO14;EEC=-1;N.;@=0
81XX0=115;XX1=115;YY0=115;YY1=115
82F.C=2TO14;XXC=115+RND%7;YYC=115+RND%7;N.
83DIMAA9,BB9,CC9,SS9,GG9
84F.C=0TO9;CCC=104+ABSRND%14;SSC=?(#8400+3*C);C?#90=0;N.
90P=#85F0;K=#2800;J=K+64
92U=20+RND%3;V=0;O=U;M=0
93?18=#86;G.7000
100P."PRESS CTRL"';DOS=RND;U.?#B001(=0
101T=550;X=115;Y=115;Z=99
102K=#2800;J=#2840
103P.$12
104A=!8;B=?12
890GOS.x
900k@=0;?18=#86;GOS.10
903IFM;?18=#86;GOS.540
904IFU<O A.U>5 U=U+1
907H=H+1;IN.'"command"$K;I=1;F.C=0TO14;IF EEC=0 XXC=X;YYC=Y
908N.
On lots of design issues, the designers have chosen to define their
language in a way totally unlike MS BASIC (like using dereferencing
operators instead of function calls to access memory; C=A?B
corresponds to C=PEEK (A+B) in MS BASIC).
By the way: Since the first commercial microcomputer (the Altair?)
was introduced in 1974, the anniverary issue of Creative Computing
must be from 1984, not 1974, mustn't it?
Magnus Olsson | \e+ /_
Dept. of Theoretical Physics | \ Z / q
University of Lund, Sweden | >----<
Internet: mag...@thep.lu.se | / \===== g
Bitnet: THEPMO@SELDC52 | /e- \q
--
THE TECHNOLOGY HOUSE: An idea whose time has come!
Call Burger King at 1-800-YES-1-800 and request a vegetarian entree!
Mass/ energy cannot be created or destroyed. It *can*, however, be wasted.
bou...@freezer.it.udel.edu
Ah, HARV-10, that brings back memories. The most amazing thing about
that machine is that it ran on the ARPANET at all. As I remember, it
was a KA-10 with a shockingly small amount of memory.
Unlike later models of PDP-10, the KA-10 didn't have any paging
hardware. Instead, it just had a pair of relocation and protection
registers that determined the base address for locations 000000 and
400000 in user mode. Kernel mode ran in unmapped physical memory.
This meant that the kernel and user programs had to fit within a
single 18-bit address space.
The KA was the home of "The big BLT" -- a memory shuffling operation
which had to take place to consolidate chunks of free space. If user
A had 10K, user B had 20K, and user C had 6K in a 40K space available
for users, then there would be 4K free if A, B, and C were all swapped
in. But if user B swapped out and user D wanted to get 24K, the only
way this could be done would be to move user C to consolidate the free
20K and 4K chunks. KA systems often spent a lot of time shuffling!
My Tenex and ITS friends will undoubtably point out that Tenex and ITS
KA's had pagers, but this was a third-party hardware add-on (BBN for
the former, Systems Concepts for the latter) and not something from
DEC.
I think that HARV-10 was the only PDP-10 without paging on the
ARPANET, unless one of the CMU machines (CMU-10B?) was a KA as well.
[The SAIL KA had a BBN pager.]
>Late one night I noticed Gates and co. working on the project. I told them
>it was against the rules, and they were fairly rude in return. I now wish
>that I had called the administration in at that point, but Harvard has a
>`gentlemen's tradition' that one need not use a hammer...
All too typical of encounters between hackers of the 60/70's
generation and computer geeks of the 80's. [I don't want to call
Gates a "hacker", nobody responsible for MeSs-DOS deserves the title.]
>Still later, they introduced cheap floppy drives.
the Disk ][s sure seem durable and will last forever... It sucks
that Apple never introduced interim higher density floppy drives that
work with both DOS 3.3 and ProDOS.. 140K sucks.. But of course, now I
have a GS and 800K drives.. I now honestly use my 2 5.25" drives
(1 genuine Disk ][ and one Disk ][ clone) as "bookends" for my CDs.. I
thought it would be kind of funny to use such expensive pieces of
equiptment for that purpose.. I only hook 'em up once in a while when I
get an itchin' to play Wings of Fury or some other great game that
hasn't been hacked to work on a 3.5" drive.. (Prince of Persia was!)
>Then, some idiot in marketing replaced the ROM debugger by a bunch of
Debugger? You don't mean the mini-assembler, do you?
The mini-assembler came back with the enhanced //e and has been
in all Apple IIs since..
>crappy code that might or might not boot the floppy when you switched on
>the machine or hit reset. This abomination was called Apple ][+ by the
>marketing droids and Apple ][- by folks who liked the real Apple ][.
You -dislike- the AutoStart ROM?!?! Oh yes, I want to be
plopped right in the monitor and have to type 6^P EVERY time I turn on
the computer, since booting the floppy is always what I want to do!
(major sarcasm)
>The other mistake of the ][- was that it only contained AppleSoft basic.
What, pray tell, are the advantaes of INTEGER over AppleSoft???
I never liked Integer much...
>Wozniak left Apple in disgust.
I -hope- this is a joke.. Wozniak was at Apple for long after
that, and I believe he is still paid by Apple as a "consultant" (he
was as of a year or two ago, even after he mainly quit)..
Unfortunately it seems even Woz has traitored out.. He drove the
golf cart that brought in the new MACS (uggggh!) at the last new product
announcement.. (I actually don't hate Macs.. I like Macs in some ways..
The Apple II, GS especially, and the Mac line could be GREAT compilimentary
product lines if Apple wised up.. To non computer people, the GS can be
introduced as a CHEAP, COLOR (great sound!) Mac, even though I personally
dislike that description)
Haven't really liked Jobs for years, since I found out he's the
one who stopped/majorly delayed advances in Apple // computers...
UNfortunately, his NeXT seems like the next computer I'll get if/when Apple
drops the II line and I find I want/need a new computer (those two
happenings certainly do not coincide). The "Mac/GS" GUI + UNIX is an
unbeatable combination!
>By now, Apple can't even spell ][ correctly, writing it // or something.
IIGS
>I'm beginning to feel old...
Are YOU still using a //?
Uh, a lot of us *are* writing publicly-available software, and doing
so for a living. However, we have to be sensitive to what our funding
organizations want us to write. There are often prohibitions on
developing freeware alternatives to software that "is commercially
available" (can't compete with the vultures you know), particularly in
government-funded projects.
As a result, often our efforts tend to be in more esoteric things that
have not yet hit the glamour pages -- the way display editors were in
the early 1970's. For example, my work is in distributed electronic
mail. I've developed an e-mail access library that makes it
relatively simple to write e-mail applications which seamlessly
support local and remote maildrops on almost any platform that
supports C (I've run at least the "test" application on Unix, NeXT,
Mac, DOS, and TOPS-20). This stuff is of quite a bit of interest to
people working on e-mail, but less to the "general community" unless
you are using a platform which has an extant mature application (e.g.
the NeXT) using it.
Similarly, a lot of the stuff considered great and wonderful today,
especially EMACS, was considered to be irrelevant and unimportant to
the world at large when it was developed in 1976.
Perhaps the problem is that many hackers, particularly older ones, are
only interested in development on the cutting edge and solving 1970's
problems over again in 1991 (the way the fame & profit market of today
does) isn't interesting to a lot of us. For example, writing a good
user interface for Unix (let's face it, Unix *is* gothic) -- we did
this sort of stuff on other OS's 20 years ago. It's a lot of work and
there's no challenge to it. It's more interesting to try to develop
an advanced environment (GNU EMACS is a start) so you don't have to
ever see the OS you are running under than to spend time writing a
pretty interface for a 1970 operating system (Unix *is* of drinking
age) that will probably be obsoleted in the not-too-distant future.
...I'm *really* tired of folks trying to reinvent
the hacker ethic, minus any significant hacking of their own. The hacker
ethic was sincere as long as everyone was actually contributing, but a lot
of the self- described "hackers" I meet today play Xtrek, run six sessions
of nethack in separate windows, edit the icons of their X environment and
bitch and moan. Code, people, code...
Those of us who ARE coding try to avoid spending too much time yakking it
up in newsgroups! (Some of us fail at this :-)
Furthermore, although I've never done any of the things you list (Xtrek,
nethack, edit icons, ... ok, well, I guess I've bitched and moaned, unless
you mean UNIX commands I've never heard of), I can guess that they're
roughly equivalent to the early 70s' adventure, Star Trek, bulletin
boards, electronic chat, setting one's own prompts, inventing neat command
abbreviations in one's "shell" (such as it was), and so on. That was
certainly a big part of my background, and without it I doubt I'd be
coding free (or any) software today.
I don't know about today, but when I was "cutting my teeth" on computers
by playing games and tinkering, most of the programs I used (including
DEC-10 BASIC) had source code available in some form or another.
Inevitably I'd want to look at it after playing or tinkering, and I learned
programming that way to a large extent -- the remainder coming from changing
existing code and, of course, writing new code.
Today, I'd be surprised if source code was available to the same extent for
programs most hackers (or potential hackers) find "interesting". The result
is that, once they get a bit bored or frustrated, they can't play with the
program's source code or at least look at it -- instead, they go on to the
next nifty program. Imagine if, in addition to being able to play with a
Nintendo, every child (adults included) who owned one could explore its
architecture and look at the source code for games, and further if they could
modify that code and see what happens! Few would take advantage of that
opportunity in any serious way, of course -- but those few might well become
the super-programmers of the future, and yet (due to perhaps being in
poverty-stricken or non-technological neighborhoods) we are going to lose
this potential.
A large part of why I'm writing free software for the FSF is to try and help
restore an environment to this industry that I found very conducive to
learning and exploration -- one where source code is usually available,
people are ready and willing to answer questions, nobody sues you for
improving "their" program, and so on. No, my Fortran compiler won't make
much progress in that direction, but maybe later on I'll get to help write
free end-user software and games and release them through the FSF like the
other FSF people (and other non-FSF but free-software vendors like yourself)
do.
So while I agree that self-proclaimed "hackers" shouldn't limit themselves
to hacking shell-like things and playing, but should also explore source
code, learn to change it and write new code, and generally learn not just
how things work but why they were made to work that way (including the
positive and negative aspects of history -- learning from bad examples
is still learning), I have to admit that I enjoyed this kind of playing
around, myself, for years, and often did it instead of writing code.
And, not everyone who likes to hack can or wants to become a programmer.
We shouldn't hassle them for that.
Finally, "hacking" itself is evolving upwards in the strata of the
machinery. In the very early days, certainly before my time, hacking
meant doing things with the machine hardware or at the machine-code
level. Later on, it meant hacking at assembled, then compiled, then
interpreted code (assembly to LISP), among other things (TECO, early
"shells", and such). Now I think it is legit to say it is a term that
can be applied to expertly navigating even higher-level things like
multiple networks via gateways, ftp, uucp, and such (things I really
don't know much about, even though I'm very comfortable with the '70s
level of "hacking"). I happen to think there still is a lot of
hobbyist-level hacking to be done at the assembly/compile/interpret
levels, even though I feel there isn't any left to do at the lower levels
(machine architectures) -- being best left to the "professionals" with
big bucks. But that doesn't mean there isn't a lot to learn and enjoy
with networks, multi-user games, and such. If someone really gets to
where they know that stuff well, they'll have to go somewhere to keep
learning -- and opening up the world of compilers and such is likely to
be their next step. Let's not discourage that.
--
James Craig Burley, Software Craftsperson bur...@ai.mit.edu
I have several non-Microsoft BASIC's that I use - the HP9845b has HP
BASIC, and I've used CBASIC under CP/M. Oh, and I doubt that my ZX-81's
BASIC has anything to do with Microsoft as well.
> uw-beaver!sumax!polari!lsh -- lsh@polari
> Lee Hauser
--
| b...@epmooch.UUCP (Ben Mesander) | "Cash is more important than |
| ben%serval...@uokmax.ecn.uoknor.edu | your mother." - Al Shugart, |
| !chinet!uokmax!servalan!epmooch!ben | CEO, Seagate Technologies |
Nobody will argue that not paging is preferable to paging, but a major
reason for demand paging is the cost of memory versus the cost of disks.
I wish all my computers had a big enough memory so that they never had to
page... but it's nice to be able to occasionally run a *really* bloated
job, or to still keep running when way too many people log in. For instance,
we have a 4MB Sun 3/60. Now if it wasn't for paging, that sucker would be
absolutely useless. (Well, not that it's *really* useful with paging,
either :-)
I guess this is kind of a stupid point, but just because you
didn't know it until recently you think it's not well known that MicroSoft
wrote it?
I admit, I'm probably using the opposite of that (because I have
known it for a long time I presume other people do), but I just DO think
that it's fairly well known..
Well how can we find out!? Get a buzillion dollar grant to ask
anyone that's ever heard of AppleSoft BASIC and see if they knew it was
programmed by MicroSoft.. Well, no, everyone that's PROGRAMMED in
AppleSoft.. Everyone that's heard of it skews the data since lots of
people who own other kinds of computers (other computers than the Apple II?!?!)
have probably heard of it but wouldn't know that MicroSoft wrote it.
Is this really true? I know on the DEC-10 system I used (a duel processor
KL-10) that we generally ran it without paging - though we enabled paging on
the newer releases of TOPS-10 (7.xxx) and I played around with it some. It's
true that paging was quite slow - esp because of the way TOPS-10 chose to
read the file in - page by page until it ran out of memory - TeX was a good
program to watch paging activity. However, it seems that the slowness was due
to this poor design in setting up the paging map rather than the paging
activity instead. I.e, (I know this isn't exactly paging) if it started the
program in the normal fashion and then paged out unneeded sections of the
program as it ran out of memory - or if the program had a header describing
what sections of the file to initially read in it could have been a lot faster.
I.e, what I'm saying is it seemed that the problem with paging on TOPS-10 and
other machines (vaxes) is that it's much faster to do one large BLOCK (TOPS-10
terminology) I/O operation then hundreds or thousands of small BLOCK I/O
operations. Just the cost of trapping to the kernel that many times (ignoring
the cost of I/O operations) is pretty bad under TOPS-10. I don't know - I
guess it would be interesting to break down the component cost of paging on a
sun or vax in terms of I/O cost, kernel trap cost, pager overhead cost and
so on... Bleh my words are all jumbled up - but I think most of you will
understand what I'm trying to say...
whatever in terms of the
then thousands of
Anecdote: When the Stanford Artificial Intelligence Laboratory sent
out requests for proposals for our first "large" computer in 1965,
we specified that the computer must be able to address at least
64K words. Stanford got two letters from manufacturers saying that
we had imposed this unnecessary requirement in order to stack the
bidding in favor of a particular supplier. Fortunately, the two
complaints disagreed about which was the favored supplier. At that
time D.E.C. and IBM were the two suppliers that could meet that
specification. On the basis of list prices I was expecting to choose
IBM, but D.E.C. made a big price concession on memory that permitted
us to afford a 64K memory for our PDP-6.
Our system had several innovations. We demanded that our printers
allow both upper and lower case, and we obtained made-to-order
video displays. Although it was our goal from the start, we didn't
succeed in getting a display system that would permit terminals in
offices (including secretaries' offices) until 1971. That system
is scheduled to be turned off on its 25th birthday next June. Its
last major upgrade was to a KL-10 processor in 1975.
>In article <15...@carol.fwi.uva.nl> h...@fwi.uva.nl (Hans Mulder) writes:
>>You are confused. Initially Apple ]['s came with Integer Basic, by Steve
> Yes I realize this.. I was talking about AppleSoft.
>>Still later, they introduced cheap floppy drives.
> the Disk ][s sure seem durable and will last forever... It sucks
>that Apple never introduced interim higher density floppy drives that
>work with both DOS 3.3 and ProDOS.. 140K sucks.. But of course, now I
hey, in germany 640KB drives became quite common, either with the IBS or erphi
controller. i have a erphi, real nice!
>>Then, some idiot in marketing replaced the ROM debugger by a bunch of
> Debugger? You don't mean the mini-assembler, do you?
> You -dislike- the AutoStart ROM?!?! Oh yes, I want to be
>plopped right in the monitor and have to type 6^P EVERY time I turn on
>the computer, since booting the floppy is always what I want to do!
>(major sarcasm)
hey again, i've got Don Lancaster's mods in my //e that lets me
have BOTH functionalities!
--
Heiko Blume <-+-> s...@scuzzy.in-berlin.de <-+-> (+49 30) 691 88 93
public source archive [HST V.42bis]:
scuzzy Any ACU,f 38400 6919520 gin:--gin: nuucp sword: nuucp
uucp scuzzy!/src/README /your/home
There were said to be six of them remaining in North America. Toward
the end, there were but two or three, and they were in a constant
rotation: one at the high school, the other(s) at Wang getting fixed.
We had a service contract, I guess. At any rate, wang eventually got
tired of these things (having one unit go up in smoke probably didn't
help), and just traded us 6 wang 2200 units for the thing to get out
from under.
The 3300 didn't have much of anything in rom; you had to load a
bootstrap through push-buttons in order to get it to read a tape with
the basic interpreter.
The basic interpreter also served as a time-sharing monitor; when it
came up, it asked you to allocate memory for each partition. That
would limit the size of the programs which you could run.
There were said to be other language tapes available for it, though
they were not time-sharing systems.
--
...!{bikini.cis.ufl.edu allegra uunet!cdin-1}!ki4pv!tanner
Jeez, maybe you've had bad luck, but I'd put Disk ][ drives on par
with HP calculators (I -did- have one of those die on me but in general they
seem to be unbreakable) and other really tough stuff.
>Slow, noisy, and junky are other adjectives that could be also applied.
Slow? You should have used Apple Pascal.. It used the Disk ][s as
fast as physically possible and it was pretty quick.
Noisy? Oh comon! You don't like the GRRRRRinding when you get an
I/O error or somesuch?! I never really minded the "chucka chucka chucka"
you hear upon bootup.. I guess you could almost call it "comforting"..
Hell, I even remember a great ol' Beagle Bros program (RIP the "good ol'"
Beagle Bros that were more fun) that made the Disk ][ sound like a
train... Cool..
> In article <1991Jan04.1...@ddsw1.MCS.COM> za...@ddsw1.MCS.COM (Sameer
> >In article <15...@carol.fwi.uva.nl> h...@fwi.uva.nl (Hans Mulder) writes:
> >>Still later, they introduced cheap floppy drives.
> > I think you mean inexpensive not cheap. . .Those things are still
> >running today.
>
> I'd call them cheap.
>
> I have never seen any disk drives that caused more trouble, were a fussy
> about disk quality (at 140K no less!) and were as horrible to use as the
> original Apple II drives.
>
> Slow, noisy, and junky are other adjectives that could be also applied.
I dunno -- I've seen an apple ][ diskette removed from its jacket, thrown
around the room, droppped on the floor, picked up, wiped on a woolen
jersey, put back in its jacket, stuck in the drive, and work.
Now the Unidisk (the later model apple // drive, sold with the later
apple//e etc) was a slightly different story; it's main problem was that
you'd put a diskette in the drive and be greeted with a God-awful
graunching sound followed by the dreaded I/O ERROR as soon as you did
anything with it. The answer was to open the drive door, wiggle the
dieskette slightly, close the door and try again. Most frustrating. I
don't recall the disk ][ ever giving such problems.
I liked the fact you could use *any* diskette in the disk ][; I have
hard-sectored disks from an old NorthStar system dating from a decade
ago that were formatted as apple ][ disks in '85 -- they were functioning
fine last time I tried them.
Don Stokes, ZL2TNM / / d...@zl2tnm.gp.co.nz (home)
Systems Programmer /GP/ GP PRINT LIMITED Wellington, d...@gp.co.nz (work)
__________________/ / ---------------- New_Zealand__________________________
In alt.folklore.computers, article <throoph....@jacobs.CS.ORST.EDU>,
thr...@jacobs.CS.ORST.EDU (Henry Throop) writes:
> Microsoft wrote not only the BASIC, but the rest of the ROM as well,
> including a word processor, data base, telcom, etc. It's pretty bug
> free, so I doubt it was just a weekend hack.
I wonder that there are the two words "Suzuki" and "Hayashi" when I peek()
the ROM of my Tandy 100 at memory location 69000 (dec.) and up. I have
been speculating about this: Perhaps, the software for the 100 was developed
in Japan, so some clever Japanese programmers could have been memorizing the
origin of their software with help of these two Japanese expressions?
So, where are the roots of the Tandy 100 ROM with its 8K-BASIC, TEXT,
TELCOM, ADDRSS and SCHEDL? (Uh, these short-term names are burned into
my mind - the Tandy 100 was my first computer. I loved it. ;-)
--
# Joachim Astel, Wiesenweg 4, D-W-8566 Leinburg, FR-Germany # Are we not #
# dowj...@jattmp.ccs.imp.com + dowj...@jattmp.nbg.sub.org # men? -- We #
# ac...@dl9ncq.ampr.org [44.130.60.20] + VERBAL: Hey Achim! # are DEVO!! #
TOPS-10 should not be confused with the *other* manufacturer-supplied
operating system, TOPS-20, which was intrinsicly demand-paged (written
with it in mind). Like Unix, WAITS (JMC's old system) and TOPS-10
were not designed to take advantage of demand paging and thus never
used it as effectively as it might.
TeX killed a TOPS-10 system because it was developed on WAITS (on a
CPU with had enough main memory -- 10MB in 1978) and TOPS-20 (which
had a good enough demand pager combined with great efforts to share
all memory pages -- including data pages until they were written
into).
JMC is right that demand paging is bad if it is used to compensate for
inadequate main memory. A demand-paged system collapses in much worse
ways than a purely swapping system does, if only because the swapping
system provides greater constraints on memory use.
I disagree when demand paging is used instead to identify a small area
that is needed (working set) in memory at the time and allow the
remainder to be out of memory.
The same thing can be done by a program which does sophisticated
memory segment management; the disadvantage of such programs is that
they have less information available to them than the operating system
and thus often fail to scale for maximum efficiency in changing
environments (such as changing the segment size to match the amount of
main memory that can be reasonably held on to).
One obvious example is file/memory mapping. You can do data base
operations on a memory mapped file (with write-through to disc
provided by the operating system) and have shared access through
sharable writable pages. How much of the database is actually in main
memory can be dynamically selected by the operating system based on
use and available memory. A database system that does its own
segmentation would have a harder time using the disc as efficiently.
`The big BLT' (must have been the `moby' BLT at MIT-AI?) is local
jargon for what the operating systems crowd calls `shuffling'.
John McCarthy brings up the old question of the desirability of
paging. Several good arguments have been raised. I'll summarize and
add a few others:
1. Paging lets you run programs that are just a little too big without
modification. We all know ways of improving programs' memory usage or
paging data `by hand', but do we have the time (and the access to
source) to do it?
2. Paging (or segmentation) lets you share pieces of program, data,
and communications areas while controlling access at a reasonable
granularity. This doesn't require demand paging, though. And sharing
is particularly valuable on multi-user machines. Note also that the
page fault mechanism can be used to support rather sophisticated kinds
of data sharing (page virtually distributed over multiple machines).
3. Paging (or segmentation) allows non-contiguous allocation of
address space by applications (e.g. multiple growing stacks). Of
course, there are other ways to implement multiple growing stacks
within a contiguous address space.
4. Some applications are well-suited to demand paging, others aren't.
Lisp programs' data (although far from random) has less locality of
reference than other programs. The key concept is working set size.
Some applications' working set size is 90% of total memory usage,
others' is 25%. And it varies. The problem in implementation is that
it's very hard to determine the working set.
5. These days, huger and huger libraries tend to get linked into
programs. I would guess that demand paging helps deal with this.
(Although I would certainly prefer that the libraries be smaller and
certainly shared.)
6. Paging simplifies the task of the swapper and probably makes it
somewhat more efficient. (No shuffling etc.)
The primary argument against paging is the classic RISC argument: it's
cheaper to provide similar functionality in software, and you only pay
for it when you need it. Maybe. But what would the cost be in
restructuring programs, compilers, etc.? I don't know. I'd be
interested to see a good analysis.
Thanks in advance,
Gary
>I wonder that there are the two words "Suzuki" and "Hayashi" when I peek()
>the ROM of my Tandy 100 at memory location 69000 (dec.) and up. I have
>been speculating about this: Perhaps, the software for the 100 was developed
>in Japan, so some clever Japanese programmers could have been memorizing the
>origin of their software with help of these two Japanese expressions?
I'm not sure about actually who wrote it where, but at least Microsoft
I believe does own the copyright to it. Seems to me the Model 100
and the NEC 6201 (?) are basically the same computer in different
cases. The internal architecture is the same (I think they were both
developed by NEC); I don't know about the rest of the firmware, but
the BASIC at least is slightly different between the two models. There
was a story about the relationship of the two in an old issue of
Creative Computing (great magazine, RIP) which I can't find right now.
># Joachim Astel, Wiesenweg 4, D-W-8566 Leinburg, FR-Germany # Are we not #
># dowj...@jattmp.ccs.imp.com + dowj...@jattmp.nbg.sub.org # men? -- We #
># ac...@dl9ncq.ampr.org [44.130.60.20] + VERBAL: Hey Achim! # are DEVO!! #
--
---
Henry Throop
thr...@jacobs.cs.orst.edu
James Cook
--
| James Cook .sig v0.1a |
| jnc...@ucsd.edu |
| The spores, Dana, beware the spores! --Aurora Sterling |
>I wonder that there are the two words "Suzuki" and "Hayashi" when I peek()
>the ROM of my Tandy 100 at memory location 69000 (dec.) and up. I have
>been speculating about this: Perhaps, the software for the 100 was developed
>in Japan, so some clever Japanese programmers could have been memorizing the
>origin of their software with help of these two Japanese expressions?
The software was written in Japan by Microsoft. I worked at Tandy
during the time that the 100 was released and I recall seeing in a
source code listing (of the entire ROM) various references to
Microsoft Japan. The code was written in assembler and cross assembled
from a VAX
>So, where are the roots of the Tandy 100 ROM with its 8K-BASIC, TEXT,
>TELCOM, ADDRSS and SCHEDL? (Uh, these short-term names are burned into
>my mind - the Tandy 100 was my first computer. I loved it. ;-)
It would have been even better if the modem worked to CCITT standards
instead of Bell!
--
Geoff Steer ge...@brahman.syd.bull.oz.au
Bull HN Information Systems Australia P/L AS02-031
124 Walker Street, NORTH SYDNEY Tel : 61 2 923 9834
AUSTRALIA 2060
[stuff deleted]
>>Then, some idiot in marketing replaced the ROM debugger by a bunch of
> Debugger? You don't mean the mini-assembler, do you?
No, I meant the S and T commands in the Apple ][ ROM. They were thrown
out to make room for the autostart code. The same "upgrade" replaced
the 16-bit multiply and divide routines by code that clears the screen
and says "APPLE ][" upon startup. Nice, but mot nearly as useful as
MUL and DIV.
> You -dislike- the AutoStart ROM?!?! Oh yes, I want to be
>plopped right in the monitor and have to type 6^P EVERY time I turn on
>the computer, since booting the floppy is always what I want to do!
>(major sarcasm)
Yes, I dislike the autostart ROM. For one thing, I prefer having the S
and T monitor commands available. Secondly, it reboots when I want to
be plopped into monitor while it jumps into DOS when DOS is overwritten
and I really want to reboot. I just hate to power cycle the machine
whenever the autostart ROM thinks DOS is still okay and it isn't.
Thirdly, occasionally I don't want to boot a floppy when I turn the
machine on. (And fourthly, I use 6^K, just to show off :-)
Have a nice day,
Hans Mulder h...@fwi.uva.nl
>I was there at the time. It was HARV-10, host 9 on the ARPAnet. There was a
>strict no-personal-use, no-commercial-use policy in effect. The machine and
>all accounts on it were funded either with university or government contract
>money.
>Late one night I noticed Gates and co. working on the project. I told them
>it was against the rules, and they were fairly rude in return. I now wish
>that I had called the administration in at that point, but Harvard has a
>`gentlemen's tradition' that one need not use a hammer...
> geoff steckel (gw...@wjh12.harvard.EDU)
Sounds like sour grapes to me, dude.
Could you imagine Woz's mom calling out to the garage:
"You boys stop that foolishness right now and get in the house!" :-) :-) :-)
moe
(Who helps Dan Quayle's kids with their homework?)
I assume that Ward is joking, but just in case...
Basic was "invented" (i.e. is credited to) John Kemeny and Tom Kurtz of
Dartmouth. According to Tom's paper in _History of Programming
Languages_, the first Basic program ran (on an IBM 701 at Dartmouth) on
May 1, 1964, at around 4am.
--
--Dick Wexelblat (r...@ida.org) 703 845 6601
My computer always does exactly what I tell it to do
but sometimes I have trouble finding out what it was
that I told it to do.
Basic was (and probably still is) NOT a code-and-go compiler but a
true interpreter. And the caret for exponentiation came directly from
the Algol-58 up-arrow. (Algol-58 used both up and down arrows as a
superscript shift: B{up}2{down}.)
By the way, I have never seen an adequate definition of an interpreter
-- or at least one that remains meaningful when immediately followed by
a definition of a compiler. The most common (wrong) definition tries
to tell you that an interpreter compiles a program a line at a time,
executing each line after it is translated. now isn't that silly?
| Basic was (and probably still is) NOT a code-and-go compiler but a
| true interpreter. And the caret for exponentiation came directly from
| the Algol-58 up-arrow. (Algol-58 used both up and down arrows as a
| superscript shift: B{up}2{down}.)
I could have sworn that my copy of HOPL says the Dartmouth BASIC was a
true compiler (ie, typing RUN caused the compiler to compile and link
your program behind your back). It was the later minicomputer basics
that were interrpreters.
| By the way, I have never seen an adequate definition of an interpreter
| -- or at least one that remains meaningful when immediately followed by
| a definition of a compiler. The most common (wrong) definition tries
| to tell you that an interpreter compiles a program a line at a time,
| executing each line after it is translated. now isn't that silly?
Of with microcode the definition gets even fuzzier, since the
'computer' is another computer that is interpretting the common
instruction set.
--
Michael Meissner email: meis...@osf.org phone: 617-621-8861
Open Software Foundation, 11 Cambridge Center, Cambridge, MA, 02142
Considering the flames and intolerance, shouldn't USENET be spelled ABUSENET?
Pretty much, athough that's generally close to how shells do things. To
my mind, there's a big difference between an interpreter that behaves as
shells do: read, translate, and execute each line one at a time, versus
things like awk and perl, which read the whole program, build a parse
tree, then execute the parse tree.
I guess for want of a better name we could call these class I and class II
interpreters respectively. I've seen Pascal interpreters that were
definitely class II, and BASIC interpreters that sure seemed to be of
class I. On the other hand, you had the RSTS/E BASIC-PLUS interpreter
that you could "compile" into a .BAC form, by which I infer that at least
in that mode it was acting in a class II fashion.
Anybody got some good definitions for these beasts? How about examples
of other interpreters that are either class I or class II or neither?
--tom
From a user perspective (here, user=programmer), the important distinction is
whether there is a perceivably larger response time when starting to run a
piece of code that has just been changed. Also, whether there is a separate
"compile" step between "edit" and "execute".
Interpreters also allow you to change the source code while the program is
running (which I admit to sometimes doing even though it is not really good
software engineering practice).
If there's any implementation of Basic that can claim to define the
language, that honor should go to the version written at Dartmouth
(Bill Gates notwithstanding).
From 1968 (when I worked on the Basic compiler) to today, Dartmouth's
Basic has been COMPILED, not interpreted. The compilers have generally
been written for speed rather than optimization. Users only have to
type the single command "run" to invoke compilation, loading, and
execution; for small student programs, syntax errors are printed
almost immediately.
Tom Kurtz has said:
"BASIC at Dartmouth has never been interpreted. NEVER!"
He's right.
--
Andy Behrens
an...@coat.com
uucp: {uunet,rutgers}!dartvax!coat.com!andyb
RFD 1, Box 116, East Thetford, Vt. 05043 (802) 649-1258
Burlington Coat, PO Box 729, Lebanon, N.H. 03766 (603) 448-5000
Ross Alford
zl...@marlin.jcu.edu.au
--
My Uncle Percy, for instance, I was told as a child, sang like a canary. I
never actually heard him at his song, nor did I ever meet him: and when I asked
where he lived, my mother rolled up her lips and said: 'At His Majesty's
Pleasure.' Thus it was that I boasted about my uncle, the palace minstral.
Well, most BASIC interpreters that I've seen behave as a curious hybrid
of classes 1 & 2, in that they tokenize their input as they receive it,
then execute the tokenized form. They don't keep the untokenized data
around, but regenerate it on execution of a LIST (or equivalent) command.
Comments, variable names etc are kept as clear text, and parsed around at
run-time.
RSTS/E BASIC-PLUS is a little differrent in that while it tokenizes on
input, it keeps the original code somemplace else, so that comments are
not stored in the tokenized code, constants are referred to and don't jam
up the code area (needing to be parsed at run-time) etc. Thus, OLDing a
.BAS file in BASIC-PLUS isn't too quick, but COMPILEing it is fast, being
pretty much a straight dump of the tokenized form. You can decompile
BASIC-PLUS code, but you don't get the comments. I've had to do this in
real code -- once got taken to a customer site, given a change list, a
glass-tty type terminal (ie no screen editing), a lineprinter, no source
and three hours to complete the changes..... (did it too; the $3,000,000
discrepancy reported the following day turned out to be someone else's
fault)
Don Stokes, ZL2TNM / / d...@zl2tnm.gp.co.nz (home)
Systems Programmer /GP/ GP PRINT LIMITED Wellington, d...@gp.co.nz (work)
__________________/ / ---------------- New_Zealand_____________+64_4_737_320
In article <1991Jan9.1...@IDA.ORG> r...@IDA.ORG (Richard Wexelblat)
writes:
| By the way, I have never seen an adequate definition of an interpreter
| -- or at least one that remains meaningful when immediately followed by
| a definition of a compiler.
Of with microcode the definition gets even fuzzier, since the
'computer' is another computer that is interpretting the common
instruction set.
The distinction is meaningless since microcode (or instructions) are
ultimately interpreted by hardware. For any given computation or
expression there must always be operations which canot be expressed in
the system's language (proof by example is straightforward: consider
IO, or function application).
For an interesting expansion of this and some interesting consequences
trot across the street and get a copy of Brian Smith's PhD thesis
(Advisor Minsky, though oddly enough it was I think published as an
LCS memo; year: 1978).
There's still work being done exploring the envelope of this issue.
I'm thinking especially of Danvy (now at Stanford I think) and Wand
and Friedman at Indiana.
One of the distinguishing questions between interpreters and compilers is
"Can you 'uncompile' it back to source code identical to the original?"
This is possible with BASIC+, but not with various truly compiled BASICs.
I believe the .BAC form of a BASIC+ program simply has all the keywords
transformed into single byte tokens that are much faster to process. It
may also have pre-computed pointers for any goto's and gosubs to speed
things up, but it's always possible to reverse the process and get your
source code back, comments and all.
Compilers, on the other hand, generate machine code or, at least, an
intermediate language that can't be processed to yield the original
source. (UCSD Pascal comes to mind. It "compiles" to an intermediate form
also used by various other UCSD languages. That form is then
interpreted).
--
The Polymath (aka: Jerry Hollombe, M.A., CDP, aka: holl...@ttidca.tti.com)
Head Robot Wrangler at Citicorp(+)TTI Illegitimis non
3100 Ocean Park Blvd. (213) 450-9111, x2483 Carborundum
Santa Monica, CA 90405 {csun | philabs | psivax}!ttidca!hollombe
I'll add a third class -- the 4GL p-code interpreter. This is a machine that
executes a higher level of object code than is generated by conventional
compilers -- namely machine code. Essentially it is a machine that conforms to
an application model, and understands the "compiled" 4GL code that conforms to
this model, and executes it.
In this case it has nothing to do with the process of edit/compile/run, but
rather it is it is a more efficient way of implementing higher level a
programming than 3GL technology allows.
--
David Harrington internet: d...@eire.unify.COM
Unify Corporation ...!{csusac,pyramid}!unify!eire!dgh
3870 Rosin Court voice: +1 916 920-9092
Sacramento, CA 95834 fax: +1 916 921-5340
> From the keyboard of r...@IDA.ORG.UUCP (Richard Wexelblat):
> :By the way, I have never seen an adequate definition of an interpreter
> :-- or at least one that remains meaningful when immediately followed by
> :a definition of a compiler. The most common (wrong) definition tries
> :to tell you that an interpreter compiles a program a line at a time,
> :executing each line after it is translated. now isn't that silly?
>
> I guess for want of a better name we could call these class I and class II
> interpreters respectively. I've seen Pascal interpreters that were
> definitely class II, and BASIC interpreters that sure seemed to be of
> class I. On the other hand, you had the RSTS/E BASIC-PLUS interpreter
> that you could "compile" into a .BAC form, by which I infer that at least
> in that mode it was acting in a class II fashion.
>
> Anybody got some good definitions for these beasts? How about examples
> of other interpreters that are either class I or class II or neither?
>
> --tom
What about a Forth compiler? It's a cross between class I (it can accept
and interpret one line) and class II (when you define a new function
(called a 'word' in Forth systems to really confuse things) and compile it
into the system).
Maybe the classification should be
Class I - interpret one line
Class II - interpret one line or compile multiple lines
Class III - read whole program, build parse tree, interpret parse
tree.
-spc (.sig under construction ... please wear your hardhat)
Saying "BASIC is..." is a little like saying "Truth is...";
whose truth are you talking about? And whose BASIC? Dartmouth
BASIC has always been (at least up until 1987 or so; I'd be
surprised if things had changed after that) a code-and-go compiler.
To create a BASIC program under DTSS (the Dartmouth TimeSharing
System) in 1977, you typed:
NEW
10 code code code...
....
40 end
You then typed RUN, and the program was silently compiled,
loaded, and executed. If there were syntax errors, the
compiler pointed them out and then stopped executing.
The line-number editor cited above was part of the operating
system, not part of the compiler.
To the best of my knowledge, there was never any BASIC
interpreter available at Dartmouth. The original Kemeny-Kurtz
masterpiece was a compiler.
Betsy Perry
Dartmouth '81
Betsy Perry bet...@apollo.hp.com
Apollo Division, Hewlett-Packard, Inc.
(her opinion doesn't matter, matter, matter, matter...)
No no no! "Who helps Dan Quayle with *his* homework?"
reb
--
*-=#= Phydeaux =#=-* r...@ingres.com reb%ingre...@lll-winken.llnl.GOV
ICBM: 40.55N 74.11W h:558 W.Wellington #3R Chicago, IL 60057 312-549-8365
Taking a trip by air? Next time ask to be seated in the "Comedy" section.
Kurtz says in HOPL, p 521:
"A final example is that the user deals directly only with his (sic) BASIC
program. He (sic) need not even know that things such as 'object code' exist.
The user could compile (by typing RUN), receive error messages, and
recompile, all within seconds."
He goes on to say on p 522:
"While its implementation is not strictly part of the language, it is
important to realize that Dartmouth BASIC was _always_ intended to be
compiled. ...
Despite the fact that both the Dartmouth and the General Electric
implementations use compilers, BASIC is widely believed to be an
interpretive language. Perhaps the reason is that most minicomputer
implemementations of BASIC use interpreters..."
spl (the p stands for
pedantic)
--
Steve Lamont, SciViGuy -- (408) 646-2572 -- a guest at network.ucsd.edu --
NPS Confuser Center / Code 51 / Naval Postgraduate School / Monterey, CA 93943
"... most programmers don't even bother going to the metal on machines where
the metal is painful and there's no light to see by..." -J. Eric Townsend
> Date: 9 Jan 91 18:03:17 GMT
> From: meis...@osf.org (Michael Meissner)
> In article <1991Jan9.1...@IDA.ORG> r...@IDA.ORG (Richard Wexelblat)
> writes:
> | By the way, I have never seen an adequate definition of an interpreter
> | -- or at least one that remains meaningful when immediately followed by
> | a definition of a compiler.
The definition of interpreters and compilers are meaningless unless
you have a definition of "language". One definition is that a language
L is a function from programs to partial functions:
L : Program -> (Data --> Data)
If the Program domain is embedded in the Data domain, L is a partial
function:
L : Data --> (Data --> Data)
Running an L-program p with data d is written as L p d, using the
usual notation for curried application. We will assume that pairs of
data can be represented as a single data: <d1,d2> is in Data if d1,d2
are in Data.
An interpreter written in L for another language M is an L-program int
such that:
L int <p,d> = M p d
for all M-programs p and all data d. A compiler from M to L written in
N is an N-program comp such that:
L (N comp p) d = M p d
for all M-programs p and all data d.
> Of with microcode the definition gets even fuzzier, since the
> 'computer' is another computer that is interpreting the common
> instruction set.
The definitions hold regardless of how to target language (L in the
above) is implemented. L can be interpreted by an underlying
interpreter, it can be further compiled into another language or it
can be executed "directly" in hardware, whatever that means.
>For an interesting expansion of this and some interesting consequences
>trot across the street and get a copy of Brian Smith's PhD thesis
>(Advisor Minsky, though oddly enough it was I think published as an
>LCS memo; year: 1978).
>There's still work being done exploring the envelope of this issue.
>I'm thinking especially of Danvy (now at Stanford I think) and Wand
>and Friedman at Indiana.
Olivier Danvy is now at Kansas State University.
Torben Mogensen (tor...@diku.dk)
>To
>my mind, there's a big difference between an interpreter that behaves as
>shells do: read, translate, and execute each line one at a time, versus
>things like awk and perl, which read the whole program, build a parse
>tree, then execute the parse tree.
>I guess for want of a better name we could call these class I and class II
>interpreters respectively. I've seen Pascal interpreters that were
>definitely class II, and BASIC interpreters that sure seemed to be of
>class I. On the other hand, you had the RSTS/E BASIC-PLUS interpreter
>that you could "compile" into a .BAC form, by which I infer that at least
>in that mode it was acting in a class II fashion.
>Anybody got some good definitions for these beasts? How about examples
>of other interpreters that are either class I or class II or neither?
What about APL\360? It starts by lexing the code (either an entire
function or one line of input), then executes it one symbol at a time.
APL doesn't even notice such things as unbalanced parentheses until it
has finished executing the line and the unmatched paren is still on
the execution stack.
So, in terms of "building a parse tree", it never does that! In terms
of lexical analysis, it's type II, in terms of execution, type 0.
Seth se...@fid.morgan.com
some compilers actually do do this by, in effect, preserving the runtime
environment and invoking the compiler from within execution. I remember
when Dewer's SPITBOL first did this for SNOBOL, many of us at BTL were
just blown away!
--
--Dick Wexelblat (r...@ida.org) 703 845 6601
HOPL II is coming!!!!
Well, most BASIC interpreters that I've seen behave as a curious hybrid
of classes 1 & 2, in that they tokenize their input as they receive it,
then execute the tokenized form. They don't keep the untokenized data
around, but regenerate it on execution of a LIST (or equivalent) command.
Comments, variable names etc are kept as clear text, and parsed around at
run-time.
C-64 Basic was like that; each BASIC keyword had a one-byte token associated
with it, and when you hit CR, the line was tokenised. It was done because
38,911 bytes of free memory wasn't enough to store programs in plain-text.
This meant, of course, that uploading C-64 BASIC to be run on another machine
wasn't as simple as just uploading the saved file ...
Aaah the good-old-days. Good grief, I'm 17 and suffering from nostalgia.
Please someone start a "I remember the Cyberdeck 370 neural networking
hypercard assembler generating spreadsheet macro language I wrote by
twiddling bits with my John Thomas while running the machine off 4096
parallel lemons during a power cut back in the summer of '43. We didn't
have WIMPs or GUIs then, and IBM stood for Idaho Buick Marketers, but we
did it for the fun ..." thread :)
Nat.
--
[ de...@comp.vuw.ac.nz aka Black...@st1.vuw.ac.nz aka Nathan Torkington ]
[ "Graeme Lee ... a condom on the penis of progress" - Bob Jones ]
[ This is not an official communication of Victoria University, Wellington. ]
Different interpreters approach the problem differently. I fairly
rigorously studied the published commented disassembly of the old
Microsoft BASIC interpreter in the ROM's of the TRS-80 Model 3 some
years ago. It:
tokenizes the keywords of the BASIC language from the line editor
as you type in the code. Each of the keywords in the input is replaced
by a token (number) into a table of routines which will handle the
function of the keyword at runtime. The rest of the line is left alone.
Later versions of the interpreter also convert any ASCII numbers in the
line to binary, but this one didn't.
At run time, the tokenized source is scanned. When the scanner
enounters a keyword, it indexes into the table of handler routines
on the token. The rest of the untokenized input line is passed to the
handler routine as a "parameter" string. Each handler routine is
responsible for knowing the proper syntax of what it is passed.
I'm not an expert on compiler jargon, but it appears to me from
this that the interpreter *never* compiles anything, just parses and
tokenizes it...
It's been most of a decade since I looked that this, so that may
not be *totally* accurate (I'm sure someone will correct me where
it's wrong), but you get the idea. From this you should be able to
develop a definition of (at least the Microsoft) intepreter ;-) =V=
--
Vick De Giorgio - vic...@vicstoy.UUCP
UUCP - uunet!tarpit!bilver!vicstoy!vickde
- The Philosopher's Stone Unix BBS, Orlando FL
- (407) 299-3661 1200/2400 24 hours 8N1
Then there are those systems like Prime Information and uniVerse that have
true compilers that emit object code for a machine that just happens to
not exist as hardware (but could) and is instead implemented in software
(with registers, condition codes, pc, stack pointer, interupts etc.)
Actually, the original Pick OS machines, *DID* exist as hardware and became
soft machines later.
--
Tom Rauschenbach ((n < 0)?(-n):(0));
Vmark Software, Inc.
..uunet!merk!uvmark!tom
My personal definition is that a compiler has at some point two versions
of the program, one for human consumption and one for machine consumption,
while an interpreter only has one version.
Thus, the old Microsoft BASIC was an interpreter because it maintained
one version of the file (not optimal for either computer or human
consumption, BTW). A language implementation that scanned the file,
created a syntax tree, and executed that would be a compiler of a
peculiar form, since it has the human-readable source and the
computer-readable syntax tree. Forth is a compiler, since it
converts the expressions into another form (note the possible confusion
since Forth can compile and run lines from the keyboard). If a
BASIC were to operate much like Microsoft, but keep (say) a "trimmed"
version somewhere (strip off comments, include table of line pointers)
I would call it a compiler, and a bad one.
DHT
(about the Tandy 100)
>It would have been even better if the modem worked to CCITT standards
>instead of Bell!
I have the General Service Manual for the Olivetti M10 (which is a
model 100 in a new case). According to the manual, the M10 - and probably
the Tandy 100, too - uses a MC14412 modem chip with pin 14 ("TYPE")
pulled up to VDD. This selects the U.S. operational frequencies for both
sending and receiving. It should be quite simple to switch it to CCITT
frequencies by cutting off and grounding the TYPE input.
Unfortunately, both Olivetti and Tandy had to remove all the modem hard-
and software of the M10/model 100 in order to get the German P.T.T's
approval. Therefore I cannot do this on my own M10 :-{. I had to use
an external Tandy accousic coupler, which was nearly as big as the whole
computer.
By the way: my M10 runs since I bought it six years (or more? I forgot)
ago. I never had to perform a reset / cold start in order to revive
a frozen machine or such. The first thing I wrote for the M10 was a
little file transfer utility which dumped all the text files to my
CP/M machine, because I did not trust the M10. I never really needed
the backup - there is still one file on the M10, which I typed in shortly
after I bought the machine, and which resides there, since. I am
impressed.
Wolfgang Strobl
#include <std.disclaimer.hpp>
No, sorry. Comments and other syntactic niceties are removed from
BASIC-PLUS .BAC files. All you get are the keywords in tokenized form,
variables, their names present but in a separate part of the file,
constants likewise. Spacing and indenting go out the window too, as do
line breaks between multiple statements. It makes for quite impressive
execution speed.
The behaviour you describe is true of MBASIC-derived microcomputer
BASICs (Applesoft, GWBASIC/BASICA, BASIC-80, TRS-80 Level 2 BASIC etc).
Incidentally, TRS-80 Level 1 BASIC didn't tokenize -- it interpreted
each line at run-time. To use less of the 4K memory in the original
Trash and to speed things up, you had to use a dreadful "shorthand", eg
"P." for "PRINT", with no extra spaces, making for completely unreadable
programs....
Don Stokes, ZL2TNM / / d...@zl2tnm.gp.co.nz (home)
Systems Programmer /GP/ GP PRINT LIMITED Wellington, d...@gp.co.nz (work)
__________________/ / ---------------- New_Zealand_____________+64_4_737_320
Any given program, when running, is obsolete.
I think that Integer BASIC was written by Wozniak. Applesoft BASIC is
definitely a Microsoft BASIC. Maybe the royalty problems were with Applesoft.
When I wanted to learn BASIC, someone borrowed me a few Apple BASIC
books. I didn't realize that there were two different languages and
since I didn't have a computer to experiment with, I ended up writing
some pretty weird programs (handwritten on paper). In Integer BASIC,
strings were 1-dimensional arrays of char (hmmm... sounds familiar) and
in Applesoft, you had the familiar Microsoft MID$, LEFT$, RIGHT$. I
tried writing a Master Mind game, but the differences in string
handling really confused me.
____________________________________________________________________________
/ Juri Munkki / Helsinki University of Technology / Wind / Project /
/ jmu...@hut.fi / Computing Center Macintosh Support / Surf / STORM /
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Maybe Harvard or the US government should charge Microsoft
system charges PLUS interest. After all, technically Mr. Gates
did ILLEGALLY use the system. My old school would have
thrown you out and charged you under our state's computer crime
laws if someone pulled a stunt like that. I wouldn't like
to have someone become a billionare using MY tax dollars and
neither me or the state get any money from the project.
And by the way, Woz wouldn't be using state or federal funding illegally
if he was working in his parents garage...
Unfortunately the time limit for prosecution has probably run out. B^(.
-Rob
Speaking for self, not company.
I bow to superior memory. It's been 10+ years since I last wrestled with
BASIC+. (I don't miss it one bit, either). (-:
The definitions that I would use are:
compiler: a program that takes as input an input language definition
(most often built into the compiler, but not always), an output
language definition (again, usually built in), and a program
specified in the input language; using the definition of the
input language, translates the input program into a
semantically-identical program in the output language.
interpreter: a program that takes as input an input language definition
(most often built into the interpreter, etc), a definition of
semantic actions to perform on the host computing architecture
(again, usually built in), and a program specified in the
input language; using the definition of the input language,
perform the semantic actions as defined for each statement
of the input program.
That seemed a lot simpler when I though it up.
(any similarities between names of authors cited in this post, and that of the
author are purely coincidental :->)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
David Wexelblat | dw...@mtgzz.att.com | I asked her her name.
AT&T Bell Laboratories | ...!att!mtgzz!dwex | She said her name was
200 Laurel Ave - 4B-421 | | 'Maybe'
Middletown, NJ 07748 | (201) 957-5871 | --Damn Yankees
Example: If a music student writes a top-40 hit, where he could not have
done it without the use use of university-owned pianos in university-
owned practice rooms, the university has no special rights because those
pianos and practice rooms are routinely available to all music students.
Example: If an English professor writes a best-selling novel making use
of a university-owned typewriter and does much of the writing in his
university-owned office, the university has no special rights. (This
actually happened here! The book in question was Rambo.)
Example: If a computer science grad student develops software on a
university-owned workstation, he is free to sell it because such
workstations are routinely available to all computer science students.
Note that the workstation is probably not worth noticably more than many
of the better university-owned pianos.
Everything changes if a research grant is involved. Then, the work was
not supported by "routinely available resources" and the university has
a stake. Also, if I, as a computer science professor, negociate for the
use of a piano, or if a music professor negociates for access to a
computer science workstation, the university has a stake because those
facilities are not routinely available to the respective faculty in
question.
Doug Jones
jo...@herky.cs.uiowa.edu
These don't seem different enough to be distinguished. What about
virtual machines and p-code compilers/interpreters? Was USCD Pascal
one or the other? I seem to be able to argue both ways using these
definitions.
--tom
--
"Hey, did you hear Stallman has replaced /vmunix with /vmunix.el? Now
he can finally have the whole O/S built-in to his editor like he
always wanted!" --me (Tom Christiansen <tch...@convex.com>)
> Maybe Harvard or the US government should charge Microsoft
> system charges PLUS interest.
Well, let's see now. Assume that they spent a total of 5,000 hours
logged on to the computer (I'm intentionally making a very
conservative (i.e. high) estimate). At the time, the charge for usage
of that PDP-10 was $3.00 per connect hour, no charge for cpu time, no
charge for disk space (everybody had logout quotas of 0, anyway), no
charge for anything else. Thus, the total charge would have been
around $15,000. That was in the early 1970's. With 9% interest, for
14 years, that comes to around $60,000. I suspect Mr. Gates can
afford it :-).
As a side note, Bill Gates' official biography states that he "dropped
out" of Harvard. According to the Harvard Alumni Directory, he
entered in 1971, and left in 1975, without earning a degree.
Seth se...@fid.morgan.com
Disclaimer: I made what may be the worst business decision of the
20'th century. Back in college, I told a friend that I was not
interested in helping write a compiler for a brain-damaged language on
a toy computer. (Those were the phrases I used.) Any resemblance to
the story above is entirely factual :-(.
No way, Jose'.
If the output is another program, it's a compiler (or translator, or
preprocessor, depending on which grey area you want to get into).
It doesn't matter whether the program it outputs is a BAD, GOOD,
REASONABLE or UNREASONABLE translation of the input. That, as our good
buddy Doug Gwyn would say, is a quality-of-implementation issue. It
does not address the compiler/interpreter distinction.
In order to be an interpreter, it has to do the program's job for it,
not just express the program in a different way.
>Or how about a hypothetical interpreter that works by incrementally
>compiling statements as it executes them, and writes the compiled version
>out so that future runs have less overhead?
That hypothetical product would be both an interpreter and a compiler.
There is nothing contradictory about bundling both types of
functionality into a single package. That does not eliminate the
distinction between the two tasks.
--
+----------+ %\%\ Tom Neff
| robotcat | \%\% tn...@bfmny0.BFM.COM
+----------+ %\%\ uunet!bfmny0!tneff
Yes, it is.
An interpreter reads your program and does what it says to do.
A compiler reads your program and writes another program which will do
what your program said to do.
--
Stalinism begins at home. }{ Tom Neff }{ tn...@bfmny0.BFM.COM