Related articles |
---|
sparc object hackery and Bliss techniques? harding@ug.eds.com (1993-07-26) |
Re: sparc object hackery and Bliss techniques? tfj@apusapus.demon.co.uk (1993-07-29) |
Re: sparc object hackery and Bliss techniques? firth@sei.cmu.edu (1993-07-30) |
Re: sparc object hackery and Bliss techniques? hobbs@gemmax.enet.dec.com (1993-07-30) |
Newsgroups: | comp.compilers |
From: | tfj@apusapus.demon.co.uk (Trevor Jenkins) |
Keywords: | optimize |
Organization: | Trivia R me |
References: | 93-07-074 |
Date: | Thu, 29 Jul 1993 20:21:29 GMT |
harding@ug.eds.com writes:
>Now I have a question. I have the book 'The Design of an Optimizing
>Compiler' by Wulf et. al. and have found the ideas in it to be quite
>interesting even though it is rather old by CS standards (1975).
One of the optimisation that only appears to be used by the Bliss-11
compiler is to determine whether code should be placed before or after the
loop out which it was being moved. They, Wulf et al, described these as
alpha- and beta- code motion; as to which one was which I don't remember I
still awaiting the republication of the book.
>Is there any information anywhere on the Bliss language which it describes...
A paper, by Wulf and others, was published in the Comm of the ACM around
the same time. (Again from memory) this described the rationale of the
language and its design. One of the goals was that all flow-graphs were
reducible; this was achieved but not having an true GOTO statement, though
there were LEAVE and EXITLOOP statements so that you could terminate a
loop in a very controlled fashion.
Variants of the language were defined by Digital, who sponsored Wulf et al
to work on it(?), Bliss-10, Bliss-11, Bliss-36, Bliss-32 and Common Bliss.
The major pieces of software written in Bliss-32 are VMS and ALL-IN-1; the
only acknowledge piece of software written in Common Bliss was RUNOFF.
Common Bliss is that subset which is available on all platforms.
>...or on any languages which use similar compiler techniques?
There is some discussion of Bliss in Hecht's ``Flow analysis of
programming languages'' which also came from the same series of books as
the Wulf book did.
>...I know I may be out of touch asking about such a language.
There was a discussion about Bliss a long time ago here in comp.compilers.
A search through the archive will reveal all that was written about it.
One of the correspondents had been a product manager for Bliss within
Digital and he gave some insightful comments upon the reasons why C
succeeded and Bliss didn't.
This ex-Digital person also alluded to the fact that one of the most
difficult parts of the implementation is/was the macro processor. This
macro facility is not grafted in like C's but rather is part of the
language definition. For fun (!) I looked at the problems of writing a
Bliss compiler for the 80x86 series of processors and I disagree with his
assertion.
>[Incidentally, we're still working on reissuing the book by Wulf et al.
>though it's taking longer than I would have expected. Around the end of
>the year, I hope. -John]
I wondered why it hadn't appeared yet. I hope that it does.
Whilst some of the techniques described therein may now be out-moded it is
a rare book in that it describes a compiler _implementation_ rather than
discussing the general theory of compiler constuction or syntax analysis.
The discussion of why things were done in the way that they were rather
than some seemingly equivalent method is useful to read.
Also, the VERY brief discussions of the Bliss-11 compiler given in the Red
and Green Dragon books does not do it justice. For those interested in the
details of the implementation and have access to the DECUS library for the
DECsystem-10/20 range should find that the Bliss-11 compiler is included
there, source and all. (Is there anyone still running a DEC-10?)
--
Regards, Trevor.
---------------------------------------------------------------------------
Trevor Jenkins
134 Frankland Rd, Croxley Green, RICKMANSWORTH, WD3 3AU, England
email: tfj@apusapus.demon.co.uk phone: +44 (0)923 776436 radio: G6AJG
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.