Programming Languages

Literature references and annotations by Dick Grune, Last update: Wed Sep 16 23:04:54 2009.
These references and annotations were originally intended for personal use and are presented here only in the hope that they may be useful to others. There is no claim to completeness or even correctness. Each annotation represents my understanding of the text at the moment I wrote the annotation.
No guarantees given; comments and content criticism welcome.

* Simon Thompson, "Haskell: The Craft of Functional Programming", Addison-Wesley, Harlow, UK, 1999, pp. 487.
After an easy-paced 7-chapter introduction to Haskell and its implementation Hugs, the link between program development and correctness proof is emphasized in Chapter 8. Chapters 9 to 17 cover increasingly more advanced subjects (including overloading, algebraic types, abstract data types, lazy evaluation, and I/O), culminating in an understandable explanation of monads. An appendix compares functional programming with imperative and object-oriented.

* Tim Lindholm, Frank Yellin, "The Java Virtual Machine Specification", 2nd Edn., Addison-Wesley, Reading, Ma., 1999/1997, pp. ???.
That, plus the class file format, plus advice on compiling for the Java Virtual Machine, plus advice on thread and locks.

* Bill Venners, "Inside the Java Virtual Machine", 2nd Edn., McGraw-Hill, 1999, pp. ???.

* David Arnow, Gerard Weiss, "Introductory Programming with Java -- An Object-oriented Approach", Addison-Wesley-Longman, 1998, pp. 836.

* John Lewis, William Loftus, "Java -- Software Solutions -- Foundations of Program Design", Addison-Wesley, Reading, Mass., 1998, pp. 857.
Combined and parallel explanation of introductory computer science, Java, basic algorithms, computer and network technology, GUIs, etc. Very American, contains a whopping 300 pages of Appendices.

* Charles F. Goldfarb, Paul Prescod, "The XML Handbook", Prentice Hall PTR, Upper Saddle River, NJ 07458, 1998, pp. 639.
Extensive but rather oddly structured explanation of many aspects of XML: philosophy, basics, syntax, style sheets, applications, etc.

* Peter Abel, "IBM PC Assembly Language and Programming", 4th Edn., Prentice Hall, 1998, pp. 606.

* Norman Walsh, "A technical introduction to XML", Arbor Text, Inc., Feb. 1998, pp. 18.

* Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, "Extensible Markup Language (XML) 1.0", w3, 1998, pp. 32.

* Jeff Holtzman, "XML update, C++ Builder, and more", Electronics Now, 69, #8, Aug. 1998, pp. 16,25.
Discussion of some books on XML.

* Jeff Holtzman, "XML: Who controls the DTD?", Electronics Now, 69, #7, July 1998, pp. 25,26,30.
Very palatable introduction to XML, newspaper-style. Emphasizes the fact that XML is a streamlined SGML.

* Eli Willner, "Preparing data for the Web with SGML / XML, Part I/II/III", Information Today, 15, #5/6/7, May/June/July 1998, pp. 54/52-54/39,42.
Explanation of SGML/XML, reasons to convert. Good advice about and seven golden rules for converting to SGML/XML.

* James Clark, "Associating stylesheets with XML documents", w3, Apr 1998, pp. 2.

* Microsoft, "XSL Tutorial", Microsoft Corporation, Jan. 1998, pp. ~40.

* R. Robson, "Using the STL -- The C++ Standard Template Library", Springer, New York, 1997, pp. ~440.

* H.M. Deitel, P.J. Deitel, "Java How to Program -- with an Introduction to Visual J++", Pentice Hall, Upper Sadle River, NJ 07458, 1997, pp. 1114.
Massive and sometimes overwhelming exposition of the subject, of a mixed nature: partly Java text book and partly introduction to programming language principles, data structures and concurrent programming. Full of examples and of an inimitable style; most of the examples are interactive and window-oriented. Tons of good advice. Still, some ways of presentation may give the student a wrong impression. Examples are the use of the term "syntax error" for any error the compiler can spot including context errors, and presenting the while statement before the for statement; the latter may be in principle correct in Java, but gives a funny slant on programming.

* Bjarne Stroustrup, "The C++ Programming Language", 3rd Edn., Addison-Wesley, Reading, Mass., 1997, pp. 910.
Massive description of the language, in four parts: basic facilities, abstraction mechanisms, standard library, and design using C++. Full of examples, details and programming advice.

* William Ford, William Topp, "Assembly Language and Systems Programming for the M68000 Family", Second Edn., Jones and Bartlett, 1996 , pp. 890.

* Larry Wall, Tom Christiansen, Randal L. Schwartz, "Programming Perl", 2nd Edn., Nutshell Handbook, O'Reilly, Sebastopol, Ca., 1996, pp. ???.

* S. Meyers, "More Effective C++", Addison-Wesley, ???, 1996, pp. ???.

* Ed Anuff, "The Java Source Book", John Wiley, New York, 1996,
[ -.00050.IR ]

* Ken Arnold, James Gosling, "The Java Programming Language", Addison-Wesley, Reading, Mass., 1996, pp. 329.
Reasonably down to earth explanation of the language, its features and its applicability. Full of examples; occasional exercises.

* Mary Champione, Kathy Walrath, "The Java Tutorial", Addison-Wesley, Reading, Mass., 1996, pp. ???.

* James Gosling, Bill Joy, Guy Steele, "The Java Language Specification", Addison-Wesley, Reading, Mass., 1996, pp. 825.
Detailed exposition of same; not as boring as it might have been. Includes advice on naming, conventions to be followed, etc.
By manipualting the paper thickness, the publishers have managed to give all books in this series about equal width, although some differ by more than a factor of two in page numbers.

* Patrick Chan, Rosanna Lee, "The Java Class Libraries", Addison-Wesley, Reading, Mass., 1996, pp. ???.

* Doug Lea, "Concurrent Programming in Java", Addison-Wesley, Reading, Ma., 1997, pp. ???.

* James Gosling, Frank Yellin, The Java Team, "The Java Application Programming Inteface, Volume 1 -- Core Packages", Addison-Wesley, Reading, Ma., 1997, pp. ???.

* James Gosling, Frank Yellin, The Java Team, "The Java Application Programming Inteface, Volume 2 -- Window Toolkit and Applets", Addison-Wesley, Reading, Ma., 1997, pp. ???.

* Jon Bosak, "XML -- Questions and answers", w3, 1997, pp. .

* James Clark, "Comparison of SGML and XML", w3, Dec. 1997, pp. 14.

* Dan Connolly, Rohit Khare, Adam Rifkin, "The evolution of Web documents: The ascent of XML", World Wide Web J., 2, #4, Fall 1997, pp. 119-128.

* Henry G. Baker, "COMFY -- A comfortable set of control primitives for machine language programming", ACM SIGPLAN Notices, 32, #6, June 1997, pp. 23-27.

