Design of the Programming Language Forsythe

  • John C. Reynolds
Part of the Progress in Theoretical Computer Science book series (PTCS)


This is a description of the programming language Forsythe, which is a descendant of Algol 60 intended to be as uniform and general as possible, while retaining the basic character of its progenitor. (This report supersedes the preliminary description of Forsythe [1].)


Data Type Inference Rule Simple Type Reduction Rule Concrete Syntax 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Reynolds, J.C. Preliminary Design of the Programming Language FORSYTHE. Report no. CMU-CS-88–159, Carnegie Mellon University, Computer Science Department, June 21, 1988.Google Scholar
  2. [2]
    Naur, P. et al. Report on the algorithmic language ALGOL 60. Communications of the ACM, vol. 3 (1960), pp. 299–314.MathSciNetCrossRefGoogle Scholar
  3. [3]
    Naur, P. et al. Revised report on the algorithmic language ALGOL 60. Communications of the ACM, vol. 6 (1963), pp. 1–17. See Chapter 1.CrossRefGoogle Scholar
  4. [4]
    Wirth, N. and Hoare, C. A. R. A contribution to the development of ALGOL. Communications of the ACM, vol. 9 (1966), pp. 413–432.MATHCrossRefGoogle Scholar
  5. [5]
    Reynolds, J. C. The essence of ALGOL. In Algorithmic Languages, Proceedings of the International Symposium on Algorithmic Languages, Amsterdam, October 26–29, edited by J. W. de Bakker and J. C. van Vliet. North-Holland, Amsterdam, 1981, pp. 345–372. See Chapter 3.Google Scholar
  6. [6]
    Landin, P. J. The next 700 programming languages. Communications of the ACM, vol. 9(1966), pp. 157–166.MATHCrossRefGoogle Scholar
  7. [7]
    van Wijngaarden, A., Mailloux, B. J., Peck, J. E. L., Koster, C. H. A., Sintzoff, M., Lindsey, C. H., Meertens, L. G. L. T., and Fisker, R. G. Revised report on the algorithmic language ALGOL 68. Acta Informatica, vol. 5 (1975), pp. 1–236.MATHCrossRefGoogle Scholar
  8. [8]
    Sussman, G. J. and Steele Jr., G. L. SCHEME: An Interpreter for Extended Lambda Calculus. Al Memo no. 349, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, December 1975, 42 pp.Google Scholar
  9. [9]
    Milner, R., Tofte, M., and Harper, R. W. The Definition of Standard ML. MIT Press, Cambridge, Massachusetts, 1990, xi+101 pp.Google Scholar
  10. [10]
    Reynolds, J. C. The Craft of Programming. Prentice-Hall International, London, 1981, xiii+434 pp.MATHGoogle Scholar
  11. [11]
    Dahl, O.–J., Myhrhaug, B., and Nygaard, K. SIMULA 67 Common Base Language. Publication, no. S-2, Norwegian Computing Center, Oslo, Norway, May 1968.Google Scholar
  12. [12]
    Cardelli, L. A semantics of multiple inheritance. In Semantics of Data Types, International Symposium, Sophia-Antipolis, France, June 27–29, edited by G. Kahn, D. B. Maueen, and G. D. Plotkin. Lecture Notes in Computer Science, vol. 173, Springer-Verlag, Berlin, 1984, pp. 51–67.Google Scholar
  13. [13]
    Coppo, M., Dezani-Ciancaglini, M., and Venneri, B. Functional characters of solvable terms. Zeitschrift für Mathematische Logik und Grundlagen der Mathematik, vol. 27(1981), pp. 45–58.MathSciNetMATHCrossRefGoogle Scholar
  14. [14]
    Coppo, M., Dezani-Ciancaglini, M., Honseil, F., and Longo, G. Extended type structures and filter lambda models. In Logic Colloquium ‘82, Florence, Italy, August 23–28, 1982, edited by G. Lolli, G. Longo, and A. Marcja. Studies in Logic and the Foundations of Mathematics, vol. 112, North-Holland, Amsterdam, 1984, pp. 241–262.Google Scholar
  15. [15]
    Hindley, J. R. Types with intersection: an introduction. Formal Aspects of Computing, vol. 4 (1992), pp. 470–486.MATHCrossRefGoogle Scholar
  16. [16]
    Öles, F. J. A Category-Theoretic Approach to the Semantics of Programming Languages, Ph. D. Dissertation. Syracuse University, August 1982, vi+240 pp. See Chapter 11.Google Scholar
  17. [17]
    Oies, F. J. Type algebras, functor categories, and block structure. In Algebraic Methods in Semantics, edited by M. Nivat and J. C. Reynolds. Cambridge University Press, Cambridge, England, 1985, pp. 543–573. See Chapter 11.Google Scholar
  18. [18]
    Pierce, B. C. Programming with Intersection Types and Bounded Polymorphism, Ph. D. Dissertation. Carnegie Mellon University, December 1991, viii+175 pp. Report No. CMU-CS-91–205.Google Scholar
  19. [19]
    Reynolds, J. C. Conjunctive types and ALGOL-like languages (abstract of invited lecture). In Proceedings Symposium on Logic in Computer Science, Ithaca, New York, June 22–25. 1987, p. 119.Google Scholar
  20. [20]
    Reynolds, J. C. The coherence of languages with intersection types. In Theoretical Aspects of Computer Software, International Conference TACS ‘91, Proceedings, Sendai, Japan, September 24–27, 1991, edited by T. Ito and A. R. Meyer. Lecture Notes in Computer Science, vol. 526, Springer-Verlag, Berlin, 1991, pp. 675–700.Google Scholar
  21. [21]
    Reynolds, J. C. Using functor categories to generate intermediate code. In Conference Record of POPL ‘95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, January 22–25. 1995, pp. 25–36. See Chapter 12.Google Scholar
  22. [22]
    Reynolds, J. C. Towards a theory of type structure. In Programming Symposium, Proceedings, Colloque sur la Programmation, Paris, April 9–11, edited by B. Robinet. Lecture Notes in Computer Science, vol. 19, Springer-Verlag, Berlin, 1974, pp. 408–425.Google Scholar
  23. [23]
    Cardelli, L. and Wegner, P. On understanding types, data abstraction, and polymorphism. ACM Computing Surveys, vol. 17 (1985), pp. 471–522.CrossRefGoogle Scholar
  24. [24]
    Pierce, B. C. Bounded quantification is undecidable. In Conference Record of the Nineteenth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Albuquerque, New Mexico, January 19–22. 1992, pp. 305–315.Google Scholar
  25. [25]
    Dijkstra, E. W. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, New Jersey, 1976, xviii+217 pp.MATHGoogle Scholar
  26. [26]
    Reynolds, J. C. Syntactic control of interference. In Conference Record of the Fifth Annual ACM Symposium on Principles of Programming Languages, Tucson, Arizona, January 23–25. 1978, pp. 39–46. See Chapter 10.Google Scholar
  27. [27]
    Reynolds, J.C. Syntactic control of interference, part 2. In Automata, Languages and Programming, 16th International Colloquium, Stresa, Italy, July IIIS, edited by G. Ausiello, M. Dezani-Ciancaglini, and S. Ronchi Della Rocca. Lecture Notes in Computer Science, vol. 372, Springer-Verlag, Berlin, 1989, pp. 704–722.Google Scholar
  28. [28]
    O’Hearn, P. W., Power, A. J., Takeyama, M., and Tennent, R. D. Syntactic control of interference revisited. In Mathematical Foundations of Programming Semantics, Eleventh Annual Conference, Tulane University, New Orleans, Louisiana, edited by S. Brookes, M. Main, A. Melton, and M. Mislove. Electronic Notes in Theoretical Computer Science, vol. 1, Elsevier Science (, 1995. See Chapter 18.Google Scholar
  29. [29]
    Hopcroft, J. E. and Ullman, J. D. Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, Reading, Massachusetts, 1979, x+418 pp.MATHGoogle Scholar

Copyright information

© Birkhäuser Boston 1997

Authors and Affiliations

  • John C. Reynolds

There are no affiliations available

Personalised recommendations