🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #3295

Re: Dynamic typing (part 3)

#3295
From: Dr A. N. Walker
Date: Fri, 29 Mar 1991 19:12
76 lines
4356 bytes
In article <1124@optima.cs.arizona.edu> gudeman@cs.arizona.edu (David Gudeman)
writes:

>It will take a great deal of evidence to convince me that the Algol
>committee members were so ignorant that they actually argued over the
>implementability of anything in Algol 60.  There is nothing in the
>language that any knowledgeable person would doubt can be implemented.

	Whoa!  There are two different meanings of "implement" and three
different meanings of "Algol" that are being mixed up, if not actually
confused.  When this started, DG asserted that Algol was [essentially]
intended as a clever assembler, and that static typing was intended as
an efficiency hack.  In response to my queries, he asserted that he
intended the earliest Algol tradition [ie Algol 58, or IAL], denied
intending Algol 60, and couldn't remember whether he'd actually read
the Algol 58 report.  ["I rest my case m'lud."  However, I cannot resist.]

Algol 58:  Never [?] implemented, except in the Jovial realisation,
	probably unimplementable, certainly not designed with machine
	efficiency in mind.

Algol 60:  Intended primarily as a descriptive language, and certainly
	not efficient (call by name, dynamic typing [:-), but consider
	whether "2^-j" is integer or real, and whether "2" is an integer
	or a label], dynamic own arrays).  No "clever assembler" of the
	period would have included recursive procedures, or dynamic
	arrays, for example, as indeed Fortran didn't.  I deduce that
	it was not designed with efficiency in mind;  this is confirmed
	in the pages of Algol Bulletin and in histories of the period
	(where the whole venture sounds utterly chaotic).

Algol 68:  Designed to be *run* efficiently, with essentially *no*
	regard to compilability other than "possible in principle".
	No-one with a real compiler in mind would have designed a
	language that needs at least three passes and that cannot
	be adequately lexed by a finite state machine.  There is much
	in Algol 68 that would make any pre-doc compiler-writer despair;
	the committee satisfied itself that parsing was technically
	possible, that code generation was technically possible, and
	assumed that compiler technology would do the rest.  You only
	have to look at the coercion engines or at the operator
	identification to assure yourself that highly intelligent
	people could spend a long time wondering whether something
	was compilable, and indeed some ambiguities were detected only
	at a very late stage.  Results:  Algol 68 is a dream to write,
	a nightmare to compile, and a bat-out-of-hell to run (given a
	good compiler!).


>							     But it is
>just wrong to claim that they were trying to design a general notation
>for describing algorithms without regard to implementation.

	Well, they were thinking about *computing* algorithms, and
more specifically, *numerical* algorithms.  Having an eye on what
real computers were used for is different from having an eye on how
to turn a notation into practical code.

>							      If that
>were true they surely would have included sets, strings, graphs,
>concatenatable sequences and other useful things in the language.

	Strings and other useful things *are* in Algol 60 [2 out of 5
isn't bad!].  In 1960, the other things were scarcely recognised as
being useful:  my undergraduate degree [1961-64] included *no* mention
of sets or graphs or concatenation;  as an innovation, 5 or so lectures
on computing [Edsac Autocode] were included in the NA course.

	By 1968, the emphasis was on orthogonality and composition from
a small number of primitives.  Graphs, for example, scarcely count as
primitive -- but it is straightforward to write a graph-handling package
in Algol.

-- 
Andy Walker, Maths Dept., Nott'm Univ., UK.
anw@maths.nott.ac.uk
Technical Details
Message-ID: <1991Mar29.191210.9369@maths.nott.ac.uk>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!olivea!decwrl!deccrl!bloom-beacon!eru!kth.se!sunic!mcsun!ukc!warwick!nott-cs!piaggio!anw
References: <1124@optima.cs.arizona.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!olivea!decwrl!deccrl!bloom-beacon!eru!kth.se!sunic!mcsun!ukc!warwick!nott-cs!piaggio!anw
From: anw@maths.nott.ac.uk (Dr A. N. Walker)
Newsgroups: comp.lang.misc
Subject: Re: Dynamic typing (part 3)
Message-ID: <1991Mar29.191210.9369@maths.nott.ac.uk>
Date: 29 Mar 91 19:12:10 GMT
References: <1124@optima.cs.arizona.edu>
Reply-To: anw@maths.nott.ac.uk (Dr A. N. Walker)
Organization: Maths Dept., Nott'm Univ., UK.
Lines: 76