* Chris Houser, "Manual and compiler for the terse and modular language DEM", ACM SIGPLAN Notices, 31, #12, Dec. 1996, pp. 41-51.
DEM is a subset of Demeter (Lieberherr) with a very terse syntax. It has a large number of defaults built in, which is the main source of its terseness. The compiler is indeed there, in 100 lines of Perl; it translates to C++.

* Melvyn King, John Pardoe, Paul Vickers, "A First Course in Computer Programming Using C", McGraw-Hill, London, 1995, pp. 242.
The book seems indeed suitable for absolute beginners, as far as these things can be determined without class room testing. The explanations are clear and cover much ground. Whether it is wise to treat the while loop before the for-loop is not immediately clear; actually it might make sense.

* Timothy A. Budd, "Multiparadigm Programming in Leda", Addison-Wesley, Reading, Ma., 1995, pp. 394.

* Brian Harvey, "Computer Science, Logo Style", MIT Press, Cambridge, Mass., Feb. 1997, pp. 1068.
Volume 1: Symbolic Computing; Volume 2: Advanced Techniques; Volume 3: Beyond Programming.

* David Roos Gomberg, Robert P. O'Hara, "Modern Programming Using REXX", Prentice Hall, Feb. 1988, pp. 240.

* J.K. Ousterhout, "Tcl and the Tk toolkit", Addison-Wesley, 1994,

* Eric van Herwijnen, "Practical SGML", 2nd Edn., Kluwer Academic Publishers, Boston, 1994, pp. 288.
Extensive and personal though sometimes erratic description of SGML, clearly written by an opiniated enthousiast. Full of information, advice, tidbits of knowledge, examples and exercises, all arranged around a few phrases from Orwell's Aminal Farm.
SGML is explained completely in its own particular terminology, so the book does nothing to reduce the gap between SGML and computer science.

* Aaron Kans, Clive Hayton , "Using ABC to Prototype VDM Specifications", ACM SIGPLAN Notices, 29, #1, Jan. 1994, pp. 27-36.

* Colin Charlton, Paul Leng, Janet Little, "A Course on C", McGraw-Hill, London, 1993, pp. 233.
The book is unusual in that it introduces debugging, using tools, right from the start; how this reflects in C remains to be seen:-) Initially, the book addresses absolute beginners and the authors make a discernible effort to address the ignorant as normal people. The book then progressively covers more material, arrays, arrays of arrays, structs, linked lists, trees, to end with an entire chapter on pointers to functions. The compilation process and standard libraries are covered extensively. The scope rules, notorious in C, are explained twice, once in the introduction where they are simplified so as to verge on the incorrect, and further on, where the explanation is essentially correct.
Enough material for a solid course in C.
The lazy nature of the && and || is not explained; hex constants are shown but not explained.

* G.S. Popkin, "Comprehensive Structured COBOL", 4th ed., Boston, PWS-Kent Pub. Co., 1993, pp. 805.

* Randal Schwartz, "Learning Perl", O'Reilly, Sebastopol CA, 1993, pp. ???.

* A. Oram, S. Talbott, "Managing Projects with make", O'Reilly & Associates, Sebastopol CA, 1993, pp. 149.
Includes extensive description of suffix rules, project management, comparison of various makes.

* G.R. Andrews, R.A. Olsson, "The SR Programming Language: Concurrency in Practice", Benjamin/Cummings, Redwood City CA, 1993,

* Rina Yarmish, "Structured Cobol: a Direct Approach", Englewood Cliffs, N.J., Prentice Hall, 1993, pp. 686.

* J.E. Cooling, N. Cooling, J. Cooling, "Introduction to Ada", Chapman & Hall, London, 1993, pp. 605.
Entertaining and yet thorough text book on Ada. Covers methodological issues where useful; explains fully the need for high-level languages, structuring, constant declarations, arrays, etc. Full of amusing and instructive cartoons, typographically well supported, though perhaps somewhat loud. Definitely a good book to learn Ada from, if you're not a techofreak. Full treatment of the language, including generics, tasks, I/O and some pragmas. Less bone dry than Barnes, but perhaps sometimes too explicit.

* C.J. Date, Hugh Darwen, "A Guide to the SQL Standard", 3rd Edn., Addison-Wesley, Reading, Mass., 1993, pp. 414.
Heavily footnoted full coverage of an increasingly complex language. Not for beginners.

* B. Nordin, D.T. Barnard, I.A. Macleod, "A review of the Standard Generalized Markup Language (SGML)", Computer Standards and Interfaces, 15, 5-19, pp. 1993.

* S. Tucker Taft, "Ada 9X: From abstraction-oriented to object-oriented", ACM SIGPLAN Notices, 28, #10, Oct. 1993, pp. 127-136.

* J. Hernández, P. de Miguel, M. Barrena, J.M. Martínez, A. Polo, M. Nieto, "ALBA -- A parallel language based on actors", ACM SIGPLAN Notices, 28, #4, April 1993, pp. 11-20.

* Keith Tizzard, "C for Professional Programmers", 2nd Edn., Simon & Schuster, 1992, pp. .

* John R. Rose, Hans Muller, "Integrating the Scheme and C languages", Proceedings of the 1992 ACM Conference on Lisp and Functional Programming, 1992, pp. 247-259.

* James O. Coplein, "Advanced C++ -- Programming Styles and Idioms", Addison-Wesley, 1992, pp. .

* Dale Dougherty, "sed & awk", O'Reilly & Associates, Sebastopol CA, 1992, pp. 397.
Pages 1-140: sed; 141-315: awk/nawk; 316-397: Quick References.

* Antony J.T. Davie, "An Introduction to Functional Programming Systems using Haskell", Cambridge Computer Science Texts, #27, Cambridge University Press, Cambridge, UK, 1992, pp. 290.
The book fully supports the title: functional programming is explained with some zeal in densely written prose, using Haskell as the vehicle. Consequently, it also treats concepts not found in Haskell, e.g. data laws. Some subjects are: polymorphic and algebraic types, lambda calculus, normal forms, reduction order, lazy evaluation and correctness proofs. The full range of functional programming applications is covered, including OS interaction and parallel processing. Implementation problems and existing projects are also discussed.
See also review by Reginald Meeson, ACM SIGPLAN Notices, 27, #11, p. 11, Nov. 1992.

* Martin Reiser, Niklaus Wirth, "Programming in Oberon: Steps beyond Pascal and Modula", ACM Press, Addison-Wesley, Reading, Mass., 1992, pp. 320.
Very roughly, Oberon is Modula-2 minus the low-level features plus type extension. Better than most Wirth books.

* Larry Wall, Randal L. Schwartz, "Programming Perl", Nutshell Handbook, O'Reilly, Sebastopol, Ca., 1992, pp. 465.
Extensive; with candid chapter titles like "The Gory Details". Many worked examples.

