Xref: utzoo comp.lang.c++:2145 comp.lang.c:14424 comp.lang.forth:692 comp.lang.fortran:1559 comp.lang.misc:2232 comp.arch:7391
Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!bu-cs!purdue!decwrl!labrea!csli!gandalf
From: gandalf@csli.STANFORD.EDU (Juergen Wagner)
Newsgroups: comp.lang.c++,comp.lang.c,comp.lang.forth,comp.lang.fortran,comp.lang.misc,comp.arch
Subject: Re: Assembly or ....
Message-ID: <6613@csli.STANFORD.EDU>
Date: 30 Nov 88 21:23:19 GMT
References: <1388@aucs.UUCP> <729@convex.UUCP> <1961@crete.cs.glasgow.ac.uk> <6529@june.cs.washington.edu> <1031@l.cc.purdue.edu> <1989@crete.cs.glasgow.ac.uk> <32354@think.UUCP>
Reply-To: wagner@arisia.xerox.com (Juergen Wagner)
Organization: Center for the Study of Language and Information, Stanford U.
Lines: 37

In article <32354@think.UUCP> barmar@kulla.think.com.UUCP (Barry Margolin) writes:
>...
>How about if the compiler saved the answers in the program text as
>explicit ADVICE statements?  The compiler becomes a simple form of
>Programmer's Apprentice, helping the programmer determine where
>potential optimizations can be specified.  The decisions become
>documented, and they don't have to be repeated.

If you have such a sophisticated compiler, that would be more a tool for
automated program generation than a compiler in the classical sense. Such a
tool could also be fed with a pure declarative specification of what you
intend to do, and it should have knowledge about all optimizations for the
architectures you're going to run that program on.

Of course, if you learn something really nifty about optimizing code, you would
like to tell that "compiler" to use the new technique with your code. I guess,
this comes close to what some LISP environments offer, where you can modify
the compiler if you don't like it the way it is.

In such an environment, the programmer should not only have the opportunity to
choose between alternatives the compiler already knows, but also to introduce
new specialized strategies for certain applications. A major problem would
then be consistency of the resulting system...

If I had to use such a tool in the C environment, I would certainly ask for
incremental compilation, too. It is a pain in the neck if you have to recompile
and relink some of your modules every time you are changing a single character
in a function.

Hmm... I guess, I am shifting to the more general question of suitable
software development environments for C or other languages...

'nuff said.

-- 
Juergen Wagner		   			gandalf@csli.stanford.edu
						 wagner@arisia.xerox.com