🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #1604

Re: Multi-compilers

#1604
From: Norman Graham
Date: Sat, 22 Sep 1990 06:10
63 lines
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!norman
References: <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