Andrew D0 Mc6E77R1CK Department 0f C0mputer 5c1ence Un1ver51ty 0f 5trathc1yde 61a590w~ 5c0t1and 0r191na11y AL60L de519ned, 6815a9enera1pr10r PurP°5et01968 ~r°9r~2~9 • • t01an9ua9ec0mmun1cate wh1ch wa5 a190r1thm5, t0 execute them eff1c1ent1y 0n a var1ety 0f d1fferent c0mputer5, and t0 a1d 1n teach1n9 them t05tudent5 • •. 7he rev15ed ver510n 0f the 1an9ua9e appeared 1n 1975 (5ee [29]). Future reference5 t0 AL60L 681n th15 paper refer t0 th15 Rev15ed Rep0rt0 1n 0rder t0 meet the5e a1m5 AL60L 68 wa5 de519ned 1n an 0rth090na1 fa5h10n: 6y 11m1t1n9 the num6er 0f new c0ncept56ut a110w1n9 them t06e u5ed 1n a5 many way5 and a5 many p1ace5 a5 p055161e the 0rth090na11dea ev01ved0 A50ften happen5 the de519n 0f a Pr09ramm1n91an9ua9e and the meth0d 0f f0rma1 def1n1t10n are 1nterre1ated. 1n the AL60L 68 ca5e the 0rth090na11ty 15 ach1eved 6y mean50f a tw0-1eve19rammar, the tw0 axe50f 0rth090na11ty 6e1n9 ju5t the tw0 d1fferent 1eve150f 9rammar~ 7he m0de 5tructure 0f AL60L 6815 fa1r1y 50ph15t1cated. 1n th15 paper we c0n51der 50me a5pect50f m0de5 wh1ch ar15e natura11y a5 a re5u1t 0f a cr1t1ca1 rev1ew 0f the m0de 5tructure. 1n 50me ca5e5 we a5k why there are re5tr1ct10n50n the way51n wh1ch m0de5 can 6e f0rmed and what w0u1d happen 1f the5e were re1axed, 1n 50me ca5e5 we a5k why certa1n m0de5 are 5en5161e and 1n 0ther ca5e5 we p01nt 0ut def1c1enc1e5 1n the m0de 5tructure 1t5e1f. 7he remark5 c0nta1ned here are c0nf1ned t0 remark5 a60ut m0de51n AL60L 68. 0ther feature50f the 1an9ua9e d0 mer1t 50me d15cu5510n, (see [25] [26])criticism,and/°r exp1anat10n; m05t 0f the5e have 6een ment10ned e15ewhere Much 0f the c0ntent50f th15 paper 15 n0t new. 8ut 1t 5eemed 5en5161e t09ather t09ether 1n the 0ne paper the w1de var1ety 0f remark5 that have 6een made 0n the AL60L 68 m0de 5tructure and t0 add 50me 0ther5.
[1]
Craig Schaffert,et al.
Abstraction mechanisms in CLU
,
1977,
Commun. ACM.
[2]
James H. Morris.
Protection in programming languages
,
1973,
CACM.
[3]
Daniel Lehmann.
Modes in Algol Y
,
1977
.
[4]
C. H. Lindsey,et al.
A Modules and Separate Compilation facility for ALGOL 68
,
1978
.
[5]
Mary Shaw,et al.
Abstraction and verification in Alphard: Defining and specifying iteration and generators
,
1977
.
[6]
H. D. Baecker,et al.
On a missing mode in ALGOL 68
,
1972,
SIGP.
[7]
Edwin H. Satterthwaite,et al.
Early experience with Mesa
,
1977,
CACM.
[8]
S. G. van der Meulen,et al.
ALGOL 68 might-have-beens
,
1977,
Strathclyde ALGOL 68 Conference.
[9]
Dana S. Scott,et al.
Data Types as Lattices
,
1976,
SIAM J. Comput..
[10]
Examples L. Parnas,et al.
A Technique for Software Module Specification with
,
1972
.
[11]
Narain H. Gehani,et al.
Some ideas on data types in high-level languages
,
1976,
CACM.
[12]
M. Sintzoff.
A brief review of ALGOL 68
,
1974
.
[13]
Dana S. Scott,et al.
Outline of a Mathematical Theory of Computation
,
1970
.
[14]
David Lorge Parnas,et al.
A technique for software module specification with examples
,
1972,
CACM.
[15]
Jacob T. Schwartz,et al.
Automatic data structure choice in a language of very high level
,
1975,
CACM.
[16]
B. J. Mailloux,et al.
Report on the Algorithmic Language ALGOL 68
,
1969
.
[17]
Dana S. Scott,et al.
The lattice of flow diagrams
,
1971,
Symposium on Semantics of Algorithmic Languages.
[18]
John D. Gannon.
An experimental evaluation of data type conventions
,
1977,
CACM.