CSC 530 Readings

CSC 530: Readings in Principles of Programming Languages

In the online version of this table of contents,
document titles are linked to the electronic version of the document,
when an electronic version is available.



    Functional Programming

  1. Hudak, P. Conception, Evolution, and Application of Functional Programming Languages, ACM Computing Surveys, 21, 3, pp. 359-411 (September 1989).
  2. McCarthy, J. A. Recursive functions of Symbolic Expressions and Their Computation by Machine, Part I, Communications of the ACM 3, 4, pp. 184-195 (April 1960).
  3. Backus, J. Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs, Communications of the ACM, 21, 8, pp. 613-641 (August 1978).
  4. Pippenger, N. Pure versus Impure Lisp, ACM Transactions on Programming Languages and Systems, 19, 2, pp. 109-138 (March 1997).
  5. Umut, A. A., G. E. Blelloch, R. Harper. Adaptive Functional Programming, ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 247-259 (January 2002).

    Type Systems

  6. Cardelli, L. and P. Wegner. On Understanding Types, Data Abstraction, and Polymorphism, ACM Computing Surveys, 17, 4, pp. 471-522 (December 1985).
  7. Taivalsaari, T. On the Notion of Inheritance (abstract and references only), ACM Computing Surveys, 28, 3, pp. 438-479 (September 1996).
  8. Myers, A. C., J. A. Bank, B. Liskov, Parameterized Types for Java, ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 132-145 (January 1997).
  9. Odersky, M., P. Wadler. Pizza into Java: Translating Theory into Practice, ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 146-159 (January 1997).

    An additional type-system paper referenced in Lecture Notes Week 3:
    Danforth, S. and C. Tomlinson. Type Theories and Object-Oriented Programming, ACM Computing Surveys, 20, 1, pp. 29-72 (March 1988).

    Attribute Grammar Semantics

  10. Kunth, D. E. Semantics of Context-Free Languages, Mathematical Systems Theory, 2, 2, pp. 127-145, Springer-Verlag (1967).
  11. Bochmann, G. V. Semantic Evaluation from Left to Right, Communications of the ACM, 19, 2, pp. 55-62 (February 1976).
  12. Kennedy, K. and S. K. Warren, Automatic Generation of Efficient Evaluators for Attribute Grammars (abstract and references only), ACM Symposium on Principles of Programming Languages, pp. 32-49 (January 1976).
  13. Demers, A., T. Reps, and T Teitelbam, Incremental Evaluation for Attribute Grammars with Application to Syntax-Directed Editors (abstract and references only), ACM Symposium on Principles of Programming Languages, pp. 105-116 (January 1981).
  14. Jourdan, M. Strongly Non-Circular Attribute Grammars and their Recursive Evaluation (abstract and references only), ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 81-93 (June 1984).
  15. Micallef, J. G. E. Kaiser. Extending Attribute Grammars to Support Programming in the Large (abstract and references only), ACM Transactions on Programming Languages and Systems, 16, 5, pp. 73-108 (September 1994).
  16. Boyland, J. T. Conditional Attribute Grammars (abstract and references only), ACM Transactions on Programming Languages and Systems, 18, 1, pp. 73-108 (January 1996).

    Denotational Semantics

  17. Scott, D. and C. Strachey. Towards a Mathematical Semantics for Computer Languages, Symposium on Computers and Automata, pp. 19-46 (April 1971).
  18. Reynolds, J. C. Definitional Interpreters for Higher-Order Programming Languages (abstract and references only), Proceedings of the ACM National Conference, pp 717-740 (1972).
  19. Tennent, R. D. The Denotational Semantics of Programming Languages, Communications of the ACM, 19, 8, pp. 437-453 (August 1976).
  20. Tennent, R. D. Principles of Programming Languages (Chapters 3 and 13), Prentice-Hall (1981).
  21. Gudeman, D. A. Denotational Semantics of a Goal-Directed Language (abstract and references only), ACM Transactions on Programming Languages and Systems, 14, 1, pp. 107-125 (January 1992).
  22. Banerjee, A., D. A. Naumann. Representation Independence, Confinement, and Access Control [extended abstract], ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 166-177 (January 2002).

    Axiomatic Semantics

  23. Floyd, R. W. Assigning Meaning to Programs, Symposium in Applied Mathematics, 19, American Mathematical Society, pp. 19-32 (1967).
  24. Hoare, C. A. R. An Axiomatic Basis for Computer Programming, Communications of the ACM, 12, 10, (October 1969).
  25. Hoare, C. A. R. and M. Clint, Program Proving: Jumps and Functions (abstract and references only), Acta Informatica, 1 pp. 214-224 (1972).
  26. Hoare, C. A. R. Proof of Correctness of Data Representations (abstract and references only), Acta Informatica, 1 pp. 271-281 (1972).
  27. Hoare, C. A. R. and N. Wirth, An Axiomatic Definition of the Programming Language PASCAL (abstract and references only), Acta Informatica 2, pp. 335-355 (1973).
  28. Boyer, R. S. and J. S. Moore, Proving Theorems about LISP Programs (abstract and references only), Journal of the ACM, 22, 1, pp 129-144 (January 1975).
  29. Wegbreit, B. The Synthesis of Loop Predicates (abstract and references only), Communications of the ACM, 17, 2, pp. 102-112 (February 1974).
  30. DeMillo, R. A., R. J. Lipton, and A. J. Perlis. Social Processes and Proofs of Theorems and Programs, ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 206-214 (January 1977).
  31. Necula, G. C., Proof-Carrying Code (abstract and references only), ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 106-119 (January 1997).
  32. Qian, Z. Standard Fixpoint Iteration for Java Bytecode Verification (abstract and references, ACM Transactions on Programming Languages and Systems only), 22, 4, pp. 638-672 (July 2000).
  33. Flanagan, C., J. B. Saxe. Avoiding Exponential Explosion: Generating Compact Verification Conditions (abstract and references only), ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 193-205 (January 2001).

    Algebraic Semantics

  34. Goguen, J. A., J. W. Thatcher, H. G. Wagner, and J. B. Wright. Initial Algebra Semantics and Continuous Algebras (abstract and references only), Research Report RC5243, IBM Thomas J. Watson Research Center (1975).
  35. Guttag, J. V., E. Horowitz, and D. R. Musser. Abstract Data Types and Software Validation, Communications of the ACM, 21, 12, pp. 1048-1064 (December 1978).
  36. Goguen, J. A. Parameterized Programming. IEEE Transactions on Software Engineering, SE-10, 5, pp. 428-543 (September 1984).
  37. Goguen, J. A. and J. Meseguer. Order-Sorted Algebra Solves the Constructor-Selector, Multiple Representation and Coercion Problems (abstract and references only), ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 18-29, (January 1987).
  38. Goguen, J. A., C. Kirchner, and J. Meseguer. Concurrent Term Rewriting as a Model of Computation (abstract and references only), Technical Report SRI-CSL-87-2, Computer Science Laboratory, SRI International (May 1987).
  39. Goguen, J. A. and T. Winkler. Introducing OBJ3 (abstract and references only), Technical Report SRI-CSL-88-9, Computer Science Laboratory, SRI International (August 1988).
  40. Clavel, M., et al. A Maude Tutorial (abstract and references only), SRI International, http://maude.csl.sri.com/tutorial, (March 2000).
  41. Goguen, J. A. The OBJ Family, http://www.cs.ucsd.edu/users/goguen/sys/obj.html (March 2002).