* S. Tucker Taft, "Ada 9X: a technical summary", Commun. ACM, 35, #11, pp. 77-82. Nov. 1992,
Ada 9X is expected to have the following new features:
-- Access types to subprograms (it seems to me that the X in Ada 9X may be there because 9X resulted from failed attempts to implement X Windows in Ada 83).
-- Extended types: add components during new types definitions: type Y is new X with record ... end record; this gives single inheritance.
-- Types have a new attribute 'CLASS which is the set of all types extended from it. To be used for parameters to polymorphic subprograms. The run-time system maintains type information to find the proper subprograms dynamically.
-- Library unit names form a tree-structured name space.
-- Programs can consist of "partitions", each with a separate address space, communicating via shared packages and/or RPC.
-- Protected types: types with built-in exclusive access and entry barriers for the operations.

* Edmond Schonberg, Mark Gerhardt, Charlene Hayden, "A technical tour of Ada", Commun. ACM, 35, #11, pp. 43-52. Nov. 1992,

* John Caspers, "Werken met Borland C++", Sybex, Soest, Neth., 1992, pp. 559.

* Richard Mitchell, "Abstract Data Types and Modula-2", Prentice Hall, Hemel Hempstead, 1992, pp. 389.
How to do object-oriented programming in Modula-2. Lots of good and experienced advice. Marvelous chapter on choosing names in programs. Two-thirds of the book is a case study of writing a text indexing program in Modula-2 in object-oriented style.

* Conrad Weisert, "Macros for defining C++ classes", ACM SIGPLAN Notices, 27, #11, pp. 67-76. Nov. 1992,

* Alexander Sakharov, "Macro processing in high-level languages", ACM SIGPLAN Notices, 27, #11, pp. 59-66. Nov. 1992,

* Henri E. Bal, M. Frans Kaashoek, Andrew S. Tanenbaum, "Orca: A language for parallel programming of distributed systems", IEEE Transactions on Software Engineering, 18, #3, March 1992, pp. 190-205.

* "HyperCard IIgs Script Language Guide: the HyperTalk Language", Addison-Wesley, Reading, Mass., 1990, c1991, pp. 401.
Authorless manual on HyperTalk. The thing you need around when programming in it. 100 pages of language features (messages, objects, values, expressions and control structures), 300 pages of manual pages for commands, functions and properties.

* Dan Shafer, "The Complete Book of HyperTalk 2", Macintosh Inside Out, Addison-Wesley, Reading, Mass., 1991, pp. 444.
Earlier title: HyperTalk Programming (with Hayden Books). Excellent and enthusiastic text book on HyperText. No explicit exercises but plenty of case studies and what the author calls `hands-on exercises', in which the user is invited to try certain things. Introductory explanation of HyperCard. The text covers the full use of HyperTalk; it has a section on debugging.
HyperTalk is object-oriented in that it has five built-in types (stacks, backgrounds, cards, buttons and fields) that behave as object types. They understand messages and have methods, but there is little in the way of inheritance.

* Stephen M. Omohundro, "The Sather Language", ICSI, Berkeley, 1991,

* B. Meyer, "Eiffel -- The Language", Englewood Cliffs, N.J., Prentice-Hall, 1991,

* Nancy Stern, Robert A. Stern, "Structured COBOL Programming", 6th edn, Wiley, New York, 1991, pp. 763.
Includes booklet The COBOL syntax reference guide (73 p.). Excellent and cheap.

* Gottfried Vossen, "Data Models, Database Languages, and Database Management Systems", International Computer Science Series, Addison-Wesley, Workingham, England, 1991, pp. 590.
Treats DDL and DDM of Siemens UDS, IBM's IMS, SQL and user interfaces to them.

* Dean W. Gonzalez, "Ada Programmer's Handbook", Benjamin/Cummings, Redwood City, Ca 94065, 1991, pp. ± 250.
The book consists of eight parts: a glossary of Ada terms (extensive but concise); six small example programs; a list of common errors with examples, both compile-time and run-time; syntax summary (alphabetical); syntax diagrams (alphabetical); extensive bibliography, not annotated; predefined packages; quick reference guide.

* W.S. Brainerd, Ch.H. Goldberg, J.C. Adams, "Fortran 90", Academic Service, Schoonhoven, pp. 463. 1991,

* H. Levy, et al., "Emerald: a general purpose programming language", Software Practice & Experience, 21, #1, pp. 1-118. 1991,

* Hans P. Zima, "A constraint language and its interpreter", Computer Languages, 11, #2, pp. 65-83. July 1991,
Describes a straightforward equation solver in detail. The equation solver can handle conditional expressions (but no inequalities, as far as I can see).

* S. Pemberton, "A short introduction to the ABC language", ACM SIGPLAN Notices, 26, #2, Feb. 1991, pp. 11-16.

* ?. Ellis, Bjarne Stroustrup, "The Annotated C++ Reference Manual", Addison-Wesley, Reading, Mass., 1990, pp. ???.
Includes the C++ name mangling algorithm.

* Robin Milner, Mads Tofte, Robert Harper, "The Definition of Standard ML", The MIT Press, 1990,

* C.F. Goldfarb, "The SGML Handbook", Claredon Press / Oxford University Press, Oxford, 1990, pp. ???.

* Michael Eisenberg, "Programming in Scheme", edited by Harold Abelson, MIT Press, Cambridge, Mass., 1990, pp. 304.
The book can be seen as a programming companion to Abelson and Sussman's book `Structure and Interpretation of Computer Programs'. It teaches programming at a slow pace, using PC Scheme as a vehicle. It may be intended for children and teenagers (though it does not say so), but even then it occasionally verges on the condescending. It may be symptomatic of the language that the library copy of the book which I saw had many pencil lines in it connecting open and close parentheses.

* M.F. Cowlinshaw, "The REXX Language", Prentice Hall, Englewood Cliffs, NJ, 1990, pp. 203.
The language in all its ugliness.

* Roger Bailey, "Functional Programming with HOPE", Ellis Horwood Series in Computers and their Applications, Ellis Horwood, New York, 1990, pp. 301.
This text book aims to teach good programming. It does so by teaching good functional programming and uses Hope as a vehicle. Although the proclaimed emphasis is on programming, Hope itself gets about equal time. The exercises are rather scholastic.

* W.S. Brainerd, C.H. Goldberg, J.C. Adams, "Programmer's Guide to Fortran 90", McGraw-Hill, New York, NY, 1990, pp. 410.
Not available in the Netherlands; see Dutch translation.

* Lowell Jay Arthur, "UNIX Shell Programming", 2nd Edn., John Wiley, New York, 1990, pp. 272.
Consists of three parts: Shell for the novice, Shell programming for the user, and Shell programming for the power user. Treats the shell as a real programming language. Also treats paraphernalia like lex, make, etc. Some emphasis on system administration.

* Ray Swartz, "UNIX applications programming: mastering the shell", Howard W. Sams & Co., Carmel, Ind., 1990, pp. 452.
Not in libraries in the Netherlands. (930507).

* Alan Burns, Andy Wellings, "Real-Time Systems and Their Programming Languages", Addison-Wesley, Wokingham, England, 1990, pp. 575.

