Article View: comp.lang.misc
Article #1604Re: Multi-compilers
From: Norman Graham
Date: Sat, 22 Sep 1990 06:10
Date: Sat, 22 Sep 1990 06:10
63 lines
3858 bytes
3858 bytes
From article <2581@l.cc.purdue.edu>, by cik@l.cc.purdue.edu (Herman Rubin):
> A language is a set of macros to be interpreted by the compiler into machine
> procedures. There is no good reason why the user should not be allowed to
> add macros in convenient notation to this list, nor why many of the restric-
> tions on the current macros need be there.
This view explains why you're constantly at odds with the rest of
the netnews community.
First, as anyone with a basic knowledge of languages can tell you,
a language is a set of strings (of finite but arbitrary length)
over some alphabet. In addition, computer languages are notations
for expressing computations; they are not notations for expressing
the machine instructions you want a compiler to generate.
As a general rule, a computer language exists apart from any particular
compiler or computer architecture, although issues of compilation
and computation model may influence the design of a language.
(eg. The design of Pascal's syntax makes it easy to be parsed
using a particular method. Also, the constructs offered by Pascal
reflect the choice of the von Neumann machine as the underlying
computational model.) The point is that a program has a meaning
that is independent of any particular sequence of machine instructions.
Second, it is simply naive to describe what a compiler does as
macro expansion. Otherwise, you would have had your super-macro
super-assembler decades ago and we wouldn't have bothered to
expend the great effort to design so many different languages
and compilers.
> If the machine can do something,
> the user should be able to invent a notation to do it, if necessary. For
> example, I find the general vector operation on the CYBER 205, with its dozen
> optional fields, easy to explain in a notation easy to read and write.
And in a previous post, cik@l.cc.purdue.edu (Herman Rubin) writes:
> [...] Apart from machine language, there is no language designed to
> use the power of the computer.
This is written as if you believe the 'power of the computer' resides
in its instruction set. I disagree with this idea. In fact, the whole
RISC movement is founded on the idea that to build a faster computer
you must _remove_ instructions from the instruction set. Likewise,
adding an instruction to a modern computer will not increase its
computational power.
I believe the 'power of the computer' resides in its ability to be
used as an abstraction device on which we can build higher and higher
levels of reality. Personally, I chose to live in a reality where
lambda calculus is the underlying computational model. This implies
that not only do I give up the ability to control the machine instructions
used by my programs, I also give up any notion of the sequencing of
those instructions (control flow) and the notion of updatable memory
locations (ie. updatable variables, machine state). But by living in
this level of reality I gain the ability to write extremely clear and
straight-forward programs that are 10, 20, and sometimes even 30 times
_shorter_ than the equivalent programs written in a typical high-level
language.
--
Norman Graham <norman@a.cs.okstate.edu> {cbosgd,rutgers}!okstate!norman
The opinions expressed herein do not necessarily reflect the views of
the state of Oklahoma, Oklahoma State University, OSU's Department of
Computer Science, or of the writer himself.
Technical Details
Message-ID:
<1990Sep22.061027.9223@d.cs.okstate.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!apple!uokmax!d.cs.okstate.edu!normanReferences:
<2581@l.cc.purdue.edu>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!apple!uokmax!d.cs.okstate.edu!norman From: norman@d.cs.okstate.edu (Norman Graham) Newsgroups: comp.lang.misc Subject: Re: Multi-compilers Message-ID: <1990Sep22.061027.9223@d.cs.okstate.edu> Date: 22 Sep 90 06:10:27 GMT References: <2581@l.cc.purdue.edu> Organization: Oklahoma State University Lines: 63