Path: utzoo!attcan!uunet!lll-winken!lll-tis!mordor!joyce!sri-unix!garth!smryan
From: smryan@garth.UUCP (Steven Ryan)
Newsgroups: comp.lang.c
Subject: Re: volatile: a summary
Summary: Perfect Compilers
Message-ID: <751@garth.UUCP>
Date: 17 Jun 88 19:55:15 GMT
References: <11837@mimsy.UUCP> <3811@pasteur.Berkeley.Edu> <580@wsccs.UUCP> <700@fxgrp.UUCP> <5807@bloom-beacon.MIT.EDU>
Reply-To: smryan@garth.UUCP (Steven Ryan)
Organization: INTERGRAPH (APD) -- Palo Alto, CA
Lines: 23
Church:  Our Lady of Reluctant Software.

>You people need to understand that Chris is being extremely
>theoretical, to the point of pedagogy (not meant pejoratively),
>here.  It took me several readings of several of his articles
>(which I was quite willing to do, because Chris is a trustworthy
>sort) to realize that he does, as usual, know what he is talking
>about.  Chris is correct when he says that "a perfect compiler
>would not need volatile" but he is not saying that such a
>compiler would be reasonable.

Of course if such a perfect compiler exists (even if only in the abstract
sense), ...

The problem is his assertion such a compiler exists without proof,
demonstration, argument, or any other foundation. It is as silly to argue
what a hypothetical compiler, whose existence is merely asserted, what it
can do as to argue that a tree falling in an empty forest makes no sound.

If such a compiler can be shown to exist, reasonable or unreasonable, his
argument about the necessity of volatile is correct. If such a compiler
is shown to be impossible, his argument is wrong. 

Remember the mess mathmatics was in at the end of the last century because
people went around asserting their theorems without a solid foundation or
a formal proof. (Who will be Hilbert of computer science? Dijkstra? Hoare?)