* Robert J. Bent, George C. Sethares, "Basic -- An Introduction to Computer Programming", 4th Edn., Brooks/Cole, Pacific Grove, Calif., pp. 384. 1990,
The book presents an elementary though useful cross-section of computing, from what a PC is to heapsort, all geared to Basic. The style is reassuring and the people in the photographs are obligingly multi-ethnic.

* Kazunori Ueda, Takashi Chikayama, "Design of the kernel language for the parallel inference machine", Computer J., 33, #6, pp. 494-500. 1990,
KL1 is the kernel language of the FGCS project; it is intended to allow logic programming on PIMs (Parallel Inference Machines).
At first sight, KL1 seems Prolog-like, and it is introduced as such, but there are profound differences, the main one being that KL1 has no built-in resolution mechanism; it has unification of parameters, though. Several problems had to be solved to reach a form of Horn Clauses that would accommodate parallelism, synchronization, I/O and efficient implementation easily. KL1 clauses are protected by guards, which are in themselves goals; these goals in the guards are restricted to built-in predicates only. When a goal comes up for evaluation, all guards of all clauses of it are evaluated in parallel; the guards cannot instantiate variables, and if a guard needs the value of an uninstantiated variable, it blocks. If all goals in a guard succeed, the corresponding clause is available. If one or more guards succeed, one of the available clauses is chosen, and the goals in its body are evaluated in parallel; these goals can instantiate variables.
The above assures that if an instantiation is made, it is never revoked. Output to other processes is done by making bindings visible to them (through shared variables) and input is done by accepting instantiation from outside. This design provides parallelism and synchronization, but robs the Horn Clauses of their search capability, since it precludes any form of backtracking. Consequently, KL1 is not a logic language in the normal sense of the word.
To control and improve the efficiency, KL1 has a superimposed pragma language, the objects of which are the processes (goals being evaluated) described by the program. Processes can be manipulated (assigned to a processor; given a priority; etc.) singly or in groups. The latter are defined by the programmer and are called sho-ens. The pragmas do not affect the correctness and may be obeyed, delayed or ignored at the discretion of the OS. This separates program correctness from program optimization by parallelism.
An instantiated variable is immutable, but to gain efficiency, KL1 has instructions to obtain a modified copy of a variable quickly. If no other process (= goal being evaluated) uses the variable, the variable is modified in situ, otherwise a copy is made.
The paper describes the lines of reasoning that led to the design of KL1.

* Stephen G. Kochan, Patrick H. Wood, "UNIX Shell Programming", Rev. Edn., Hayden Books, Carmel, Indiana 46032, 1990, pp. 490.
Slow-paced and very explicit treatment. The first 100 pages cover elementary UNIX commands, then come 200 pages about the shell proper, followed by material on the Korn shell. The book closes with summaries of the Bourne shell and the Korn shell, 50 pages each.

* Henri E. Bal, Andrew S. Tanenbaum, M. Frans Kaaskoek, "Orca: A language for distributed programming", ACM SIGPLAN Notices, 25, #5, May 1990, pp. 17-24.

* S.C. Dewhurst, K.T. Stark, "Programming in C++", Prentice-Hall, Englewood Cliffs, NJ., 1989, pp. ???.

* J.R. Nestor, J.M. Newcomer, P. Giannini, D.L. Stone, "IDL: The Language and Its Implementation", Prentice Hall, Englewood Cliffs, 1989, pp. ???.

* Leo Geurts, Lambert Meertens, Steven Pemberton, "The ABC Programmer's Handbook", Prentice-Hall, 1989, pp. ???.
Full details of ABC and the implementations, along with many example programs.

* George Springer, Daniel P. Friedman, "Scheme and the Art of Programming", McGraw-Hill, New York, 1989, pp. 595.

* A. Goldberg, "Smalltalk-80: The Language", Addison-Wesley, Reading MA, 1989,

* P.H. Winston, B.K.P. Horn, "LISP", 3rd Edn., Addison-Wesley, Reading MA, 1989,
Includes classes, generic functions, constraint propagation, streams, delayed evaluation, backward chaining, etc, etc.

* Dennis Harper, "Logo: Theory & Practice", Brooks/Cole Pub. Co., Pacific Grove, Calif., 1989, pp. .

* C.J. Date, "A Guide to the SQL Standard", 2nd Edn., Addison-Wesley, Reading, Mass., 1989, pp. 228.
Good introduction to SQL.

* Adobe Systems Incorporated, "PostScript Language: Reference Manual", Addison-Wesley, Reading, Mass., 1989, pp. 321.

* Ken Shumate, "Understanding Ada with Abstract Data Types", John Wiley & Sons, New York, 1989, pp. 535 + appendices.

* Susan Fife Dorchak, Patricia Brisotti Rice, "Writing Readable Ada -- A Case Study Approach", D.C. Heath & Co., Lexington, Mass., 1989, pp. 244.

* Leen Ammeraal, "ANSI C", in Dutch: ANSI C, Academic Service, Schoonhoven, 1989, pp. 244.
Straightforward description of ANSI C, no superfluous word in it.

* J.G.P. Barnes, "Programming in Ada", 3rd Edn., Addison Wesley, Reading, Mass., pp. 494. 1989,

* Raphael L. Levien, "Io: a new programming notation", ACM SIGPLAN Notices, 24, #12, pp. 24-31. Dec. 1989,
A very nifty crossbreed between HET and functional languages, with being derived from either.

* John D. Ramsdell, "The Alonzo functional programming language", ACM SIGPLAN Notices, 24, #9, Sept 1989, pp. 152-157.
A lazy parallel functional programming language derived from Scheme.

* Jerry D. Smith, "An introduction to Scheme", Prentice Hall, Englewood Cliffs, N.J., 1988,

* Adobe Systems Incorporated, "PostScript Language -- Program Design", Addison-Wesley, Reading, Mass., 1988, pp. 224.

* M. Friendly, "advanced LOGO -- a language for learning", Lawrence Erlbaum Assoc., Hillsdale, NJ., 1988, pp. ???.
Includes high-level applications like dampened springs.

* Bertrand Meyer, "Object-Oriented Software Construction", Prentice Hall, New York, 1988, pp. 534.
Actually largely an Eiffel Manual.

* INMOS Limited, "occam 2 Reference Manual", Prentice Hall, International Series in Computer Science, Englewood Cliffs, NJ, 1988, pp. 133.

* Richard C. Holt, Philip A. Matthews, J. Alan Rosselet, James R. Cordy, "The Turing Language, Design and Definition", Prentice-Hall, Englewood Cliffs, 1988, pp. 325.

