[TUHS] Disassemblers
scj at yaccman.com
scj at yaccman.com
Fri Jul 2 11:36:04 AEST 2021
I saw this post and it reminded me of a meeting that Dennis and I had
with Bill Wulf. At one point, Dennis decided to write an optimizer but
gave up after a week or two because when he had coded the data
structures he needed he had filled up the PDP-11 memory! It was a very
strong part of the Unix meme that Unix and C would run on small
computers since most of the universities couldn't afford bigger ones at
the time.
When PCC came along and started running on 32-bit machines, I started
thinking about algorithms for optimization. A problem that I had no
good solution for could be illustrated by a simple piece of code:
x = *p;
y = *q;
q gets changed
*q = z;
The question is, do I need to reload x now because q might have been
changed to point to the same place as p? At around this time, Al Aho
was invited to go to CMU and give a talk, and he invited me to come with
him. We spent about an hour and a half one-on-one with Bill Wulf -- I
seem to remember a lot of mutual respect going on. But when I asked him
about my problem, he really didn't have much to say about it. I finally
got him to agree that his compiler had a bug. But he said there was a
flag they could set on the compiler that would turn of optimization and
if your program had mysterious bugs, you should use the flag.
I recall that Al, always in search of better algorithms, was a bit
disappointed -- I was a bit more pragmatic about it. On the whole, it
was a good meeting, and the "Engineering ... Compiler" book was one of
my favorites when it came out.
Steve
---
On 2021-06-19 09:59, Clem Cole wrote:
> On Sat, Jun 19, 2021 at 12:33 PM Henry Bent <henry.r.bent at gmail.com> wrote:
>
>> Wait, so it was easier to write an emulator for a PDP-10 binary than it would have been to port BLISS to the PDP-11? Given the different word sizes I would not have expected that.
>
> BLISS-11 was (way) too big to run in the 64K address of the PDP-11 (even separated I/D). Originally, it was a PDP-10 cross compiler and later moved to the Vax. It generated much better code than the original Ritchie or later Johnson compilers. The code generator/optimizer was famous (literally the book on code optimization was written about it, called of course: "The Design of an Optimizing Compiler" [1] by Wulf and some of his students [ISBN 0444001581] - _a.k.a._ 'The Green Book' worth reading BTW.
>
> Later on, DEC's TLG tried at least twice that I know of to make it self-hosting but gave up. Long story (and definitely a different thread) if DEC has not screwed up the marketing of BLISS, I suspect it might have given C a run for the money. But BLISS _vs_. C is a great example of Cole's law that _Simple Economics always beats Sophisticated Architecture_ [and using Christensen's 'disruptive theory -- it gets better and supplants the incombent].
>
> Anyway, the compiler/code generator/linker for DEC Fortran-IV for RT-11, RSX, and DOS-11 was written in BLISS-11. So for CU to retarget it for V6 they needed a PDP-10, which they did not have. So they wrote a simulator. I remember when they gave a talk about it at Usenix, somebody asked them how well Tenex ran on it.
>
>> Did they have a cover sheet or something equivalent that they came with? I'm having trouble imagining dealing with that much unindexed data on an early system.
>
> Not to my knowledge. Two things that I believe we need to do for the TUHS archives to be even more meaningful is 1.) decode them from tp/ar -- even if you read the tape, they are packed together in v5/v6 ar files which are PDP-11 binary. 2.) Create an index of what is there.
>
> I've thought about both things but have way too much on my plate to do it myself.
>
>> Fascinating. Thank you as always for the insight.
>
> Most welcome.
> Clem
> ᐧ
Links:
------
[1]
https://www.amazon.com/Design-Optimizing-Compiler-William-Allan/dp/0444001581
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210701/32e996e1/attachment.htm>
More information about the TUHS
mailing list