[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