* J. Heath, L. Welsh, "Difficulties in parsing SGML", in ACM Conference on Document Processing Systems, Santa Fe, New Mexico, Dec. 5-9, 1988, New York, ACM, 1988, pp. 71-77.
After some laments on the technical incompetence displayed in designing standards, the authors, working at the National Bureau of Standards, explain how they constructed a parser for SGML as defined in ISO 8879, 1986 and what difficulties they encountered. Unfortuantely, none of this is described in sufficient detail to be evaluated. The parser is constructed by using lex exclusively, exploiting the fact that DTD are not (usually?) recursive; the system allows calls to other FSAs, however, inside the code of an FSA, without allowing recursion, it seems.
The authors list a number of problems, without giving examples or further elucidation. Most seem to arise from a lack of familiarity with computer science and parsing on the part of the SGML designers. 1. SGML entity processing can not be implemented by C macro processing. True, since entities in SGML are trees and macros in C are strings. Doubtful. 2. Tag minimization complicates parsing. No explanation given, except the remark that tag minimization is different in ( ( A , B ) | B ) and ( A ? , B ) . 3. CR is treated differently from LF. Bothersome, but this is not a parsing issue. 4. The &-connector is a nuisance. Agreed, but no explanation given. 5. Furthermore the authors claim that any parts of SGML that are not regular, are context-sensitive, i.e., there is no context-free layer.
Summary: might have been meaningful, no, would no doubt have been meaningful, had the authors substantiated what they now claim antagonistically. It seems none of this has had any impact on the SGML definition.

* Thomas Cooper, Nancy Wogrin, "Rule-based Programming with OPS5", Morgan Kaufmann Publ., San Mateo, Ca., 1988, pp. 350.
An OPS5 program has a workspace in which "Working Memory Elements" (WMEs) reside; WMEs are in essence structured values with a time stamp. The program consists of an unordered set of rules, "condition-action pairs". The OPS5 engine goes through a recognize-act cycle. Rule recognition consists of two steps, match and select. The match step matches all WMEs to all conditions, instantiating condition variables by unification, called "inter-element match"; this yields the active set, called "conflict set" here. The select steps select one rule to be performed, using conflict resolution if needed. Conflict resolution involves such criteria as the time stamps of the matched WMEs and the specificity (~ length) of the condition. Action include adding, modifying, removing and displaying WMEs, binding values to variables, calling external subroutines and halting the program.

* Jim van Keulen, "Modula-2 -- een inleiding", in Dutch: "Modula-2, an Introduction", Academic Service, Schoonhoven, pp. 258. 1988,
No-nonsense introduction, teaching both elementary programming and Modula-2. Also introduces EBNF.

* W.F. Schelter, M. Ballantyne, "Kyoto Common Lisp", AI Expert, 3, #3, 1988, pp. 75-77.

* N. Wirth, "The programming language Oberon", SP&E, 18, #7, July 1988, pp. 671-690.

* N. Wirth, "From Modula-2 to Oberon", SP&E, 18, #7, July 1988, pp. 661-670.

* Jacques Cohen, "A view of the origins and development of Prolog", Commun. ACM, 31, #1, Jan. 1988, pp. 26-36.
The author shows how Prolog arose as the combined result of 1. parsing and natural language processing (Colmerauer); and 2. theorem proving (Kowalski). W grammars also played an important role.

* R. Kent Dybvig, "The Scheme Programming Language", Prentice-Hall, Englewood Cliffs, N.J., 1987, pp. 242.
Scheme is dialect of Lisp featuring static scoping, first-class (typed) procedures, objects and continuations. It still suffers from parenthitis. There is a function \*<extend_syntax\*> which allows a pattern matcher for new syntax to be introduced. Much of the language can be (is?) defined in this way.
The book assumes knowledge of Lisp or at least of programming and list processing. It is a straightforward explanation of Scheme, for the practical programmer.

* Leo Brodie, Forth Inc., "Starting Forth", 2nd Edn., Prentice-Hall Software Series, Prentice-Hall, Englewood Cliffs, NJ, 1987, pp. 346.
Entertaining and very useful text book, though not academic level. A bit weak on exercises.

* R.J. Pooley, "An Introduction to Programming in SIMULA", Computer Science Texts, Blackwell Scientific Publications, Oxford, 1987, pp. 333.
A steady-paced introduction focusing on the language rather than on simulation applications. Conforms to the 1986 SIMULA Standard. Quite palatable.

* Kevin P. Roddy, "UNIX NROFF/TROFF: a user's guide", Holt, Rinehart and Winston, New York, 1987, pp. 362.
Disappointing in that it shows a lot of troff code but does not show the results; the results are only described.

* Geraint Jones, "Programming in occam", Prentice Hall, International Series in Computer Science, Englewood Cliffs, NJ, 1987, pp. 182.

* Åke Wikström, "Functional Programming Using Standard ML", Prentice Hall, London, 1987, pp. 446.
Rather long-winded explanation of how to program in ML; the English is misleading in places.

* Robin Jones, Ian Steward, "The Art of C Programming", Springer-Verlag, New York, 1987, pp. 186.

* Yasunori Kimura, Takashi Chikayama, "An abstract KL1 machine and its instruction set", in 1987 Symposium on Logic Programming, pp. 468-477. 1987,
KL1 is flat guarded Horn clauses, i.e., Prolog with a point of no return in each right hand side. The code before the point of no return, the guard, may contain built-in predicates only. In reducing the goal, the guards of all of its alternatives are reduced in parallel (OR parallelism). For all that succeed, the guarded code is reduced in parallel (AND parallelism). The paper describes an interpreter which is structured in such a way that parts of it can be easily implemented in hardware. It is similar to the Warren machine.

* P. O'Brian, et al., "The Trellis Programming Environment", ACM SIGPLAN Notices, 22, #12, Dec 1987,

* Steven Pemberton, "An alternative simple language and environment for PCs", IEEE Software, 4, #1, Jan. 1987, pp. 56-64.
Plug for ABC.

* R. Nigel Horspool, "C Programming in the Berkeley UNIX Environment", Prentice-Hall, Scarborough, Ont., 1986, pp. 303.
Readable, real-life and to the point.

* "Information Processing -- Text and Office Systems -- Standard Generalized Markup Language (SGML)", ISO 8879, 1986, pp. ???.

* Rod Manis, Marc H. Meyer, "The UNIX Shell Programming Language", Howard W. Sams, Indianapolis, IN., 1986, pp. 303.
Excellent book on shell programming, written by people who have been there. Many case studies, well explained. Could do with less obvious humor.

* Joan K. Hughes, "PL/I Structured Programming", 3rd Edn., John Wiley & Sons, New York, 1986, pp. 639.
Solid, well-seasoned text book on PL/I. Slowpaced but thorough; just what PL/I needs.

* Robert M. Fitz, Larry Crocket, "Universal Assembler Language", Tab Books Inc., Blue Ridge Summit, Pa. 17214, 1986, pp. 401.

* J.T. Schwartz, R.B.K. Dewar, E. Dubinsky, E. Schonberg, "Programming With Sets: an Introduction to SETL", Springer-Verlag, New York, NY 10010, 1986, pp. 493.

* Leon Sterling, Ehud Shapiro, "The Art Of Prolog -- Advanced Programming Techniques", MIT Press, Cambridge, Mass., 1986, pp. 437.
Starting rather philosophically, it covers Prolog in breadth and depth. Very readable with many pertinent examples. Covers many Prolog idioms (difference lists, definite clause grammars, meta-interpreters, etc.). Points out that the occur check may add a factor N to the run-time complexity (if no special measures are taken).

