References
- 1
-
Abdali, S. Kamal.
``An abstraction algorithm for combinator logic.''
Journal of Symbolic Logic, volume 41, number 1, March 1976,
pages 222-224.
- 2
-
Abelson, Harold, and Gerald Jay Sussman.
Structure and Interpretation of Computer Programs.
MIT Press, Cambridge, Massachusetts, 1985.
- 3
-
Aho, Alfred Vaino, Ravi Sethi, and Jeffrey David Ullman.
Compilers: Principles, Techniques, and Tools.
Addison-Wesley, Reading, Massachusetts, 1986.
A comprehesive text about the theory and practice of building compilers.
- 4
-
Apt, Krzysztof R.
``Ten years of Hoare's logic: A survey--Part I.''
ACM Transactions on Programming Languages and Systems,
volume 3, number 4, October 1981, pages 431-483.
- 5
-
Babbage, Charles.
``On the influence of signs in mathematical reasoning.''
Transactions of the Cambridge Philosophical Society,
volume 2, 1827, pages 325-377.
- 6
-
Backus, John.
``Can programming be liberated from the von Neumann style? A
functional style and its algebra of programs.''
Communications of the ACM, volume 21, number 8, 1978,
pages 613-641.
Reprinted in [95, pages 174-202].
The 1977 Turing Lecture.
- 7
-
Backus, John.
``The history of FORTRAN I, II, and III.''
In History of Programming Languages, edited by Richard L.
Wexelblat, Academic Press, New York, 1981, pages 25-45.
- 8
-
Baker, T. P.
``One pass algorithm for overload resolution in Ada.''
ACM Transactions on Programming Languages and Systems,
volume 4, number 4, October 1982, pages 601-614.
- 9
-
Barendregt, Hendrik Pieter.
The Lambda Calculus: Its Syntax and Semantics, revised
edition.
Studies in logic and the foundations of mathematics, volume 103.
North-Holland, Amsterdam, 1984.
- 10
-
Barnes, John Gilbert Presslie.
Programming in Ada, second edition.
International computer science series. Addison-Wesley, London,
England, 1984.
- 11
-
Barnes, John Gilbert Presslie.
Programming in Ada: Plus an Overview of Ada 9X, fourth
edition.
International computer science series. Addison-Wesley, London, 1994.
- 12
-
Barron, David William.
Comparative Programming Languages.
American Elsevier, New York, 1968.
- 13
-
Barwise, Jon.
``Mathematical proofs of computer system correctness.''
Notices of the American Mathematical Society, September 1989,
pages 844-851.
- 14
-
Baxter, Nancy H., Ed Dubinsky, and Gary Marc Levin.
Learning Discrete Mathematics with ISETL.
Springer-Verlag, New York, 1989.
- 15
-
Beeson, Michael J.
``Problematic principles in constructive mathematics.''
In Logic Colloquium '80, edited by Dirk van Dalen, D. Lascar,
and J. Smiley, North-Holland, Amsterdam, 1982, pages 11-55.
- 16
-
Borland Interantional, Inc.
Turbo PROLOG owner's handbook, 1986.
- 17
-
Bratko, Ivan.
Prolog Programming for Artificial Intelligence, second
edition.
Addison-Wesley, Wokingham, England, 1990.
- 18
-
Cajori, Florian.
A History of Mathematical Notations.
2 volumes. Open Court, Chicago, Illinois, 1928-29.
- 19
-
Cardelli, Luca.
``A semantics of multiple inheritance.''
In Semantics of data types, edited by Gilles Kahn, David B.
MacQueen, and Gordon Plotkin, Springer-Verlag, Berlin, 1984, pages 51-67.
The paper introduces the record-based model of object-oriented programming.
- 20
-
Cardelli, Luca.
``Amber.''
In Combinators and Functional Programming Languages, edited
by Guy Cousineau, Pierre-Louis Curien, and Bernard Robinet, Springer-Verlag,
Berlin, 1986, pages 21-47.
- 21
-
Cardelli, Luca.
``Basic polymorphic typechecking.''
Science of Computer Programming, volume 8, number 2, April
1987, pages 147-172.
- 22
-
Cardelli, Luca, and Peter Wegner.
``On understanding types, data abstraction, and polymorphism.''
ACM Computing Surveys, volume 17, number 4, 1985,
pages 471-522.
- 23
-
Ceruzze, Paul E.
Beyond the Limits: Flight Enters the Computer Age.
MIT Press, Cambridge, MA, 1989.
In chapter 9 the myth is debunked that a FORTRAN punctuation error caused the
destruction of Mariner I, a U.S. spaceprobe to Venus in 1962. Actually, a
handwriting error was involved, and FORTRAN was not being used in the flight
guidance software at all.
- 24
-
Chang, Chin-Liang, and Richard Char-Tung Lee.
Symbolic Logic and Mechanical Theorem Proving.
Academic Press, New York, 1973.
- 25
-
Chomsky, Noam.
Aspects of the Theory of Syntax.
MIT Press, Cambridge, Massachusetts, 1965.
An analysis of the structure of natural language.
- 26
-
Church, Alonzo.
The Calculi of Lambda-Conversion.
Annals of Mathematical Studies, number 6. Princeton University Press,
Princeton, New Jersey, 1941.
- 27
-
Church, Alonzo, and J. Barkley Rosser.
``Some properties of conversion.''
Transactions of the American Mathematical Society, volume 39,
1936, pages 472-482.
- 28
-
Clark, R. Lawrence.
``A linguistic contribution to GOTO-less programming.''
Datamation, volume 19, number 12, 1973, pages 62-63.
Reprinted in Communications of the ACM, volume 27, number 4,
April 1984, pages 349-350.
This tongue-in-cheek article advocates the COME FROM control construct
to replace the GO TO construct.
- 29
-
Cleaveland, J. Craig.
An Introduction to Data Types.
Addison-Wesley, Reading, Massachusetts, 1986.
A book devoted to data types of programming languages, mostly Ada or
Ada-like. Contains a little about universal polymorphism, and a little about
algebraic specification.
- 30
-
Clocksin, William F., and Christopher S. Mellish.
Programming in PROLOG, second edition.
Springer-Verlag, Berlin, 1984.
- 31
-
Clocksin, William F., and Christopher S. Mellish.
Programming in PROLOG, third revised and extended edition.
Springer-Verlag, Berlin, 1987.
- 32
-
Cohen, Jacques.
``Describing PROLOG by its interpretation and compilation.''
Communications of the ACM, volume 28, number 12, December
1985, pages 1311-1324.
- 33
-
Cohen, Norman H.
Ada As a Second Language.
McGraw-Hill, New York, 1986.
- 34
-
Constable, Robert L., Stuart F. Allen, H. M. Bromley, W. Rance Cleaveland,
J. F. Cremer, Robert William Harper, Jr., D. J. Howe, T. B. Knoblock, N. P.
Mendler, P. Panangaden, James T. Sasaki, and S. F. Smith.
Implementing Mathematics with the NUPRL Proof Development
System.
Prentice Hall, Englewood Cliffs, New Jersey, 1986.
- 35
-
Cook, Steven A.
``Soundness and completeness of an axiom system for program
verification.''
SIAM Journal on Computing, volume 7, number 1, February 1978,
pages 70-90.
Proof of soundness and relative completeness of Hoare logic for a simple
imperative language. A proof rule for procedures with global variables is
given.
- 36
-
Cousineau, Guy, Pierre-Louis Curien, and M. Mauny.
``The categorical abstract machine.''
In Functional programming languages and computer
architecture, edited by Jean-Pierre Jouannaud, Springer-Verlag, Berlin,
1985, pages 50-64.
- 37
-
Curien, Pierre-Louis.
Categorical Combinators, Sequential Algorithms and Functional
Programming.
Research notes in theoretical computer science. Pitman, London, 1986.
- 38
-
Curry, Haskell Brooks, and Robert Feys.
Combinatory Logic.
Studies in logic and the foundations of mathematics. North-Holland,
Amsterdam, 1958.
- 39
-
Dahl, Ole-Johan, and Kristen Nygaard.
``The development of the SIMULA languages.''
In History of Programming Languages, edited by Richard L.
Wexelblat, Academic Press, New York, 1981, pages 439-480.
- 40
-
Damas, Luis Manuel Martins, and Robin Milner.
``Principal type-schemes for functional programs.''
In Conference Record of the Ninth Annual ACM Symposium on
Principles of Programming Languages, 1982, pages 207-212.
- 41
-
Darlington, John, Peter Henderson, and David A. Turner, editors.
Functional Programming and Its Applications: An Advanced
Course.
Cambridge University Press, Cambridge, 1982.
- 42
-
Davis, Ruth E.
``Logic programming and Prolog: A tutorial.''
IEEE Software, volume 2, number 5, September 1985,
pages 53-62.
Reprinted in [95, pages 493-502].
- 43
-
de Bakker, Jacobus Willem.
Mathematical Theory of Program Correctness.
Prentice-Hall International series in computer science. Prentice-Hall
International, London, 1980.
- 44
-
Demers, Alan J.
``A simplified type structure for Ada.''
In Jornadas En Computacion, June 1982, pages 86-104.
A case is made for a uniform treatment of objects, packages, generics and
types under the principle of type-completeness. Compile-time type checking
can be preserved by ``manifestly'' safe expressions (constants).
- 45
-
Demers, Alan J., and James E. Donahue.
``Data types, parameters and type checking.''
In Conference Record of the Seventh Annual ACM Symposium on
Principles of Programming Languages, 1980, pages 12-23.
- 46
-
Demers, Alan J., and James E. Donahue.
```Type-completeness' as a language principle.''
In Conference Record of the Seventh Annual ACM Symposium on
Principles of Programming Languages, 1980, pages 234-244.
- 47
-
Demers, Alan J., James E. Donahue, and Glenn Skinner.
``Data types as values.''
In Conference Record of the Fifth Annual ACM Symposium on
Principles of Programming Languages, 1978, pages 23-30.
- 48
-
DeMillo, Richard A., Richard J. Lipton, and Alan J. Perlis.
``Social processes and proofs of theorems and programs.''
Communications of the ACM, volume 22, number 5, May 1979,
pages 271-280.
- 49
-
Dijkstra, Edsger Wybe.
``Defense of ALGOL 60.''
Communications of the ACM, volume 4, number 11, November
1961, pages 502-503.
This letter to the editor points out the advantages of the call-by-name
parameter passing in ALGOL 60. The examples used are summations of array
elements.
- 50
-
Dijkstra, Edsger Wybe.
``Go to statement considered harmful.''
Communications of the ACM, volume 11, number 3, March 1968,
pages 147-148.
Reprinted in [196, 102-103].
This letter to the editor ignited the GO TO controversy.
- 51
-
Dijkstra, Edsger Wybe.
``Guarded commands, nondeterminacy and the formal derivation of
programs.''
Communications of the ACM, volume 18, number 8, August 1975,
pages 453-457.
Reprinted in [196, pages 453-457].
- 52
-
Dijkstra, Edsger Wybe.
A Discipline of Programming.
Prentice Hall, Englewood Cliffs, New Jersey, 1976.
- 53
-
Dijkstra, Edsger Wybe.
``On a political pamphlet from the Middle Ages (Commentary on a
paper by DeMillo, Lipton, and Perlis).''
Software Engineering Notes, volume 3, number 2, April 1978,
pages 14-17.
- 54
-
Dijkstra, Edsger Wybe.
``On the cruelty of really teaching computing science.''
Communications of the ACM, volume 32, number 12, December
1989, pages 1398-1404.
- 55
-
Downey, Peter J., and Ravi Sethi.
``Correct computation rules for recursive languages.''
SIAM Journal on Computing, volume 5, number 3, September
1976.
- 56
-
Driver, Godfrey Rolles.
Semitic Writing from Pictograph to Alphabet.
Oxford University Press, London, 1976.
- 57
-
Dummett, Michael A. E.
Elements of Intuitionism.
Oxford Logic Series. Oxford University Press, London, 1977.
- 58
-
Eisenbach, Susan, editor.
Functional programming: Languages, tools and architectures.
Ellis Horwood series in computers and their applications. Ellis
Horwood, Chichester, England, 1987.
- 59
-
Ellis, Margaret A., and Bjarne Stroustrup.
The Annotated C++ Reference Manual.
Addison Wesley, Reading, Massachusetts, 1990.
A definition of the C++ programming language with commentary and examples of
individual features. Included are descriptions of templates and exception
handling. This reference manual was chosen by ANSI to serve as the starting
point for formal standardization.
- 60
-
Falkoff, Adin D., and Kenneth E. Iverson.
``The design of APL.''
IBM Journal of Research and Development, July 1973,
pages 324-334.
Reprinted in [95, pages 240-250].
- 61
-
Falkoff, Adin D., and Kenneth E. Iverson.
``The evolution of APL.''
In History of Programming Languages, edited by Richard L.
Wexelblat, Academic Press, New York, 1981, pages 661-674.
- 62
-
Fetzer, James H.
``Program verification: The very idea.''
Communications of the ACM, volume 31, number 9, Spetember
1988, pages 1048-1063.
- 63
-
Field, Anthony J., and Peter G. Harrison.
Functional Programming.
International computer science series. Addison Wesley, Wokingham,
England, 1988.
- 64
-
Fisher, David A.
``DoD's common programming language effort.''
IEEE Computer, volume 11, number 3, March 1978, pages 24-33.
Reprinted in [196, page 316-325].
- 65
-
Fleck, A. C.
``On the impossibility of content exchange through the by-name
parameter transmission mechanism.''
SIGPLAN Notices, volume 11, number 11, November 1976,
pages 38-41.
- 66
-
Frederick P. Brooks, Jr.
The Mythical Man-Month: Essays on Software Engineering.
Addison-Wesley, Reading, Massachusetts, 1975.
Reprinted with corrections in 1982.
These essays are based on the author's experience as manager of the group
that developed OS/360 at IBM in 1964 and 1965
- 67
-
Friedman, Daniel Paul, Mitchell Wand, and Christopher T. Haynes.
Essentials of Programming Languages.
MIT Press, Cambridge, Massachusetts, 1992.
A textbook on programming languages. The programming language Scheme is used
as an executable metalanguage.
- 68
-
Gallier, Jean H.
Logic for Computer Science: Foundations of Automatic Theorem
Proving.
Harper & Row, New York, 1986.
- 69
-
Gannon, John D., and James J. Horning.
``Language design for programming reliability.''
IEEE Transactions on Software Engineering, volume SE-1,
number 2, June 1975, pages 179-191.
A study of programming errors.
- 70
-
Gehani, Narain, and Andrew D. McGettrick, editors.
Software Specification Techniques.
International Computer Science Series. Addison-Wesley, Wokingham,
England, 1986.
- 71
-
Gelernter, David Hillel, and Suresh Jagannathan.
Programming Linguistics.
MIT Press, Cambridge, Massachusetts, 1990.
- 72
-
Genesereth, Michael R., and Nils J. Nilsson.
Logical Foundations of Artificial Intelligence.
Morgan Kaufmann, Los Altos, California, 1987.
- 73
-
Goguen, Joseph A., J. W. Thatcher, and E. G. Wagner.
``An initial algebra approach to the specification, correctness, and
implementation of abstract data types.''
In Data structuring, edited by Raymond Tzuu Yeh, Prentice
Hall, Englewood Cliff, New Jersey, 1978, pages 80-149.
- 74
-
Goldberg, Adele.
Smalltalk-80: The Interactive Programming Environment.
Addison-Wesley series in computer science. Addison-Weseley, Reading,
Massachusetts, 1985.
- 75
-
Goldberg, Adele, and David Robson.
Smalltalk-80: The Language and Its Implementation.
Addison-Wesley series in computer science. Addison-Weseley, Reading,
Massachusetts, 1983.
- 76
-
Goldberg, Adele, and David Robson.
Smalltalk-80: The Language.
Addison-Wesley series in computer science. Addison-Weseley, Reading,
Massachusetts, 1989.
- 77
-
Gordon, Michael J. C.
Programming Language Theory and Its Implementation: Applicative
and Imperative Paradigms.
Prentice-Hall International series in computer science. Prentice
Hall, New York, 1988.
Part I is about Hoare logic, part II is about the lambda calculus and
combinators, part III about is about LISP and theorem proving.
- 78
-
Gries, David.
Compiler Construction for Digital Computers.
John Wiley & Sons, 1971.
- 79
-
Gries, David.
The Science of Programming.
Texts and monographs in computer science. Springer-Verlag, New York,
1981.
- 80
-
Gunter, Carl A.
Semantics of Programming Languages: Structures and
Techniques.
MIT Press, Cambridge, Massachusetts, 1992.
- 81
-
Hamming, Richard W.
``The unreasonable effectiveness of mathematics.''
American Mathematical Monthly, volume 82, number 2, February
1980, pages 81-90.
- 82
-
Henderson, Peter.
Functional Programming.
Prentice-Hall International series in computer science. Prentice-Hall
International, Englewood Cliffs, New Jersey, 1980.
- 83
-
Hennessy, Matthew.
The Semantics of Programming Languages: an Elementary
Introduction Using Structural Operational Semantics.
Wiley, Chichester, England, 1990.
- 84
-
Higman, Bryan.
A Comparative Study of Programming Languages.
American Elsevier, New York, 1967.
- 85
-
Hillis, W. Daniel, and Guy L. Steele Jr.
``Data parallel algorithms.''
Communications of the ACM, volume 29, number 12, December
1986, pages 1170-1183.
- 86
-
Hoare, Charles Antony Richard.
``An axiomatic basis for computer programming.''
Communications of the ACM, volume 12, number 10, October
1969, pages 576-580, 583.
Paper introducing the axiomatic approach to programming languages semantics.
- 87
-
Hoare, Charles Antony Richard.
``Hints on programming language design.''
In SIGACT/SIGPLAN Symposium on principles of programming
languages, October 1973.
Reprinted in [95, pages 35-40].
The article stresses simplicity, fast translation, efficient object code,
readability and abstract types.
- 88
-
Hoare, Charles Antony Richard.
``Recursive data structures.''
International Journal of Computer and Information Sciences,
volume 4, number 2, June 1975, pages 105-132.
In this article Hoare maintains that pointers are bad and can be replaced by
recursive data types.
- 89
-
Hoare, Charles Antony Richard, and J. C. Shepherdson, editors.
Mathematical logic and programming languages.
Prentice-Hall International series in computer science. Prentice-Hall
International, 1985.
The papers in this book were first published in the Philosophical
Transactions of the Royal Society, Series A, volume 312, 1984.
- 90
-
Hoare, Charles Antony Richard, and Niklaus Emil Wirth.
``An axiomatic definition of the programming language Pascal.''
Acta Informatica, volume 2, 1973, pages 335-355.
Reprinted in [196, page 506-526].
- 91
-
Hofstadter, Douglas R.
Gödel, Escher, Bach: An Eternal Golden Braid.
Basic Books, New York, 1979.
This book won a Pulitzer prize for general nonfiction in 1980. It discusses
recursion, formal systems, and Gödel's incompleteness theorem using
examples from Dutch artist Mauritis C. Escher and the composer Johann
Sebastian Bach. Short stories about Achilles and the Tortoise inspired by a
short story by Lewis Carroll begin each chapter.
- 92
-
Holt, Richard C.
Design goals for the Turing programming language.
Technical Report CSRI-187, Computer Systems Research Institute,
University of Toronto, August 1986.
- 93
-
Holt, Richard C., and James R. Cordy.
``The Turing programming language.''
Communications of the ACM, volume 31, number 12, December
1988, pages 1410-1421.
- 94
-
Horn, Alfred.
``On sentences which are true of direct unions of algebras.''
Journal of Symbolic Logic, volume 16, number 1, March 1951,
pages 14-21.
This paper has very little to do with Horn clauses.
- 95
-
Horowitz, Ellis, editor.
Programming Languages: A Grand Tour, third edition.
Computer Science Press, Rockville, Maryland, 1987.
A collection of 30 significant papers concering the field of programming
languages, especially Pascal and other ALGOL-like languages. Includes a
bibliography and an index.
- 96
-
Hudak, Paul, and Benjamin Goldberg.
``Experiments in diffused combinator reduction.''
In Proceedings of the Symposium on LISP and Functional
Programming, ACM, 1984, pages 167-176.
- 97
-
Huet, Gérard P.
``Confluent reductions: Abstract properties and applications to term
rewriting systems.''
Journal of the ACM, volume 27, number 4, October 1980,
pages 797-821.
- 98
-
Huet, Gérard P., and Derek C. Oppen.
``Equations and rewrite rules.''
In Formal Languages, edited by Ronald V. Book, Academic
Press, New York, 1980.
- 99
-
Huskey, Vekna R., and Harry D. Huskey.
``Lady Lovelace and Charles Babbage.''
Annals of the History of Computing, volume 2, number 4,
October 1980, pages 299-329.
- 100
-
Iverson, Kenneth E.
A Programming Language.
John Wiley & Sons, New York, 1962.
- 101
-
James, Carol L., and Duncan E. Morrill.
``The real Ada, Countess of Lovelace.''
ACM SIGSoft Engineering Notes, volume 8, number 1, January
1983, page 30.
Brief account of the naming of the programming language Ada and the life of
Augusta Ada Bryon.
- 102
-
Jensen, Hans.
Sign, Symbol, and Script: An Account of Man's Efforts to
Write, third revised and enlarged edition.
George Allen and Unwin, London, 1970.
- 103
-
Jensen, Kathleen, and Niklaus Wirth.
Pascal: User Manual and Report, second edition.
Springer-Verlag, New York, 1974.
- 104
-
Jensen, Kathleen, and Niklaus Wirth.
Pascal: User Manual and Report, second and corrected edition.
Springer-Verlag, New York, 1978.
- 105
-
Jensen, Kathleen, and Niklaus Wirth.
Pascal User Manual and Report, third edition.
Springer-Verlag, New York, 1985.
Prepared by Andrew B. Mickel and James F. Miner.
- 106
-
Jensen, Kathleen, and Niklaus Wirth.
Pascal User Manual and Report: ISO Pascal Standard,
fourth edition.
Springer-Verlag, New York, 1991.
Revised by Andrew B. Mickel and James F. Miner.
A Pascal tutorial and the definitive Pascal reference incorporating revisions
to the 1983 ISO Standard.
- 107
-
Johnston, John B.
``The contour model of block structured processes.''
SIGPLAN Notices, volume 6, number 2, February 1971,
pages 55-82.
- 108
-
Kamin, Samuel N.
Programming Languages: An Interpreter-Based Approach.
Addison-Wesley, Reading, Massachusetts, 1990.
- 109
-
Kay, Alan C.
``The early history of Smalltalk.''
SIGPLAN Notices, volume 28, number 3, March 1993,
pages 69-96.
- 110
-
Kernighan, Brian Wilson, and Dennis M. Ritchie.
The C Programming Language, second edition.
Prentice Hall, Englewood Cliffs, New Jersey, 1988.
The second edition of the classic work defining and explaining C.
Although the second edition predates the official ANSI standard the book is a
valuable reference to ANSI C. The biggest change over the original
``K&R'' language defined in the first edition is the addition of function
prototypes.
- 111
-
Knight, Kevin.
``Unification: A multidisciplinary survey.''
Computing Surveys, volume 21, number 1, March 1989,
pages 93-124.
The unification algorithm is useful in a large number of fields among which
are type checking in programming langauges, resolution theorem proving, and
natural language processing.
- 112
-
Knuth, Donald Ervin.
``Backus Normal Form vs. Backus Naur Form.''
Communications of the ACM, volume 7, number 12, December
1964, pages 735-736.
In this letter to the editor, Knuth argues that the name ``Backus Naur Form''
honoring Peter Naur is better than ``Backus Normal Form.'' The BNF notation
is not a normal form at all.
- 113
-
Knuth, Donald Ervin.
``Semantics of context-free languages.''
Mathematical Systems Theory, volume 2, number 2, June 1968,
pages 127-145.
A corrigendum appears in volume 5, number 1, pages 95-96.
Origin of attribute grammars as a device to give meaning to programs by
adding inherited and synthesized attributes to context-free free grammars.
- 114
-
Knuth, Donald Ervin.
``An empirical study of FORTRAN programs.''
Software--Practice and Experience, volume 1, 1971,
pages 105-133.
- 115
-
Knuth, Donald Ervin.
``Ancient Babylonian algorithms.''
Communications of the ACM, volume 15, number 7, July 1972,
pages 671-677.
An errata appeared in volume 19, number 2, February 1976, page 108.
- 116
-
Knuth, Donald Ervin.
``Structured programming with go to statements.''
Computing Surveys, volume 6, December 1974, pages 261-301.
Reprinted in [196, pages 104-144].
- 117
-
Knuth, Donald Ervin, and Jack N. Merner.
``Algol 60 confidential.''
Communications of the ACM, volume 4, number 6, June 1961,
pages 268-272.
- 118
-
Knuth, Donald Ervin, and Luis Trabb Pardo.
``The early development of programming languages.''
In Encyclopedia of Computer Science and Technology, Marcel
Dekker, New York, 1977, pages 419-96.
Detailed account of all early ``high-level'' programming languages.
- 119
-
Kowalski, Robert A.
``Algorithm = logic + control.''
Communications of the ACM, volume 22, number 7, July 1979,
pages 424-436.
Reprinted in [95, pages 480-492].
- 120
-
Krasner, Glenn, editor.
Smalltalk-80: Bits of history, words of advice.
Addison-Wesley series in computer science. Addison-Weseley, Reading,
Massachusetts, 1983.
- 121
-
Lampson, Butler W., James J. Horning, Ralph L. London, James G. Mitchell, and
G. J. Popek.
``Report on the programming language Euclid.''
SIGPLAN Notices, volume 12, number 3, February 1977.
- 122
-
Landin, Peter J.
``A lambda-calculus approach.''
In Advances in Programming and Non-Numerical Computation,
edited by Leslie Fox, Pergamon Press, Oxford, 1966, pages 97-141.
- 123
-
Lindsey, Charles H.
``A history of ALGOL 68.''
SIGPLAN Notices, volume 28, number 3, March 1993,
pages 97-132.
- 124
-
Liskov, Barbara H.
``Exception handling in CLU.''
IEEE Transactions on Software Engineering, November 1979,
pages 545-558.
Reprinted in [196, page 403-415].
- 125
-
Liskov, Barbara H., Alan Snyder, Russell Atkinson, and J. Craig Schaffert.
``Abstraction mechanisms in CLU.''
Communications of the ACM, volume 20, number 8, August 1977,
pages 564-576.
- 126
-
Liskov, Barbara H., and Stephen N. Zilles.
``Programming with abstract data types.''
SIGPLAN Notices, volume 9, number 4, April 1974,
pages 50-59.
Reprinted in [196, page 189-198].
The language described in this paper is not given a name, but is an early
version of the programming language CLU developed at MIT.
- 127
-
Lloyd, John Wylie.
Foundations of Logic Programming.
Springer-Verlag, Berlin, 1984.
- 128
-
Loeckx, Jacques J. C., Kurt Mehlhorn, and Reinhard Wilhelm.
Grundlagen der Programmiersprachen.
Teubner, Stuttgart, 1986.
- 129
-
Loeckx, Jacques J. C., Kurt Sieber, and Ryan D. Stansifer.
The Foundations of Program Verification, second edition.
Teubner, Stuttgart, 1987.
- 130
-
McCarthy, John.
``Towards a mathematical science of computation.''
In Information Processing 1962, edited by Cicely M.
Popplewell, North-Holland, Amsterdam, 1963, pages 21-28.
- 131
-
McGettrick, Andrew D.
The Definition of Programming Languages.
Cambridge computer science texts, volume 11. Cambridge University
Press, Cambridge, 1980.
- 132
-
Mackenzie, Charles E.
Coded Character Sets, History and Development.
Addison-Wesley, Reading, Massachusetts, 1980.
- 133
-
MacLennan, Bruce J.
Principles of Programming Languages.
Holt, Rinehart and Winston, New York, 1983.
- 134
-
Madsen, Ole Lehrmann, Birger Møller-Pederson, and Kristen Nygaard.
Object-Oriented Programming in the BETA Programming Language.
Addison-Wesley, Wokingham, England, 1993.
An introduction to programming in the BETA programming language.
- 135
-
Maier, David, and David S. Warren.
Computing with Logic: Logic Programming with PROLOG.
Benjamin Cummings, Menlo Park, California, 1988.
- 136
-
Manna, Zohar, and Adi Shamir.
``A new approach to recursive programs.''
In Perspectives on computer science, edited by Anita K.
Jones, Academic Press, 1977, pages 103-124.
- 137
-
Marcotty, Michael, and Henry F. Ledgard.
The Programming Language Landscape, second edition.
Science Research Associates, Chicago, Illinois, 1986.
- 138
-
Marcotty, Michael, Henry F. Ledgard, and Gregor V. Bochmann.
``A sampler of formal definitions.''
Computing Surveys, volume 8, number 2, June 1976,
pages 191-276.
- 139
-
Martelli, Alberto, and Ugo Montanari.
``An efficient unification algorithm.''
ACM Transactions on Programming Languages and Systems,
volume 4, number 2, April 1982, pages 258-282.
- 140
-
Martin, Alain J.
``A general proof rule for procedures in predicate transformer
semantics.''
Acta Informatica, volume 20, December 1983, pages 301-313.
Procedures with input (call-by-value), result, and value/result parameters
are given a sound proof rule by considering the subprogram call to be an
assignment to local variables from all the input parameters, followed by the
body of the subprogram, followed by an assignment to all the output
parameters.
- 141
-
Martin-Löf, Per.
Notes on Constructive Mathematics.
Almqvist & Wiksell, Stockholm, 1970.
- 142
-
Meyer, Albert R.
Puzzles in programming logic.
Technical report, MIT, November 1985.
- 143
-
Milner, Robin.
``A theory of type polymorphism in programming.''
Journal of Computer and System Sciences, volume 17, number 3,
December 1978, pages 348-375.
- 144
-
Milner, Robin, Mads Tofte, and Robert William Harper, Jr.
The Definition of Standard ML.
MIT Press, Cambridge, MA, 1990.
The formal definition of the static and dynamic semantics of the Standard ML
programming language.
- 145
-
Minsky, Marvin Lee.
Computation: Finite and Infinite Machines.
Prentice Hall, New York, 1967.
- 146
-
Moore, Doris Langley.
Ada, Countess of Lovelace: Byron's legitimate daughter.
Harper & Row, New York, 1977.
- 147
-
Morris, Jr., James H.
``Protection in programming languages.''
Communications of the ACM, volume 16, number 1, January 1973,
pages 15-21.
- 148
-
Naveh, Joseph.
Early History of the Alphabet: An Introduction to West Semitic
Epigraphy and Palaeography.
Magnes Press, Jerusalem, 1982.
- 149
-
Nelson, Greg, editor.
Systems Programming with Modula-3.
Prentice Hall series in innovative technology. Prentice Hall,
Englewood Cliffs, New Jersey, 1991.
This collection contains the 50-page Modula-3 report defining the language.
Other parts describe the standard libraries including the thread interface
for concurrent programming and the ``pickle'' interface for persistent
objects. The last chapter, ``How the Language Got Its Spots,'' is a fictional
dialogue featuring Dr. Lambdaman and others that illuminates some aspects of
the evolution of Modula-3.
- 150
-
Neumann, Peter G.
``Some reflections on a telephone switching problem.''
Communications of the ACM, volume 33, number 7, July 1990,
page 154.
- 151
-
Nicholls, John E.
The Structure and Design of Programming Languages.
The Systems programming series. Addison-Wesley, Reading,
Massachusetts, 1975.
The section on PL/I in the appendix has a two page summary of the development
of the language up to 1974.
- 152
-
O'Donnell, Michael J.
``A critique of the foundations of Hoare style programming
logics.''
Communications of the ACM, volume 25, number 12, December
1982, pages 927-935.
- 153
-
O'Donnell, Michael J.
Equational Logic As a Programming Language.
MIT Press, Cambridge, Massachusetts, 1985.
- 154
-
Pagan, Frank G.
Formal Specification of Programming Languages.
Prentice Hall, Englewood Cliffs, New Jersey, 1981.
- 155
-
Parnas, David Lorge.
``A technique for software module specificaton with examples.''
Communications of the ACM, volume 15, number 5, 1972,
pages 330-336.
- 156
-
Paterson, M. S., and M. N. Wegman.
``Linear unification.''
In Proceedings of the Eighth Annual Symposium of Theory of
Computing, 1976, pages 181-186.
- 157
-
Paulson, Lawrence C.
``Compiler generation from denotational semantics.''
In Methods and Tools for Compiler Construction, edited by
Bernard Lorho, Cambridge University Press, Cambridge, England, 1984,
pages 219-250.
- 158
-
Perlis, Alan J., and Klaus Samelson.
``Preliminary report--International Algebraic Language.''
Communications of the ACM, volume 1, number 12, December
1958, pages 8-22.
An early definition of the programming language ALGOL. This report appeared
simultaneous in [159].
- 159
-
Perlis, Alan J., and Klaus Samelson.
``Report on the algorithmic language ALGOL.''
Numerische Mathematik, volume 1, January 1959, pages 41-60.
An early definition of the programming language ALGOL. This report appeared
simultaneous in [158].
- 160
-
Popek, G. J., James J. Horning, Butler W. Lampson, James G. Mitchell, and
Ralph L. London.
``Notes on the design of Euclid.''
SIGPLAN Notices, volume 12, number 3, March 1977,
pages 11-18.
- 161
-
Pournelle, Jerry.
``Computing at Chaos Manor: Come to the Faire.''
BYTE, volume 10, number 7, July 1985, pages 309-339.
In this monthly column Purnelle describes meeting Wirth and a celebrated pun
attributed to him. Wirth's name is one that is confusing for English speakers
to pronounce. When asked how to pronounce his name, he is said to have
answered that if you call him by name, it is ``virt'' (the German
pronunciation), and if you call him by value, it is ``worth'' (the American
pronunciation).
- 162
-
Quine, Willard Van Orman.
Word and Object.
MIT Press, Cambridge, Massachusetts, 1960.
Section 30 is on ``referential opacity.''
- 163
-
Rentsch, Tim.
``Object oriented programming.''
SIGPLAN Notices, volume 17, number 9, September 1982,
pages 51-57.
- 164
-
Richard, Frederic, and Henry F. Ledgard.
``A reminder for language designers.''
SIGPLAN Notices, volume 12, number 12, December 1977,
pages 73-82.
- 165
-
Robinson, John Alan.
``A machine-oriented logic based on the resolution principle.''
Journal of the ACM, volume 12, number 1, January 1965,
pages 34-41.
- 166
-
Robinson, John Alan.
Logic, Form and Function: The Mechanization of Deductive
Reasoning.
North-Holland, New York, 1979.
- 167
-
Robinson, John Alan.
``Logic programming--past, present, and future.''
New Generation Computing, volume 1, 1983, pages 107-124.
- 168
-
Rosen, Barry K.
``Tree manipulation systems and Church-Rosser theorems.''
Journal of the ACM, volume 20, number 1, January 1973,
pages 160-187.
- 169
-
Schmandt-Besserat, Denise.
``The earliest precursor of writing.''
In Language, Writing, and the Computer, W. H. Freeman, New
York, 1986, pages 31-40.
- 170
-
Schmidt, David A.
Denotational Semantics.
Allyn and Bacon, Boston, Massachusetts, 1986.
- 171
-
Schönfinkel, Moses.
``On the building blocks of mathematical logic.''
In From Frege to Gödel, edited by Jean van Heijenoort,
Harvard University Press, Cambridge, Massachusetts, 1977.
This article was originally published in 1924. In it logic is reduced to a
small set of primitive notions including the combinators K (
Konstanzfunktion) and S (Verschmelzungsfunktion).
Schönfinkel also introduces the device now know as ``Currying.''
- 172
-
Schwartz, Jacob T., Robert B. K. Dewar, Ed Dubinsky, and E. Schonberg.
Programming with Sets: An Introduction to SETL.
Texts and monographs in computer science. Springer-Verlag, 1986.
- 173
-
Scott, Dana S.
``Outline of a mathematical theory of computation.''
In Proceedings of the 4th Annual Princeton Conference on
Information Sciences & Systems, Princeton, 1970, pages 169-176.
- 174
-
Scott, Dana S.
``Lattice theory, data types and formal semantics.''
In Formal semantics of programming languages, edited by
Randall Rustin, Prentice Hall, Englewood Cliffs, New Jersey, 1972,
pages 65-106.
- 175
-
Scott, Dana S.
``Logic and programming languages.''
Communications of the ACM, volume 20, number 9, September
1977, pages 634-641.
- 176
-
Shu, Nan C.
Visual Programming.
Van Nostrand Reinhold, New York, 1988.
- 177
-
Slater, Robert.
Portraits in Silicon.
MIT Press, Cambridge, Massachusetts, 1987.
Biographies of Charles Babbage (1791-1871), Alan Turing, John von Neumann,
Claude Shannon, Konrad Zuse, John V. Atanasoff, John William Mauchly and J.
Presper Eckert, Howard Aiken, Jay W. Forrester, Thamas J. Watson, Sr.,
William Norris, H. Ross Perot, William Shockley, Robert Noyce, Jack Kilby,
Marcian E. (Ted) Hoff, Gene Amdahl, Seymour R. Cray, Gordon Bell, Grace
Murray Hopper, John Backus, John Kemeny and Thomas Kurtz, William Gates,
Dennis Ritchie and Kenneth Thompson, Daniel Bricklin, Nolan Bushnell, Steven
Jobs, Adam Osborne, William Nillard, and Donald Knuth.
- 178
-
Smullyan, Raymond M.
To Mock a Mocking Bird and Other Logic Puzzles: Including an
Amazing Adventure in Combinatory Logic.
Knopf, New York, 1985.
- 179
-
Stansifer, Ryan.
ML Primer.
Prentice Hall, Englewood Cliffs, New Jersey, 1992.
An introduction to programming in the functional language ML.
- 180
-
Stenlund, Sören.
Combinators,
-terms, and Proof Theory.
D. Reidel Publishing Company, Dordrecht, Holland, 1972.
- 181
-
Stoy, Joseph E.
Denotational Semantics.
MIT Press, Cambridge, Massachusetts, 1977.
- 182
-
Strachey, Christopher.
``Towards a formal semantics.''
In Formal description of languages for computer programming,
edited by Thomas B. Steel, Jr., North-Holland, Amsterdam, 1966,
pages 198-220.
This paper was presented at a conference organized by Technical Committee 2
of the International Federation for Information Processsing, and held in
Vienna, September 1964. In it the terms l-value and r-value are used to
distinguish the value of a programming language variable from its location.
- 183
-
Stroustrup, Bjarne.
The C++ Programming Language.
Addison-Wesley, Reading, Massachusetts, 1986.
- 184
-
Stroustrup, Bjarne.
``A history of C++: 1979-1991.''
SIGPLAN Notices, volume 28, number 3, March 1993,
pages 271-297.
- 185
-
Stroustrup, Bjarne.
The Design and Evolution of C++.
Addison Wesley, Reading, Massachusetts, 1994.
Extensive commentary about the design, history, philosophy, and development
of C++. The chapters are: The Prehistory of C++, C with Classes, The Birth of
C++, C++ Language Design Rules, Chronology 1985-1993, Standardization,
Interest and Use, Libraries, Looking Ahead, Memory Management, Overloading,
Multiple Inheritance, Class Concept Refinements, casting, Templates,
Exception handling, Namespaces, and The C Preprocessor.
- 186
-
Struik, Dirk Jan, editor.
A Source Book in Mathematics, 1200-1800.
Harvard University Press, Cambridge, Massachusetts, 1969.
- 187
-
Tanenbaum, Andrew S.
``A tutorial on ALGOL 68.''
Computing Surveys, volume 8, number 2, June 1976,
pages 155-190.
Reprinted in [95, pages 69-104].
An introduction to ALGOL 68 as defined in the revised report of 1975. While
ALGOL 60 did not have input or output procedures, ALGOL 68 has a wide
assortment of such routines, including ``readf'' and ``printf'' which are
complex routines vaguely resembling those of the IO library for the C
programming language.
- 188
-
Tarnlund, S. A.
``Horn clause computability.''
BIT, volume 17, 1977, pages 215-226.
- 189
-
Tennent, R. D.
``Another look at type compatibility in Pascal.''
Software--Practice and Experience, volume 8, 1978,
pages 429-437.
- 190
-
Tennent, R. D.
Principles of Programming Languages.
Prentice Hall, Englewood Cliffs, New Jersey, 1981.
- 191
-
Thomas, Peter G., Hugh Robinson, and Judy Emms.
Abstract Data Types.
Oxford University Press, Oxford, England, 1988.
- 192
-
Turner, David A.
``A new implementation technique for applicative languages.''
Software--Practice and Experience, volume 9, number 1, 1979,
pages 31-49.
This paper argues that translating functional languages to combinators is a
practical way of implementing these languages.
- 193
-
United States Department of Defense.
Reference Manual for the Ada Programming Language.
United States Government Printing Office, Washington, D.C., 1983.
A hypertext version is available at
http://www.itl.saic.com/ada/ada_lrm.html.
- 194
-
van Heijenoort, Jan, editor.
From Frege to Gödel: A Source Book in Mathematical Logic.
Harvard University Press, Cambridge, Massachusetts, 1977.
- 195
-
Vuillemin, Jean.
``Correct and optimal implementations of recursion in a simple
programming language.''
Journal of Computer and System Sciences, volume 9, number 3,
December 1974, pages 332-354.
- 196
-
Wasserman, Anthony I., editor.
Tutorial, Programming Language Design.
IEEE Computer Society Press, Los Alamitos, California, 1980.
A collection of 39 significant papers concerning imperative programming
languages.
- 197
-
Watt, David Anthony.
``Executable semantic descriptions.''
Software--Practice and Experience, volume 16, number 1,
January 1986, pages 13-43.
- 198
-
Welsh, Jim, J. Sneeringer, and Charles Antony Richard Hoare.
``Ambiguities and insecurities in Pascal.''
Software--Practice and Experience, volume 7, number 6, 1977,
pages 685-696.
Reprinted in [196, pages 284-295].
- 199
-
Wexelblat, Richard L., editor.
History of Programming Languages.
ACM monograph series. Academic Press, New York, 1981.
Proceedings of the first SIGPLAN sponsored conference about the history of
programming languages. It was held in 1978 and focused on 13 programming
languages represented by invited speakers: FORTRAN, John Backus; ALGOL, Alan
Perlis, Peter Naur; LISP, John McCarthy; COBOL, Jean Sammett; APT, Douglas
Ross; JOVIAL, Jules Schwartz; GPSS, Geoffrey Gordon; SIMULA, Kristen Nygaard
and Ole-Johan Dahl; JOSS, Charles Baker; BASIC, Thomas Kurtz; PL/I, George
Radin; SNOBOL, Ralph Griswold; APL, Kenneth Iverson.
- 200
-
Williams, Michael Roy.
A History of Computing Technology.
Prentice Hall, Englewood Cliffs, New Jersey, 1985.
- 201
-
Winkler, J. F. H.
``Some improvements of ISO Pascal.''
SIGPLAN Notices, volume 19, number 9, September 1984,
pages 49-62.
Reprinted in [95, pages 123-153].
- 202
-
Winograd, Terry A.
``Computer software for working with language.''
In Language, Writing, and the Computer, W. H. Freeman, New
York, 1986, pages 61-72.
- 203
-
Wirth, Niklaus Emil.
``Program development by stepwise refinement.''
Communications of the ACM, volume 14, number 4, April 1971,
pages 221-227.
The method of stepwise refinement is used to solve the eight-Queens problem
in chess. This method involves refining the program structure in ever
increasing detail until the steps of the algorithm can be implemented
directly in the programming language.
- 204
-
Wirth, Niklaus Emil.
``The programming language Pascal.''
Acta Informatica, volume 1, number 1, 1971, pages 35-63.
The first implementation of Pascal was written by a single graduate student
in FORTRAN in 1969. The second compiler was to be implemented in the language
itself using a single-pass system based on recursive-descent parsing. This
version of the Pascal language, now containing recursion, appeared as a
technical report in 1970 and soon afterward as this paper in Acta
Informatica.
- 205
-
Wirth, Niklaus Emil.
``On the design of programming languages.''
In Information processing 74, edited by Jack L. Rosenfeld,
North-Holland, Amsterdam, 1974, pages 386-393.
- 206
-
Wirth, Niklaus Emil.
``An assessment of the programming language Pascal.''
IEEE Transactions on Software Engineering, volume SE-1,
number 2, June 1975, pages 192-198.
Reprinted in [95, pages 117-122].
- 207
-
Wirth, Niklaus Emil.
``From Modula to Oberon.''
Software--Practice and Experience, volume 18, number 7,
1988, pages 661-670.
- 208
-
Wirth, Niklaus Emil.
``Recollections about the development of Pascal.''
SIGPLAN Notices, volume 28, number 3, March 1993,
pages 333-342.
This is one of papers presented at the History of Programming Languages
conference. Wirth explains Pascal's genesis as a successor to ALGOL W.
- 209
-
Wirth, Niklaus Emil, and Charles Antony Richard Hoare.
``A contribution to the development of ALGOL.''
Communications of the ACM, volume 9, number 6, June 1966,
pages 413-432.
This two-part paper is an introduction and a definition to a programming
language designed as a successor to ALGOL 60 and as an alternative to the
emerging ALGOL 68 language. It came to be known as ALGOL W and was
implemented on the IBM 360 at Stanford University. ALGOL W included types for
records and pointers and a case statement.
- 210
-
Zemanek, Heinz.
``Al-Khorezmi: His background, his personality, his work and his
influence.''
In Algorithms in Modern Mathematics and Computer Science,
edited by Andrei Petrovitch Ershov and Donald Ervin Knuth,
Springer-Verlag, Berlin, 1981, pages 8-81.
Ryan Stansifer <ryan@cs.fit.edu>
Document location: http://www.cs.fit.edu/~ryan/study/bibliography.html
Last modified: Wed Jan 10 21:04:48 EST 1996