Algol-like Languages pp 173-233 | Cite as

# Design of the Programming Language Forsythe

Chapter

## Abstract

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].)

## Keywords

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.

## Preview

Unable to display preview. Download preview PDF.

## References

- [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]Naur, P. et al. Report on the algorithmic language ALGOL 60.
*Communications of the ACM*, vol. 3 (1960), pp. 299–314.MathSciNetCrossRefGoogle Scholar - [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]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]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]Landin, P. J. The next 700 programming languages.
*Communications of the ACM*, vol. 9(1966), pp. 157–166.MATHCrossRefGoogle Scholar - [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]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]Milner, R., Tofte, M., and Harper, R. W.
*The Definition of Standard ML*. MIT Press, Cambridge, Massachusetts, 1990, xi+101 pp.Google Scholar - [10]Reynolds, J. C.
*The Craft of Programming*. Prentice-Hall International, London, 1981, xiii+434 pp.MATHGoogle Scholar - [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]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]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]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]Hindley, J. R. Types with intersection: an introduction.
*Formal Aspects of Computing*, vol. 4 (1992), pp. 470–486.MATHCrossRefGoogle Scholar - [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]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]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]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]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]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]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]Cardelli, L. and Wegner, P. On understanding types, data abstraction, and polymorphism.
*ACM Computing Surveys*, vol. 17 (1985), pp. 471–522.CrossRefGoogle Scholar - [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]Dijkstra, E. W.
*A Discipline of Programming*. Prentice-Hall, Englewood Cliffs, New Jersey, 1976, xviii+217 pp.MATHGoogle Scholar - [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]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]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 (http://www.elsevier.nl)http://www.elsevier.nl, 1995. See Chapter 18.Google Scholar - [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