* David Turner, "An overview of Miranda", ACM SIGPLAN Notices, 21, #12, Dec. 1986, pp. 158-166.

* J. Rees, W. Clinger, "Revised report on the algorithmic language Scheme", ACM SIGPLAN Notices, 21, #12, Dec. 1986, pp. 37-79.

* C. Schaffert, "An introduction to Trellis/Owl", Proc. ACM OOPSLA 86, Sept. 1986,

* W.D. Burnham, A.R. Hall, "Prolog Programming and Applications", Macmillan, London, 1985, pp. 114.
Example-oriented tutorial on Prolog, intended to serve as a stepping stone to Clocksin and Mellish. No mention of the occur check. No literature.

* Kathleen Jensen, Niklaus Wirth, "Pascal User Manual and Report", Springer-Verlag, New York, 1985, c1974, pp. 266.

* Daniel Thalman, "Modula-2 -- An Introduction", Springer-Verlag, Berlin, 1985, pp. 292.
Dry, straightforward text book. Good summaries for each chapter. The examples are often (too) obvious. Rather numerical.

* Niklaus Wirth, "Programming in Modula-2", Springer-Verlag, Berlin, 1985, pp. 202.
Cumbersome and educationally inferior description of same.

* John W.L. Ogilvie, "Modula-2 Programming", McGraw-Hill, New York, NY, 1985, pp. 304.

* Ed Knepley, Robert Platt, "Modula-2 Programming", Reston Publ., Reston, Virg., 1985, pp. 390.
Good introduction of considerable scope.

* Adobe Systems Incorporated, "PostScript Language Tutorial and Cookbook", Addison-Wesley, Reading, Mass., 1985,

* Douglas L. Brown, "From Pascal to C", Wadsworth Publ., Belmont, CA, 1985, pp. 153.

* Lee Brownston, Robert Farrell, Elaine Kant, Nancy Martin, "Programming Expert Systems in OPS5", Addison-Wesley, Reading, Mass., 1985, pp. 471.
Thorough exposition of condition-action programming (called production systems here), its foundations and applicability. Course text on OPS5 with programming techniques and efficiency considerations. Full explanation of the Rete algorithm. Comparisons with other systems, including MYCIN and LOOPS.

* Sabina Saib, "ADA: An Introduction", Holt-Saunders, New-York, 1985, pp. 358.

* Walter A. Ettlin, Gregory Solberg, "Microsoft Basic", Samsom Uitgeverij, Alphen a/d Rijn, 1985, pp. 408.
In Dutch.

* Jack J. Purdum, "C Programming Guide", 2nd Edn., Que Corp., Indianapolis, 1985, c 1983, pp. 327.

* William W. Wadge, Edward A. Ashcroft, "Lucid, the Dataflow Programming Language", Academic Press, London, 1985, pp. 310.
All variables in Lucid denote possibly infinite sequences of values; all definitions define filters on these sequences. There are no statements, there is no flow-of-control. I/O is done by seamlessly interfacing with UNIX filters (= pipes). Although the authors make an attempt to explain the difference between the data-flow model and functional programming, that text is not readily summarized.
The authors defend Lucid and the data-flow paradigm in an entertaining way by classifying the critics under such headings as Cowboys, Mystics, Boffins, etc. A further piece of comic relief is that the Lucid OS is called LUNIX.
The book starts with an algebraic foundation; sequences, iteration, recursion and nested iteration follow. Examples a large chapter on program transformations and one on further developments conclude the book.

* Alain Colmerauer, "Prolog in 10 figures", Commun. ACM, 28, #12, Dec. 1985, pp. 1296-1310.
A three-pages introduction followed by 10 annotated figures, leading the reader from expression trees to an infinity of rules on trees to generating permutations to solving cryptarithmetic puzzles.

* Mario Dal Cin, Joachim Lutz, Thomas Risse, "Programmierung in Modula-2", B.G. Teubner, Stuttgart, 1984, pp. 320.

* INMOS Limited, "occam Programming Manual", Prentice Hall, International Series in Computer Science, Englewood Cliffs, NJ, 1984, pp. .

* W.P. Salman, O. Tisserand, B. Toulout, "FORTH", MacMillan, 1984, c1983, pp. 159.

* A. Goldberg, "Smalltalk-80: The Interactive Programming Environment", Addison-Wesley, 1984,

* H. Pinxteren, J. Ringelberg, "LOGO: een inleiding", Aula Pocket 740, Het Spectrum, Utrecht, 1984, pp. 192.
About the turtle control language LOGO, which can, by the way, be used for many other purposes.

* L. Ammeraal, "De programmeertaal C", in Dutch: The Programming Language C, Academic Service, Schoonhoven, 1984, pp. 108.
Straightforward description of ANSI C, no superfluous word in it.

* L. Ammeraal, "PASCAL -- Een hogere programmeertaal", Wolters-Noordhoff, Groningen, 1983, pp. 150.

* A. Goldberg, "Smalltalk-80: The Language and Its Implementation", Addison-Wesley, 1983,

* Wulf Werum, Hans Windauer, "Introduction to PEARL: Process and Experiment Automation Realtime Language", 2nd Edn., Braunschweig, Vieweg, 1983, pp. 183.

* Ralph E. Griswold, Madge T. Griswold, "The Icon Programming Language", Prentice-Hall, Englewood Cliffs, NJ, 1983, pp. 313.
Adequate tutorial on Icon, in four parts. Basics: control structure, expression evaluation, I/O. Advanced features: generators, string scanning, co-expressions. Programming techniques: high-level string processing, list processing. Sample programs: large integers, symbolic algebra and grammar handling.

* H.J.J. Uyttenhove, "Programmeren in APL", in Dutch: Programming in APL, Samsom Uitgeverij, Alphen a/d Rijn, 1983, pp. 219.

* Doug Cooper, Michael Clancy, "Oh! Pascal!", W.W. Norton & Co., New York, NY 10110, pp. 476. 1982,
Didactically very strong introduction to computer science, problem solving, programming and Pascal. Charming and juicy, without being slick. Very practical, lots of advice on debugging and how to avoid it ("antidebugging"), self-tests, jargon glossary. Data structures, linked lists, trees, ADTs. Erudite without being obvious about it.

* B.W. Kernighan, "PIC -- A Language for Typesetting Graphics", Software Practice & Experience, 12, #1, pp. 1-21. Jan. 1982,

* James R. McGraw, "The VAL language: description and analysis", ACM TOPLAS, 4, #1, pp. 44-82. Jan. 1982,
VAL is a side effect free language, based on expressions and non-recursive functions. Normally the language is single-definition, but in a fairly complex construct redefinition is allowed to handle iteration. Its main features are explained using a single example, quad integration.

* W.F. Clocksin, C.S. Mellish, "Programming in Prolog", Springer-Verlag, Berlin, 1981, pp. 279.

