Papers on programming languages: ideas from 70's for today

Mikhail Barash
Jul 3, 2018 · 7 min read
Concrete syntax does make a difference. :-)

ALGOL 68 might-have-beens, by S. G. van der Meulen (1977)


On the use of keywords for passing procedure parameters, by Rodney Parkin (1978)

procedure invoke(procedure what_to_invoke(its_param:integer), param:integer);
begin
what_to_invoke(its_param := param);
end;
procedure silly(x:integer); begin end;
invoke(what_to_invoke == silly, param := 1);
IntelliJ IDEA apparently knows about this paper :-)

The use of names to indicate the scope of structured language constructs, by M. G. Richardson (1977)

begin entire_program; ... end entire_program;
While data_available; ... Do ... End While data_available;
void f(int x) {   // over 9000 lines of code} // f

Towards the ideal programming language, by Robert G. Herriot (1977)

function contents(var a memory: some_array_type,
var an index: integer);
begin
contents := the memory[the index];
end;
the initial flight . the departing time . the hour := 9;
initial flight's departing time's hour := 9;
the hour of the departing time of the initial flight := 9;
push 3 on the main stack; // instead of push(3, mainstack);location of "B" in the table // instead of location("B", table)
write the top of the stack, which is then pop'd;3 is push'd on the stack;

Critical comments on the programming language Pascal, by A. N. Habermann (1973)

i := if i = 7 then 1 else i + 1;
if i = 7 then i:=1 else i:=i+1;

Block statements and synonyms for PASCAL, by E. N. Kittlitz (1976)

procedure f;
syn XSYN;
var a, b: integer;
procedure g;
var a, b: integer;
begin
XSYN.a := a;
b := XSYN.b;
end;
begin
...
end;

A survey of control structures in programming languages, by David A. Fisher (1972)

condition(x <- select(0,9)) < (y <- select(0,9)) & (x+y=15);

The chemistry of control structures, by Ben Shneiderman (1974)


Another look at the CASE statement, by W. C. M. Vaughan (1974)


IF-THEN-ELSE considered harmful, by Gerald M. Weinberg, Dennis P. Geller, Thomas W. S. Plum (1975)


Nested scopes in Pascal and Algol 68, by Norman Hardy (1983)


Further critical comments on PASCAL, particularly as a systems programming language, by Reidar Conradi (1976)


Preprocessing of typed two-dimensional mathematical expressions, by Mark B. Wells (1976)


Graphical systems and two-dimensional mathematical expressions, by James E. George (1972)

A language implemented within JetBrains MPS: no problems with two-dimensional notation (and even arbitrary graphical notation!) in its projectional editor

More papers

The remaining trouble spots in ALGOL 60, by Donald E. Knuth (1967)

Ten mini-languages in need of formal definition, by Henry F. Ledgard (1970)

Restricted global variables in Algol 60, by R. A. Krutar (1973)

Variables: bindings and protection, by James E. George, Gary R. Sager (1973)

Global variable considered harmful, by W. Wulf, Mary Shaw (1973)

Comments considered harmful, by Anders Beckman (1977)

Structured languages, by Leon Presser (1975)

A compatible “structured” extension to Fortran, by Loren P. Meissner (1974)

Array reference operations, by J. B. Hext (1975)

The problem of the definition of subroutine calling conventions, by William A. Wulf (1972)

Suggested revisions and additions to the syntax and control mechanisms of SNOBOL4, by Ralph E. Griswold (1974)

On a missing mode in ALGOL 68, by H. D. Baecker (1972)

Issues in programming language design: an overview, by Anthony I. Wasserman (1975)

The design of a procedureless programming language, by Clair W. Goldsmith (1974)

Control constructs for programming languages, by Eberhard Wegner (1975)

Algol 68 as an extensible language, by Barry J. Mailloux, John E. L. Peck (1969)

Extensibility in programming language design, by Thomas A. Standish (1975)

Alternatives to extensible languages, by M. D. McIlroy (1969)


Mikhail Barash

Written by

Programming languages, JetBrains MPS, Kotlin, Xtext. Ph.D. in parsing. https://twitter.com/mikhail_barash

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade