Lord Doomicus scripsit:
I was poking around an HP UX system at work
today, and noticed a
command I've never noticed before ... /usr/bin/bs.
I'm sure it's been there for a long time, even though I've been an
HPUX admin for more than a decade, sometimes I'm just blind ... but
anyway ....
I tried to search on google ... it looks like only HPUX, AIX, and
Maybe AU/X has it. Seems to be some kind of pseudo BASIC like
interpreter.
That's just what it is. Here are the things I now know about it.
0. The string "bs" gets an awful lot of false Google hits, no matter
how hard you try.
1. "bs" was written at AT&T, probably at the Labs, at some time between
the release of 32V and System III. It was part of both System III and
at least some System V releases.
2. It was probably meant as a replacement for "bas", which was a more
conventional GW-Basic-style interpreter written in PDP-11 assembly
language. (32V still had the PDP-11 source, which of course didn't work.)
3. At one time System III source code was available on the net,
including bs.c and bs.1, but apparently it no longer is. I downloaded
it then but don't have it any more.
4. I was able to compile it under several Unixes, but it wouldn't run:
I think there must have been some kind of dependency on memory layout,
but never found out exactly what.
5. I remember from the man page that it had regular expressions, and
two commands "compile" and "execute" that switched modes to storing
expressions and executing them on the spot, respectively. That eliminated
the need for line numbers.
6. It was apparently never part of Solaris.
7. It was never part of any BSD release, on which "bs" was the battleships
game.
8. I can't find the man page on line anywhere either.
9. The man page said it had some Snobol features. I think that meant
the ability to return failure -- I vaguely remember an "freturn" command.
10. 99 Bottles of Beer has a sample bs program at
http://www2.99-bottles-of-beer.net/language-bs-103.html .
11. If someone sends me a man page, I'll consider reimplementing it as
Open Source.
You will find public domain basic interpreter in Coherent archive mwcbbs
at
lynx