* Robert B.K. Dewar, E. Schonberg, J.T. Schwartz, "Higher-level programming; introduction to the use of the set-theoretic programming language SETL", New York, Computer Science Department, Courant Institute of Mathematics, New York University, 1981, pp. ??.

* Barbara Liskov, Russel Atkinson, Toby Bloom, Eliot Moss, J. Craig Schaffert, Robert Schleifer, Alan Snyder, "CLU Reference Manual", Lecture Notes in Computer Science #114, Springer, New York, 1981, pp. 190.

* Mary Shaw (ed.), "Alphard: Form and Content", Springer-Verlag, New York, 1981, pp. 321.

* Lambert Meertens, "Draft Proposal for the B Programming Language", Mathematical Centre, Amsterdam, 1981, pp. 88.

* D.R. Hanson, "The Y programming language", ACM SIGPLAN Notices, 16, #2, Feb. 1981, pp. 59-68.

* Donald E. Knuth, "The remaining trouble spots in ALGOL 60", Commun. ACM, 10, #10, pp. 611-618. Oct. 1967,
Twelve extensively described trouble spots plus proposed solutions. (Reprinted in E. Horowitz, Programming Languages: A Grand Tour (Computer Science Press, 1982), 61-68.)

* I.E. Sutherland, "Sketchpad: A Man-Machine Graphical Communication System", Garland Publ., New York, NY, 1980, c1963, pp. 176.

* Ralph E. Griswold, David R. Hanson, "An alternative to the use of patterns in string matching", ACM Trans. Programming Languages and Systems, 2, #2, pp. 153-172. April 1980,
The basics of Icon. Many literature references to pattern matching.

* David H.D. Warren, "Logic programming and compiler writing", Softw. Pract. Exper., 10, Feb. 1980, pp. 97-125.
An introduction to logic programming, using a small compiler construction project as the running example.

* M. Richards, C. Whitby-Strevens, "BCPL -- The Language and its Compiler", Cambridge Univ. Press, Cambridge, 1979, pp. ???.

* B.H. Liskov, A. Snyder, "Exception handling in CLU", IEEE Trans. Softw. Eng., SE-5, #6, Nov. 1979, pp. 546-558.

* J.D. Ichbiah, J.C. Heliard, O. Roubine, J.G.P. Barnes, B. Krieg-Brueckner, B.A. Wichmann, "Reference manual for the Ada programming language", ACM SIGPLAN Notices, 14, #6, June 1979, pp. ???-???.

* J.D. Ichbiah, "Rationale for the design of the Ada programming language", ACM SIGPLAN Notices, 14, #6, pp. ???. June 1979,

* C.H.A. Koster, H. Meijer, "Systematisch programmeren in Algol 68 -- Deel 2: Recursieve algorithmen en datastructuren", in Dutch: Systematic Programming in Algol 68 -- Part 2: Recursive Algorithms and Data Structures, Kluwer, Deventer, 1978, pp. 210.

* Wilfred J. Hansen, Hendrik Book, "The Report on the Standard Hardware Representation for ALGOL 68", Acta Informatica, 9, pp. 105-119. 1978,

* C.H.A. Koster, Th.A. Zoethout, "Systematisch programmeren in Algol 68 -- Deel 1: Inleiding in de Informatica", in Dutch: Systematic Programming in Algol 68 -- Part 1: Introduction to Computer Science, Kluwer, Deventer, 1978, pp. 166.

* Wulf Werum, Hans Windauer, "PEARL: Process and Experiment Automation Realtime Language -- Beschreibung mit Anwendungsbeispielen", Vieweg, Braunschweig, 1978, pp. 195.

* Brian W. Kernighan, Dennis M. Ritchie, "The C Programming Language", Prentice-Hall, Englewood Cliffs, N.J., 1978, pp. 228.

* R. Glandorf, J. Verharen, D. Grune, "A W-grammar of ALEPH", IW 100/78, Mathematisch Centrum, Amsterdam, 1978,

* Sietse G. van der Meulen, Peter Küling, "Programmieren in Algol 68 -- II. Sprachdefinition, Transput und spezielle Anwendungen", in German, Walter de Gruyter, Berlin, 1977, pp. 219.

* Sietse G. van der Meulen, Peter Küling, "Programmieren in Algol 68 -- I. Einfürung in die Sprache", in German, Walter de Gruyter, Berlin, 1977, pp. 228.

* Barbara Liskov, Alan Snyder, Russell Atkinson, Craig Schaffert, "Abstraction mechanisms in CLU", Commun. ACM, 20, #8, pp. 564-576. Aug. 1977,

* Mary Shaw, William A. ???, "Abstraction and verification in Alphard: defining and specifying iteration and generators", Commun. ACM, 20, #8, pp. 553-564. Aug. 1977,

* Charles M. Geschke, James H. Morris Jr., Edwin H. Satterthwaite, "Early experience with Mesa", Commun. ACM, 20, #8, pp. 540-553. Aug. 1977,

* D.H.D. Warren, L.M. Pereira, F. Pereira, "Prolog -- The language and its implementation compared with LISP", in Symposium on Artificial Intelligence and Programming Languages, ACM SIGPLAN Notices, 12, #8, Aug. 1977, pp. 109-115.

* B.W. Lampson, J.J. Horning, R.L. London, J.G. Mitchell, G.J.Popek, "Report on the programming language Euclid", ACM SIGPLAN Notices, 12, #2, Feb. 1977, pp. 1-79.

* N. Wirth, "Modula -- A language for modular programming", SP&E, 7, #1, Jan. 1997, pp. 3-35.

* Laurent Siklóssy, "Let's Talk LISP", Prentice-Hall, Englewood Cliffs, NY, 1976, pp. 237.

* "The Plankalkül", K. Zuse, BMFT-GMD-106, GMD, Bonn, 1976,

* J.W. Backus, et al., "Modified report on the algorithmic language Algol 60", Computer J., 19, #4, 1976, pp. ???-???.

* William A. Wulf, Ralph L. London, Mary Shaw, "An introduction to the construction and verification of Alphard programs", IEEE Trans. Software Engineering, SE-2, #4, pp. 253-265. Dec. 1976,
Provides an introduction to Alphard and gives a calculus, based on Hoare's pre- and post-conditions, to prove program correctness in Alphard.

* R.E. Griswold, "The SL5 programming language and its use for goal-directed programming", in Fifth Texas Conf. on Comptng. Syst., Oct. 1976, pp. 1-5.

* A. van Wijngaarden, et al., "Revised Report on the Algorithmic Language ALGOL 68", MC Tracts 50, Mathematisch Centrum, Amsterdam, Oct. 1976, pp. 236.

* Brian W. Kernighan, "RATFOR -- a preprocessor for a rational Fortran", Software-Practice and Experience, 5, pp. 395-406. 1975,

* D. Grune, R. Bosch, L. Meertens, "ALEPH Manual", IW 17/74, Mathematisch Centrum, Amsterdam, 1974,

* Warren Teitelman, "lnterLisp Reference Manual", Palo Alto, California, XEROX Palo Alto Research Center, 1974, pp. ??.

