Implementing RUSSELL
- 1 July 1986
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 21 (7), 186-195
- https://doi.org/10.1145/13310.13330
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.Keywords
This publication has 16 references indexed in Scilit:
- Data types are valuesACM Transactions on Programming Languages and Systems, 1985
- Partial polymorphic type inference is undecidablePublished by Institute of Electrical and Electronics Engineers (IEEE) ,1985
- Efficient implementation of the smalltalk-80 systemPublished by Association for Computing Machinery (ACM) ,1984
- Compiling a functional languagePublished by Association for Computing Machinery (ACM) ,1984
- A single-pass syntax-directed front end for AdaPublished by Association for Computing Machinery (ACM) ,1982
- An optimizing compiler for lexically scoped LISPPublished by Association for Computing Machinery (ACM) ,1982
- Data types, parameters and type checkingPublished by Association for Computing Machinery (ACM) ,1980
- "Type-completeness" as a language principlePublished by Association for Computing Machinery (ACM) ,1980
- Edinburgh LCFLecture Notes in Computer Science, 1979
- Can programming be liberated from the von Neumann style?Communications of the ACM, 1978