All, way back when, Dennis sent me some DECtape images to look after. I've
put some of them in the Unix Archive (the s1 and s2 tapes) as they contained
Unix source code or binaries. The others I kept aside as they didn't contain
Unix code, or they were potentially sensitive.
Anyway, Angelo Papenhoff asked for any old tapes from the Labs that might
contain fragments of B source code or B binaries. I passed the extra tapes
on to him, and he has found some very interesting nuggets from the time
period when B -> NB -> C.
So, to help provide the context around Angelo's work, I've decided to put
all the tapes that Dennis gave me here:
https://www.tuhs.org/Archive/Applications/Dennis_Tapes/
Cheers, Warren
> Reading through [1], there are documents offered by AT&T for the "Level II COBOL" system, which some further research indicates is a product from Convergent (same folks as the UNIX PC.) There's also the LPI-COBOL which appears to be a Language Processor Inc. product.
Ryan-McFarland comes to mind: in my recollection they were the leading Cobol on small machines in the early 80’s. Ryan-McFarland’s predecessor company Digitek was contracted to do the PL/I compiler for Multics, but failed. It seems they later did Bell Labs PL/I (says https://en.wikipedia.org/wiki/Digitek) I think they did a Unix version of their Cobol in the mid/late 80’s as well.
A few years ago I tried to find out more about RM-Cobol as it existed in the late 70’s and early 80’s, but with little success. As a product it survived till the present day under the ownership of Micro-Focus and most web mentions are for more recent versions.
It would seem to me that compilers on machines with small memories and word sizes in the 60’s, 70’s and even 80’s tended to compile to a virtual machine / intermediate code -- sometimes with the option to compile to native from there. Think BCPL and o-code, Pascal and p-code, the Amsterdam Compiler Kit and m-code, the Microsoft “revenue bomb” p-code C compiler, etc. According to the above Wikipedia article RM-Cobol used the same approach. I did once see the source for another 80’s Cobol compiler and it compiled to a virtual machine with 60-bit words.
By the way, I loved the recent posts on B and NB. THUS at its best!
Reading through [1], there are documents offered by AT&T for the "Level II COBOL" system, which some further research indicates is a product from Convergent (same folks as the UNIX PC.) There's also the LPI-COBOL which appears to be a Language Processor Inc. product.
Are these the earliest AT&T endorsed COBOL solutions for UNIX or were there other efforts either promoted by Bell or even perhaps developed locally that were in any use before this version? Or otherwise is there any other family of ubiquitous UNIX COBOL tools that was in use in the 70s and early 80s, before the timeframe of this document?
Additionally is anyone aware of any surviving code or binaries of either of these or other, earlier efforts at COBOL on UNIX? I have no goal for this information in mind yet, but just gathering details at this point. Thanks all!
- Matt G.
[1] - http://bitsavers.org/pdf/att/000-111_ATT_Documentation_Guide_Nov87.pdf
So there's been quite a bit of talk about B recently (mostly from my
side) and right now I feel that I've reach an interesting enough
milestone to warrant a separate thread for this here.
First of all, I want to stress that this is still WIP,
but everything can be found here now:
https://github.com/aap/b/tree/master/unix1_bdir
In this repo you will find the following:
- bc and ba that can build themselves
(I've included .s files so everything can be bootstrapped
easily).
- libb and bilib in source form from object/library and binary files of
the s2 tape
- brt1 and brt2 restored from binary files of the s2 tape
- olibb, obilib and obrt1, older versions of the above
- a version of ba that does not generate threaded code but an
interpreted code more like the pdp-7 code.
ken told me such a thing existed at one point and indeed it is
the only way to fit the compiler into 8kb/4kw
- an implementation of this interpreted code. With this bc and ba
fit into 8kb
Note I have only tested this under apout so far. The version I used [1]
needed two tweaks, but see my README.
With this I was able to build the recently reversed B programs [2] and
produce exact matches to the originals (modulo assembler differences).
In that process I found a few mistakes I made, now the programs are
exact.
I want to thank everyone who was of help in this endeavour in one way or
another:
Ken Thompson, Phil Budne, Robert Swierczek, Steve Johnson, Warren Toomey
What's left to do now is to actually run this under UNIX v1 proper,
preferably even on a real machine. I've been too lazy for that so far.
Also there are inaccuracies and unknowns in the compiler and assembler.
Right now the intermediate code is a binary code that's easy to generate
and to parse, but if I understood ken correctly the intermediate code
was more like something the PDP-7 assembler could deal with.
I'm also rather unsure how to handle the conditional ?: operator. The
printf.o file shows that it produces labels that are in line with all
the other labels. Now the C compiler uses labels starting at L10000
for the ones generated in the second pass. So it *feels* like the
conditional should be generated by bc directly and not by ba but this
leads to other problems, which I won't go into detail now.
Finally the code should probably be a bit closer to the C compiler than
it currently is.
Cheers,
Angelo
[1] https://github.com/philbudne/pdp11-B/tree/pb/tools/apout
[2] http://squoze.net/B/programs/
> From: Diomidis Spinellis <dds(a)aueb.gr>
> I seem to recall reading that the power of Unix stems from the wise
> choice of a few design principles rather than the endless accumulation
> of special cases. However, I cannot find where this is stated.
I think you're thinking of something in the CACM paper:
https://www.bell-labs.com/usr/dmr/www/cacm.html
"The success of Unix lies not so much in new inventions but rather in the
full exploitation of a carefully selected set of fertile ideas"
Noel
I seem to recall reading that the power of Unix stems from the wise
choice of a few design principles rather than the endless accumulation
of special cases. However, I cannot find where this is stated. I tried
a Google web and a Google Scholar search using the terms "unix endless
accumulation special cases", and I also asked ChatGPT for a publication
associated with this phrase. I also searched for "special" in
D.M.Ritchie's "The Evolution of the Unix Time-sharing System" and "The
UNIX Time-sharing System A Retrospective". (Amazingly, both have
several parts that still highly relevant.)
Can anyone help? Am I misremembering something?
Howdy folks, I just wanted to pass on word that there is currently a stack of 1983 System V documents on eBay, here's a link to the User's Manual: https://www.ebay.com/itm/225659365754
The same seller has these documents available in their shop (as well as a bunch of other old computing documents and magazines):
- User's Manual
- Administrator's Manual
- Error Message Manual
- Operator's Guide
- Graphics Guide
- Transition Aids
- Release Description
So not the whole lot, but a nice spread nonetheless. I've already got all of these and they're already all scanned in some fashion or another, or I'd have scooped em up already.
Anywho, figured that might pique folks' curiosity. The pricing is very agreeable might I add, sometimes I see single volumes from this set going for over $100.
- Matt G.
I have a copy of Lions's "A Commentary on the UNIX Operating System" It is
an n-th generation photocopy that I've had for some number of decades. It
also has the source code, as I guess all of those copies did back in the
day. I could just recycle the paper -- it's yellowed with age -- but I'd
rather pay it forward and ship it to someone who promises to make copies
for others who want it. This is also on bitsavers, so you're only doing
this to preserve the sense of history in passing photocopies around.
I'll take bids on how many copies you'll provide. I'll post the winning bid
(without their address), so that the community can pressureXXXXXX ensure
they meet their commitment. I'll send it out by the end of the week.
I will give preference to US/Canada domestic addresses since that is easier
for me. How much preference is left to my discretion. :)
I hope this doesn't make me sound like a jerk; it's intended to be
lighthearted community service.
> What is the name of the mathematic symbols
Here are some readings, not exactly names
incl (used with partial orderings) is included in, or is less than
|> is not greater than
|< is not less than
<wig
>wig
wig is approximately, or asymptotically approaches
~wig is approximately
Doug