* D.G. Bobrow, B. Raphael, "New programming languages for artificial intelligence", Computing Surveys, 6, #3, Sept. 1974, pp. 155-174.

* C.H. Moore, "FORTH -- A new way to program a mini-computer", Astron. Astroph. Suppl., 15, #??, 1974, pp. 497-511.

* G.M. Birtwistle, O.-J. Dahl, B. Myhrhaug, K. Nygaard, "SIMULA Begin", Student Literature, Auerbach, Philadelphia, Pa., 1973,

* C.A. King, "A graph-theoretical programming language", in Graph Theory and Computing, ed. by Ronald C. Read, Academic Press, New York, 1972, pp. 63-75.
[ GTPL, a FORTRAN extended with graph commands: I/O, canonical labelling, etc. ]

* G.J. Sussman, D.V. McDermott, "From PLANNER to CONNIVER-a genetic approach", in AFIPS 1972 FJCC, Vol. 41, AFIPS Press, Montvale, N.J., 1972, pp. 1171-1179.

* F.L. Bauer, H. Wössner, "The ``Plankalkül'' of Konrad Zuse: a forerunner of today's programming languages", Commun. ACM, 15, #7, pp. 678-685. July 1972,
Introduction to Plankalkül, with equivalents in Algol 68. Unfortunately, quotes and facsimiles from the original were not translated.

* R.E. Griswold, J.F. Poage, I.P. Polonsky, "The SNOB0L4 programming language", Englewood Cliffs, New Jersey, Prentice-Hall, Inc. 2nd edition, 1971, pp. ??.

* J.E.L. Peck, "An Algol 68 Companion", Univ. of British Columbia, Dept. of Computer Sc., Vancouver B.C., 1971, pp. 155.

* C.H. Lindsey, S.G. van der Meulen, "Informal Introduction to ALGOL 68", North-Holland, Amsterdam, 1971, pp. 368.

* Harry Katzan Jr., "APL User's Guide", Computer Science Series, Van Nostrand Reinhold, New York, 1971, pp. 126.
APL user's guide.

* Ben Wegbreit, "The ECL programming system", in AFIPS 1971 FJCC, Vol. 39, AFIPS Press, Montvale, N.J., 1972, pp. 253-262.

* W.A. Wulf, D.B. Russell, A.N. Habermann, "BLISS: a language for systems programming", Commun. ACM, 14, #12, pp. 780-790. Dec. 1971,

* Harry Katzan Jr., "APL Programming and Computer Techniques", Computer Science Series, Van Nostrand Reinhold, New York, 1970, pp. 329.
True to the title, it explains computers starting from the CPU and keyboard upward, then covers APL and algorithms, continues with operating systems and ends with FORTRAN, which gets 15 pages. Many exercises, many APL programs.

* J.C. Reynolds, "GEDANKEN-a simple typdess language based on the principle of completeness and the reference concept", Commun. ACM, 13, #5, May 1970, pp. 308-319.

* D. Ribbens, "Programmation non numerique LISP 1.5", Dunod, Paris, 1969, pp. 141.

* A. van Wijngaarden, et al., "Report on the Algorithmic Language ALGOL 68", MR 101, Mathematisch Centrum, Amsterdam, Oct. 1969, pp. ~160.

* P.J. Kiviat, R. Villanueva, H.M. Markowitz, "The SIMSCRIPT II Programming Language", Prentice-Hall, Englewood Cliffs, N.J., 1968,

* J.V. Garwick, "GPL, a truly general purpose language", Commun. ACM, 11, #9, pp. 634-638. Sept. 1968,

* David J. Farber, Ralph E. Griswold, Ivan P. Polonsky, "The SNOBOL3 programming language", The Bell System Technical Journal, XLV, pp. 895-944. 1966,

* G.P. Mitchell, A.J. Willmott, "Programming a computer in Atlas Autocode", Manchester University Press, Liverpool, 1965,

* W.A. Zaremba, "On ALGOL I/O conventions", Commun. ACM, 8, #3, pp. 167-169. March 1965,
Some comments on and additions to Knuth's et al. proposal for input-output in ALGOL 60.

* Ch. Andersen, "An Introduction to ALGOL 60", Reading, Mass., Addison-Wesley, 1964, pp. ???.

* D.E. Knuth, L.L. Bumgarner, D.E. Hamilton, P.Z. Ingerman, M.P. Lietzke, J.N. Merner, D.T. Ross, "A proposal for input-output conventions in ALGOL 60", Commun. ACM, 7, #5, pp. 273-283. May 1964,
Based on C-like formats (Section A), the syntax of which is given, and on a set of I/O procedures (Section B), some of which like C printf(), but defined generically, to avoid the varargs problem. Lists are handled by wrapping them into list procedures (Section B.4),which are then passed to the I/O procedures. No earlier reference to list procedures is given, so this may be the original, and for all I know only, reference.

* David J. Farber, Ralph E. Griswold, Ivan P. Polonsky, "SNOBOL, a string manipulation language", J. ACM, 11, #1, pp. 21-30. 1964,

* P. Naur, "Revised report on the algorithmic language ALGOL 60", Commun. ACM, 6, #1, pp. 1-17. Jan. 1963,

* R.W. Conway, W.L. Maxwell, "CORC - the Cornell Computing Language", Commun. ACM, 6, #6, pp. 317-321. 1963,

* Kenneth E. Iverson, "A Programming Language", John Wiley and Sons, New York, 1962, pp. 286.
A mathematical description of APL and its application to many problems like searching and sorting, somewhat Knuth-like.

* Daniel D. MacCracken, "A Guide to ALGOL Programming", Burroughs Bulletin 5000-21015, John Wiley, New York, 1962, pp. 106.
A simple course in ALGOL programming, somewhat tailored to Burroughs ALGOL, for example in the input-output section. No higher-order functions, though Jensen's device is discussed. Many examples from physics (Stefan-Boltzmann equation, luminosity).

* Jean E. Sammet, "Basic Elements of Cobol 61", Commun. ACM, 5, 1962, pp. ???.
Fair description of same.

* E.L. Willey, A. d'Agapeyeff, Marion Tribe, B.J. Gibbens, Michelle Clark, "Some commercial Autocodes -- A comparative study", A.P.I.C. Studies in Data Processing #1, Academic Press, London, 1961, pp. 53.
Compares eight very early programming languages of the autocode type and higher, in tables with check marks for each feature present, e.g. whether "formulae" are allowed as operands, and with sample forms for the various constructs, e.g., for the form a + b = b (i.e. b := a + b).
The eight languages are: FLOWMATIC (Remington Rand), IBM COMMERCIAL TRANSLATOR (IBM), COBOL (Special Committee), FACT (Honeywell), CODEL (ICT), ELLIOTT'S (Elliott Bros.), NEBULA (Ferranti), and SEAL (Standard Telephones & Cables).

* Allen Newell, "lnformation Processing Language - V Manual", Englewood Cliffs, New Jersey, Prentice-Hall, Inc., 1961, pp. ??.