Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Implementing RUSSELL

Published: 01 July 1986 Publication History

Abstract

We have completed an implementation of the Russell programming language [Don 85]. This effort has been very helpful in the evaluation of the original language design. It has also served to pinpoint the difficulties in implementing languages with type systems as general as that of Russell.
Russell treats both functions and types as data objects which can be freely manipulated by the program. Most operators present in conventional programming languages are viewed as function calls. In spite of this, our compiler produces surprisingly efficient machine code, even with minimal effort invested in the code generator.
The generality of the language served to simplify some aspects of the compiler. We focus on the separate compilation mechanism.
The most difficult implementation problem is that of inferring typing information omitted by the programmer. We argue that this is an essential part of type checking a language such as Russell. Our current solution is only partially satisfactory.

References

[1]
Aho, Alfred V, John E. Hopcroft, Jeffrey D. UIP man, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974, p.55.
[2]
Backus, J., "Can Programming Be Liberated from the yon Neumann Style? A Functional Style and Its Algebra of Programs", Communications of the ACM 21, 8 (August 1978), pp. 613-641.
[3]
Baker, T. P., "A Single-Pass Syntax-Directed Front End for Ada", Proceedings of the SIG- PLAN '82 Symposium on Compiler Construction, SIGPLAN Notices 17, 6 (June 1982), pp, 318-326.
[4]
Boehm, Hans, Alan J. Demers, and James E~ Donahue, "An Informal Description of Russell", Technical Report 80-430, Department of Computer Science, Cornell University, 1980.
[5]
Boehm, Hans, Alan J. Demers, and James E. Donahue, "A Programmer's Introduction to Russell", Technical Report 85-16, Computer Science, Rice University, 1985.
[6]
Boehm, Hans, "Partial Polymorphic Type Inference is Undecidable", Proceedings of the 26th Annual Symposium on Foundations of Computer Science, pp. 339-345.
[7]
Brooks, Rodney A., Richard P. Gabriel, Guy L. Steele Jr, "An Optimizing Compiler for Lexically Scoped LISP", Proceedings of the SIG- PLAN '82 Symposium on Compiler Construction, SIGPLAN Notices 17, 6 (June 1982), pp. 261-273.
[8]
Cardelli, Luca, "Compiling a Functional Language", Conference Record of the 1984 Symposium on LISP and Functional Programming, pp. 208-217.
[9]
Demers, Alan J., and James E. Donahue, "Data Types are Values", Department of Computer Science, Comell University, Technical Report TR79-393.
[10]
Demers, Alan J., and James E. Donahue, "Data Types, Parametem, and Type Checking", Proceedings, 7th Annual ACM Symposium on PrincipLes of Programming; Languages, 1980, pp. 12 -23.
[11]
Demers, Alan J., and James E. Donahue, "Type-completeness as a Language Principle", Proceedings, 7th Annual ACM Symposium on Principles of Programming Languages, 1980, pp. 234-244.
[12]
Deutsch, Peter L., and Allan M. Schiffman, "Efficient Implementation of the Smallt, alk-80 System", Proceedings, l lth Annual ACM Symposium on Principles of Programming Languages, 1984, pp.297-302.
[13]
Dijkstra, Edsger W., A Discipline of Programming, Prentice Hall, Englewood Cliffs, NJ, 1976.
[14]
Donahue, J., and A. Demem, "Data Types are Values", ACM Transactions on Programming Lang;uuges ~nd Systems 7, :3 (July 1985), pp. 426-445.
[15]
Gordon, M. J., R. Milner, and C. P. Wadsworth, Lecture Note8 in Computer Science, Vol. 78: Edinburgh LCF, Springer Verlag, 1979.
[16]
Ichbiah, J. D., J. G. P. Barnes, J. C. Heliurd, B. Krieg-Brueckner, O. Roubine, and B. A. Wichmann, "Rationale for the Design of the ADA Programming Language", SIGPLAN Notices 14, 6B (June 1979). See especially chapter 13 and pages 4-17.
[17]
Jenks, Richard D., "A Primer: 11 Keys to the new Scratchpad", Proceeding of EUROSAM '84, Springer Lecture Notes in Computer Science # 174, pp. 12;3-147.
[18]
Lampson, Butler W., and Eric E. Schmidt, "Practical Use of a Polymorphic Applicative Language", Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, 1983, pp. 237-255.
[19]
Liskov, B.H., A. Snyder, R. Atkinson, and C. Schaffert, "Abstraction Mechanisms in CLU", Communications of the ACM 20, 8 (August 1977), pp. 564-576.
[20]
MacQueen, David, Gordon Plotkin, and Ravi Sethi, "An Ideal Model for Recursive Polymorphic types", Conference Record of the Eleventh Annual ACM Symposium On Principles of Programming Languages, 1984.
[21]
Matthews, D.C.J., "Poly Report", University of Cambridge Computer Laboratory, Technical Report No. 28, 1982.
[22]
Matthews, D.C.J., "Introduction to Poly", University of Cambridge Computer Laboratory, Technical Report No. 29, 1982. Both this and the preceding reference are reprinted in the April 1983 issue of the Polymorphism newsletter (edited by Cardelli and MacQueen, Bell Laboratories, Murray Hill).
[23]
Matthews, D.C.J., "Poly Manual", SIGPLAN Notices 20, 9 (Sept. 85), pp. 52-76.
[24]
Milner, R. "A Theory of Type Polymorphism in Prog;ramming", Journal of Computer and System Sciences 17 (1978), pp. 348-375.
[25]
Mitchell, J., W. Maybury, and R. Sweet, "Mesa Language Manual, Version 5.0", April 1979, Xerox PARC report CSL-79-3.
[26]
Stoy, Joseph E., Denotational Semantics: The Scott-Strachey approach to Programming Language Theory, MIT Press, 1977.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 21, Issue 7
July 1986
275 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/13310
Issue’s Table of Contents
  • cover image ACM Conferences
    SIGPLAN '86: Proceedings of the 1986 SIGPLAN symposium on Compiler construction
    July 1986
    275 pages
    ISBN:0897911970
    DOI:10.1145/12276

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 July 1986
Published in SIGPLAN Volume 21, Issue 7

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)92
  • Downloads (Last 6 weeks)12
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)BibliographyEngineering a Compiler10.1016/B978-0-12-815412-0.00023-1(793-813)Online publication date: 2023
  • (2023)Syntax-Driven TranslationEngineering a Compiler10.1016/B978-0-12-815412-0.00011-5(209-273)Online publication date: 2023
  • (2012)BibliographyEngineering a Compiler10.1016/B978-0-12-088478-0.00024-4(765-785)Online publication date: 2012
  • (2004)The essence of compiling with continuationsACM SIGPLAN Notices10.1145/989393.98944339:4(502-514)Online publication date: 1-Apr-2004
  • (2003)Engineering a CompilerundefinedOnline publication date: 11-Dec-2003
  • (1993)The essence of compiling with continuationsACM SIGPLAN Notices10.1145/173262.15511328:6(237-247)Online publication date: 1-Jun-1993
  • (1993)The essence of compiling with continuationsProceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation10.1145/155090.155113(237-247)Online publication date: 1-Aug-1993
  • (1990)Type-dependent parameter inferenceACM SIGPLAN Notices10.1145/93548.9356025:6(127-136)Online publication date: 1-Jun-1990
  • (1990)Type-dependent parameter inferenceProceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation10.1145/93542.93560(127-136)Online publication date: 1-Jun-1990
  • (1990)Unify and conquerProceedings of the 1990 ACM conference on LISP and functional programming10.1145/91556.91652(218-226)Online publication date: 1-May-1990
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media