http://wrap.warwick.ac.uk/
Original citation:Lehmann, D. J. (1977) Modes in Algol Y. Coventry, UK: Department of Computer Science.
Permanent WRAP url:
http://wrap.warwick.ac.uk/46316
Copyright and reuse:
The Warwick Research Archive Portal (WRAP) makes this work by researchers of the University of Warwick available open access under the following conditions. Copyright © and all moral rights to the version of the paper presented here belong to the individual author(s) and/or other copyright owners. To the extent reasonable and practicable the material made available in WRAP has been checked for eligibility before being made available.
Copies of full items can be used for personal research or study, educational, or not-for-profit purposes without prior permission or charge. Provided that the authors, title and full bibliographic details are credited, a hyperlink and/or URL is given for the original metadata page and the content is not changed in any way.
A note on versions:
The version presented in WRAP is the published version or, version of record, and may be cited as it appears here.
UNIVE
R SI
TY
C
OMPUT
ER
OF
WAR,WICK
SCIENCE
DE
PT
17
MODES
IN
ALGOL
Y
BY
D.
J.
LEHMANN
Depantment
of
Computen ScienceUnive::sity
of
WanwickCOVENTRY CV4 7AL
ENGLAND
Modes
in
ALGOL YDaniel
J.
LehmannDepartment
of
Computen ScienceUniver"sity
of
WanwickCovent::y, West Midtands. CV4 7AL
l--.-
Introduction.
rt
necentry appeanedto
the
author"that
the
semanticsof
r"ecursivelydefiaed
data-tl@es(
fi:om nowon
the
term cincul-a::ly defined data-typeswill
be usedto
keep away fnomthe
ttnecursivefunction
theoryrr connotationof
the adjective "necursiverr)
couldbenefit
langely
fnomthe
bul_k
of
necent work on domain equations
initiated
by
Dana Scott.This notef
s
pur"poseis : to
suggestto
peopr-e working on the rlofinr'+i^n nS ^usr'r-LLrurr ur- pr"ognamming languages an
alterrrative
wayof
thinking
about
circurarly
defined datatypes,
and.to
intenest the theo::etical
conununityto
concretedata
typesr
as opposedto
the
abst::act data typesof
Liskovand
Zil.l-es
(74),
and ADJ (75).
The way chosenfor:
that
pu::poseis
a
neflection
on modedefinition in
ALGOL68.
This
language has beenchosen
because
it is
the most
compnehensive attemptto
define
a useful,
powenfullanguage
with
extensivetype
checking; the
cr"itical
nemanks containedin
this
note
aneonly
provokedby the
fact that
the
ALGOL68
neport
is
theonly
senious fonmal attemptto
describe modedefinition
and as suchthe
onl-vone wonthy
of
cr"iticism.
Let the
neader be wannedthat
the
ALGOL 6g jangonwi-rl be
used butnot exc]usively
andthat
the author"ts
critical
neadingof
rantrubaumrs2,
FORTMN-, AL,G..OJ, 60 andthg
r+-tvPed Prgcsdgrys.The concept
of
a
sub-progr^amwith
panameters as exPressedin
theFORTMN subnoutines,
the
ALGOL 60 pnocedures or1the
assembler macr:os hasbeen necognized
since
the early
tirnesof
computingto
beof
car"dinalimportance. It is
the
keyto
clean and pleasant pragramming(the
modernswoul-d say
structur:ed). It is
ce:rtainl-ywith
usto
stay.The FoRTMN designers al-so nealized
that it
wasvital that
subroutinescould accept
other
subroutines as parameters,thus
openingthe
wayto
self-application,
evenin
the
absenceof
sel-f-invocation,
asin
the
following
example.
SUBROUTINE F(P)
IF(.FALSE.
)
CALL PPRINT 7 RETURN
1
FORMAT ( t Hrl,i,O' ;END
PROGRAM SELF
CALL F(T)
STOP END
Anothe:: key idea which
is
with
usto
stay
was intnoducedin
FORTRAN
: typing.
Eachidentifier
has a type and canonly hol-d "valuesil
of that
specified
type.
A11 subnoutineidentifiens
havetlpe
rrsubt'outine".A1l- these ideas wene bornowed
by
ALGOL 60in
which one new key idea wasintnoduced
: circular definition of
procedu:res.
Thebtock
structure
is
really
only a
secondarybenefit
of circular:ity,
Asa
consequenceself-application
could beput
to non-trivial
use and no simpleMost pnognammers, and
centainly the
ALGOL 68 gr"oup, thoughtthat
this
was an unexpected
nesult
of
a
canelessdefinition of
types
in
ALGOL 60,was computationally meaningless and should be banned
in
ALGOLX,
the next
vension
of
the
language.3.
Tvped procedunesin
ALGOL 68.The
pninciples
of
onthogonal- design andstatic
mode checkingof
ALGOL 68 implied
that
procedu::es shoul-d betyped. In
the
type
of
aprocedune ane
fixed the
numberof its
argumentsnthe
type
of
each argumentand
the
type
of its val-ue.
Asa
consequenceself-application
seemsto
have
disappeaned.
Nowthe principle
of
onthogonal design andthat
of
extensibitity,
spelled out by Tanenbaum
(76)
implied
user-defined modes.Quoting fnom Tanenbaum :r'Another
principlen
::elatedto that of
onthogonality,is
the
pninciple
of extensibitity.
ALGOL 68 pnoviCesa
small- nunbe::of
pnimitive
datatypes,
or
modes, aswell
as mechanisrnsfon the
use::to
extend these
in
a
systematicway.
For: example,the
pnogramrner may createhis
or,m data types andhis
own openatonsto
manipulate themtt oor
fater
from
the
same autho:r:
tfoneof
the
most powenful featu::esof
ALGOL 68is its
nich
coflection
of
datatypes
(modes), andthe
facitities it
providespnogrammens
to
define
thei::
own modestr.The
application
of
the
pr"inciple
of
orthogonal design now dernandedthat circular
definitions
of
modes be acceptedwithout
any nestnictions,as
circul-andefinition of
pnoceduresis
acceptedwithout restr"ictions.
For r€asons
that
we shal-l-try to
elucidate
late:r
the
ALGOL 68 designe::s depar^ted fromtheir.
prrcclainedpolicy
of
onthogonal- design and imposedrestnictions
onrecursivety
definedmodes.
Befone studyingthis
question4-.
_ Voi.d ?The
revised
ALGOL 68 nepor"to.2.2.(b)
craims:
ttMorreover,in
ALGOL
68,
a mode-declanation penrnits
the
constnuctionof
a new mode firomaheady
exist!4g
ones.tt
Weshall
come back l-atento this
same quotationbecause
it
seemsto
excludecirculanly.
defined rnodesbut
what the authorwants
to
stress
nowis that it
seemsto
imply
that
modesare always
built
from modes
by
the
useof
mode-constnuctons.This
is
not the
case :void
is
anotion
which cannot be derived f::omthe
metanotion MODErnever-theless
modes can bebuilt
fromvoid,
fo:: example
: Pg (int)
void
is
amode.
This
is
obviouslya pain
to
Tanenbaum whoexplains
:
I'A procedur:ethat is
not
used asa fgnction,
that is,
doesnot
retu::n anyeXplicit
valuetis
said
to
retunnvoid.tr
l,lhatis
p:robably meantis that
sucha
pnocedureis
said
to
t?eturn anobject
of
"noderrvoid,
thoughvoid
is
not
exactly
amode. It
wouldbe
conceptually muchsimpler
to
allowgil t"
be a basicmo<1e,
consisting
of
onty one
object,
from which othe:: modes can be defined'An
object
of
modeprog
tilt)
vo-i-d would thennaturall-y
return
as
its
value,
not
Jgi9,
but the
uniqueobject
of
mode"9ii.
s.
Nir.
Tanenbaum
writes :
rtln
list
pnocessingto
have some markento
indicate the
endof
aAssembly Language
t
ze?ois
often
used.
Inni.I
(RR5.2.4), is
providedto
endlists.rr
It is
indeed sunpnisingthat
a
concepte><plained
by analory
to
machine language.that
proper useof
empty.lists
shoul-d enablestrange
nil.
gpPlicationso
it is
necessarYlist.
When pnogr-emmingin
ALGOL
68
a
special
sYrnboltof
ALGOL 68 should be bestIt will
be shownin the
sequela
As was indicated
at
the
beginningof
Section 4the
ALGOL 68revised
nepont seemsin
oneplace
to
excl-ude cir"culanly defined modesaltogethe::.
At
anothe::point
(RR 4.2) :'rMode-declanations providethe
#definins-mode-indications
,
whichact
as abbreviationsfon
declane::s constructed fromthe
mor^epnimitive
onesor
fnom othen decfar"ers or3 eDen from them-se]-vesrr.There
the
::epo::t e><plicit1y aIlowscir.culanity (the
author knows thatwhere you can see
it is
al-l-owedis
not
in
the
comments,
but
in
the
fo::mal-definition,
but the
forrnal-definition is
so obscunedby all-
its
restrictions
that
nobody, exceptits authons .
andthe
implementens,will
prrcbablyeven bother
to::ead
it in ful-l-).
Yet theltevenrf seemsto
indicate
mild contemptor
more pnobablyinstinctive
fean fromthat facility.
Neventheless
both
the
Repont and Tanenbaum acknowledgethat
themode-definition
facility is
essential
only
when modes ane cireular"ly defined.Laten (nn +.2.1-.
)
wefind :
ilThe useof
'TALLYT excludes ci::cu1archains
of
grode-dgfini€onl
such as modea=brj=a".
This
commentis
poorin
infonmative val-uebut
it
meansthat
somecircufan definitions
arefo::bidden;
to
know which ones one may workout
what theeffect of
the metanotion TALLYis in
the
vW-gnamrrEn:,nely
onthe
taoist
explanationof
(nn
2.4.7.)
ontnust
Tanenbaum whoexplains
:
r'As you might expeet, ALGOL 68allows
all- the
modesthat
aneintuitively
neasonable andprohibits
thosethat
anenot.tt
Unfortunately
the
authon canonly stnongly disag::ee
withmode mode
fun,
notfun
=gg
=
H,g
(fun)
fun notfunis ]egal. Is it intuitively
reasonable?is itlegal.
Is it intuitively
lessmode
Sur"ely
pnoc
a
f
neasonable than
the
previous example?=
g is illegal.
Whatis
wrongwith
itl
is
not a
very
useful
modebut
:=
(int k ) int
zf (k) is
legal
andexactly
as useless.Laten
it witt
be shownthat
af1
the
above examples rnake penfect senseas
defining
initial
fi><pointsof
domain equations,but
befo::ethat let
usshow how cumbe::some and
inelegant
is nin
ALGOL68,
the
definition of
amode as simple as
a linean
list of atoms.
Supposethat
the
mode atomhas been
defined.
The ALGOL 68 wayof
defining
a modelist of
atomswould
be
:mode Iistofatoms stnuct
(atom top. ref listofatoms tail)
pnoblem
is that
the modelistofatoms
which can bepictor:ialty
depictedLqII
does
not
matchat
aIl- the
intuitive
idea
of
a l-ist.
An
object
of
type
listofatoms
is
not a
list of
atomsit is
a possible elementin
a
list of
atoms, moreprecisely
a possible
implementationof
such an
element.
No wondenthat writing
pnogramsfor:
tist
Processingwill
be
a
very unnatural- task.The
Moreover, thene
is
no waythe
emptylist of
atoms can be made anobject
of
modelistofatoms.
Asa
consequenceinitial-izations
andte::mination
tests
will
l-ook wei::d.An
attnactive
altennative
will-
beinfonmally presented now,
by usingarbitnar"y cir:cuJar
mode-definitions,
and supposingvoi3
is
a
mod.eof
whichthere
exist
a
uniqueobject
:
constantof
type void.
The
fotlowing
definition is totally
henetic from
the
ALGOL 68 pointof
viewbut
neventhetess,gives
a
goodidea
of
whata
l-ist of
atoms shouldbe:
mgdg lgt?It =
r:nion
( p5|,
.stngct(ut"g
top,
]g
tai:-)
)Notice
that
the ::ef
has disappeaned andthat
the
abovedefinition
is
a
stnaightfonwandtranslation
of
the
ideathat
a
list is either
empty onconsists
of
a
finst
atom fol-lowed hrra'lr'st-
Nowlist
pnocessing can bepenfonmed
natunaIly.
Let
us
newrite
in this
styl_e Tanenbaumrs example (S.fO).bSein
m_ode
pglsog =
stnust
(str"flg
name,int
score)
Imodg fpgnsot =
union(9i9,
stnuct- (p"g"ontop,
lpensontair)
);
lDenson gamenesults :
=
constantof
t5ryevoid,
unlooked;b.ool empty,
still
looking;
stning bowler;
int
bowled ;make tenm (stand
itr, tt tt )
;wEi1e. r"ead ((bow]ed, bowten)
) ;
bowled
> odo
gameresults:=
((bowle::, bowled), garnenesults)I
phase2.
look
upthe scones
f
while
nead((newline, bowle::));
bowler"+
rr rtdo
stil-l
looking
:=g;
unlooked:=
gameresults; empty :=Ig!g9'
while
still-
looking
r.
lemPtYg
case
unlooked
in
(void) :
emPtY:l S,
(struct
(person toPr,IDffi.9gtail)list)
:if
nameof
top
of list
= bowl-erthen
pnint
((bowler'
scoreof
top
of list,
newline));
else
rrnl-ooked : =tail of tist
fi
AQ: ' F
od
.i€ 6+-i'l 1 -lnr,Lr'no
IJ D LIII IVVNTITB
then
"not in
ou:: leaguett' newline))
The reader should
notice
that
by introducing
a
unique constantof
type
voidone has acheived
the objective
of
havingonly
one emptyl-ist
(a'n emptylist
of
atomsis
also
an emptyl-ist of
books),without
havingto
pl-aywith
alil
object
of
undefined mode.The
difference
i-n.mocie betweenthe
emptyl-ist
and non-emptylists
::eflects
the
fact that
the
operations avail-able on non-emptylists (gP
and
tail )
are
not available
onthe
emptylist.
f!
od
t!.
could be
mode
mone general
defined by
glatom,
=notion
of
a l-ist
(like
the one used
in
LISP)unaon
(g!5!,
stnuct
(union
(9,
glatom) head,glatom
tail-))
which
defines as clea::ly
aspossible
a
genenalized non-emptyfist to
be composedof
a
head whichis either
an atomor
a
list,
anda
tair
whichis
a
l-ist.
This
definition
looks
very
differ?ent thanthe
one whichwould
be suggested
by ALGOL68
:mode-
algtist = ry
(a]gtist
head,algJist
tail-)
which
in fact
defines r.:nlabelled
binary
tnees. It is
cleanthat
theneis
somekind
of
equivalence between genenalizedlists
andbinary trees;
neventhelessit
seems ver"y unwiseto
fo::cethe
prognammerto use
binar:ytrees
when heis
thinking
in
tenmsof lists.
The binanytree
nep-resentation
of
a
one elementlist is,
fon
example,very unnatunal.
7.
Refenences, pointens and_l_ist processing.One
of
the
main innovationsof
ALGOL 68is
the
intnoduction
of
modesof
type
ref
trsomething'r.
rs this
novelty
an asset or:a
liabilitv?
Tanenbar:rn
fir"st justifies
extensively
the
intnoduction
of
refenence-ro modesby
stnessingthe
difference
between constants and vaniabl-es andinsisting that ce::tain
fo::mal parametens shoul-d bespecified
as variabl_es(those which ane assigned
to)
andthat
other"s shoul-d bespecified
asconstants.
But
fate::
he goeson
:
rrVaniabl-esinvolving r:ef
trsomethingt'ane
t5rpically
usedin fist
processingapplicationst'.
Butlist
processingis
not specially
concernedwith the
distinction
between assignab.l-e andnon-assignable
fonnal
panameters.
Whatis
thenthe
neal
neasonfor
intnoducing modes
of
type
ref
frsomethingrr?
Thedistinction
betweenconstants and
variables
coul-d have been bnought upto
J-ightin
a much less-9-general way and it seems
to the
authorthat the introduction of
::eferencesin
ALGOL 68list
pr^ocessing wouldpointens and vaniabl-es
is mainlv intcnded for lisf nrocessing^ In fact
be irnpossibl-e
in
ALGOL 58 withoutexplicit
of
moderef ref
rrsomethingrt.
It
seems indeedthat
the
ALGOL 68 designers thoughtthat
pointers
hadto
be usedin
l-ist
processingapplications.
Oneshould, on
the contrary, neflect
on thefact that
LISP,widely
usedfor list
pnocessingn doesnot
have pointersat al-1.
Indeed oneof
the
reasonsof
the
successof
LISP asa
prog?amminglanguage
is that
the
user doesnot
haveto
manipulatepointens.
To asimil-ar:
effect
Milne and
Stnacheywnite
:
rrCyclic data stnuctur€s whichane declared
by
incidence nather thanby
r^eference may beusefuf
asthey have
a
gneater degneeof inviolability
than those containing locationswhich may be
subject
to
assignments.t'Pointens
are
probably necessary when one wantsto
wnite extremely
efficient
prc,gtamsin
a machine
language-like mannerbut the
user shouldbe given
the
opportunity
to
use data-stnuctur:eswithout
havingto
introducethe
possibility of
sha::ed values whichis
boundto
complicate enormouslythe validation
of
a
program.
At the nisk
of
repeatinghimselfr
the" author wantsto
stnessthat if
LISPis
a
prognamming language whichis
sowidely
usedfor
wr"iting
large
complex andcorrect
programs(especially
in artificial
intelligence)
it is
due bothto its
high funetronality
which ALGOL
68
netains,
andto
the security
givenby
the
absenceof
shared values, which
is
unattainabl-ein
ALGOL68. It is
the
authortsbelief that
the introduction
of
references shouldnot
be seen asobliviating
the need
for
circul-a::Iy
defined modescf
the
type
descr"ibed above.8.
Ar"bitnarvcircular
modedefinitions
ane meaningful.It is left to
showthat
anbitnary
cir"cul-ar" modedefinitions
aremeaningful.
Thatthis is
so fol-Iows fi:omthe
pioneening wo::kof
Scott( 21,
72
and
76),
e><plicitedin
Wand(
74 )
and Lehmann(.zo
).This
is
not
the place
to
exposethe
mathematicsof this
approachbut
it
can be
said
that, in
compfete analorywith
circul-andefinitions of
functions, a
cincufar
modedefinition
can be seen asdefining
aninitial
solution
to
an equationof type
X=T(X) overa suitable
categoryof
domains, andfon a suitable functon
T.
Theinitial
solution
comesin
the
forrnof
anobject
in
the
catego::yof
domains D and two invense isomo::phisms between D and T(D):
D I T(D)
satisfying a
centainu
unive::saI
pnoper:ty.
The .isomorphisms6
andr!
equip D withoperations and make D
an
(universal)
algebra.A
very genenal category
of
domains Domis
definedin
Lehmann(
76 )and
a
lange nunbe::of
sub-categoriesof
Dom can be seento
be adequate too.The
basic
data-types
:
intege::s nneals,
booleans caneasily
be consideredas
objects in
the
categoryof domains.
One mor:ebasic
data-t5rye shoufd al-so be considened:
1
consisting
of
only
one object;(it is
the
initial-object
in
the
categoryof
domains and correspondsto
the
ALGOL 68 voi4).The main mode
constructors can
beinterpreted
as functonsin
the
categoryof
domains: pIE is + , g!1g! is xn
unioni.s
e,
as
is
shomil
Lehmann
(
76).
A modedefinition
(cincul-ar: or" othenwise)is
then
inten-preted as
defining the
initial- fixpoint of
a
domainequation.
For theintenpnetation
of
the
isomonphisms see example 4 below.The P
functor
of
Lehmann(
yO)
suggests a powerset n,ole const::ucto::which does
not
exist in
ALGOL68.
The mode eonstnuctorIg{
could beexpressed as a
plg ; ref
can onry be givena mathematicar
rneaningin
the presence
of
a model
of
the
srore.-9.
. ExaJ$>lesI)
inodefun
:
prog
(fun)
fundefines
the
initial fixpoint of
D=
[ D -+ D]
whichis
1o
the
onepoint
domain.2)
modenotfun = ry.
notf_Endefines
the
initial fixpoint of
D- [ D+1]
whichis
1 also.3)modea=g
defines
the
initiaf fixpoint at
FD
whichis
1.4)
nrodelatom =
union-(void,
struct
(atom head, l-atorntail))
defines
the
initial fi>point of F
leATOMxD
and givesnames
to part of
the
isomorphisms.Let
s
I
rgaroM x S bethe
initial fixpoint of
the
abovet
equation.
Cfeanlyg
sendsthe
emptylist to
the
unique objectof
1 and the non-empty
lists into
apai::
consisting
of
theintop
andthein
tail.
Its
inverse rf
sendsthe
uniqueof
1to
the
emptylist
and evenypair of
an atom anda
list into
thelist
resulting
from pushingthe
atom onthe
list.
SymboJ-ically
0(p)
=if
empty(p)
thenr.
else top(p)
x
tad.I(p)0
=nul-l-e
pushNote
1: In
examplesl)
and2) the
procedures have been considened to bewithout side-effects
andglobal
variabl-es, which wasa
grosssimplification.
To be more gene::a] wouldinvolve
intnoducing Environrnents and Stones asin
Mifner-Strachey.Note 2: Arbitnary circular definitions are now avaiLable
in
any data-typesnnot only
thoseof type
pnocedures.l-0.
Impl-ementation.To adopt
a
policy
of
unlimited
useof
ci::cufan mode-definitions would invol-vea
depantune fnomthe
half-stated policy
of
ALGOL 68 whichis that
mode-definitions define
templatesfon
stonageallocation
and of checkingfo::
equivalent
modes.On
the
finst
point
one canonly
notice
that
mode-definitions do notan1rway
define
templates knownto
the
usen.
As Tanenbaumwrites :
rrWhenan integen var:iabl-e acquines a new valueras
in
iz=g
,
the
bit
pattennfor
the
integen
3is
put
into
location
i.
obviousry,
assigning
sin to f
(f:=sin) is
not
goingto
causea
copyof
the pnoced.ure?s machine
codeto
bestuffed
into
the
variabl-ef.
The ALGOL 68 compilen wniter" mustdetermine how
to
implementthis,
but
presumably hewilf
assign pointensto
the
procedurers code and environment (or"the
equivalent)
to f.tt
Andlaten
he says :rtYou rnay be wonder"ing how unionsar€
implemented. pnesurnablythe
compiler:will
haveto
neserve enough spacein
a united
vaniab1efor
the
langest
of
the alternatives
(or:if that is
too
painful,
penhaps onlya
pointer- wil_l_ be stoned).ttClearly the
useno when he defines new modeso doesnot
haveto
knowhow
they wil-l-
be stoned and sometimes hiddenpointers are
involved.
Thisis
ve::y muchto
the
taste
of
the
autho:: who tendsto think that
al_l_ pointersshould be hidden fnom
the
user.0n
the
secondpoint the
authou agreeswith
those manythink
that
mode-equivarencing shoul-dnot
takeplace
at alr.
equivalencing
of
diffenent
modesallows
the
user"to
use thefacilities in
order
to
ensure conrectnessof his
programs.people who
Non-type-checking
-13-Once
it is
admittedthat
modedefinitions
do not dinectly yieldtempfates
for
storage andthat
thene should be no equivalencingof
modes a progrlamming language with full capabilities fon cir"cular
definitions
can be imotemented.11.
ConcJ.lrsionThe above netnanks we:le aimed
at
showingthat a
programminglanguage as powerful as ALGOL 68 and
with
more genenal mode-definitionfacilities
can be definedwith a
vervnatural
semantics.-l_4-BIBLIOGRAPHY
ADJ :
Goguen, Thatchen, Wagner and Wr"ight (l-975)ItAbstr:act data types
as
initial
algebnas andthe
correctnessof
datanepresentationsrr
Pnoceedings, Conference onComputer Gr"aphics,
Pattern Recognition and Data St::uctures,
May 1975.
Lehmann,
Daniel
J.
(fgZ6)
t'Categoniesfon
fi>point
semanticsrr.Theory
of
Computation RepontNo.15
lJnivensityof
Warwick,Dept.
of
Cornputer Science.Liskov-Zill-es
(fgZ+)
rrPrograrnningwith
abstnact data b54pesr'. SIGPLAN Notices 9.Milne-Stnachey
(fSZ0)
A theor^yof
pnognamming languages semantics.Chapman and Hall-.
Scottn Dana
S.
(fgZf)
rrThel-attice
of
flow
diag::amsf'.
Semanticsof
Algorithmic
Languages(E.
Enge1en, ed.)
Springen Lectu::eNotes
in
Mathematics,vol.lBB
(fgZf) pp.
311-368.Scott,
DanaS. (I972)
ttContinuouslatticesrr.
Toposes, AlgebnaicGeometry and
Logic. (ed.
by F.W.
Lawvene). Spninge:: Lecture Notesin
Mathematics, vo1.274 (A972), pp.97-136.Scotto
DanaS.
(fgZO).
"Data typesas
lattices't.
SIAM Jou::nal onComputing.
vol.5.
Tanenbaum, Andr:ew
s.
(fgZ6)
rrAtutonial
on ALGOL 68'r ACM Computing surveys. Volume8.
June 1976.van Wijngaa::den,