Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- ArticleDecember 1989
Deciding ML typability is complete for deterministic exponential time
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 382–401https://doi.org/10.1145/96709.96748A well known but incorrect piece of functional programming folklore is that ML expressions can be efficiently typed in polynomial time. In probing the truth of that folklore, various researchers, including Wand, Buneman, Kanellakis, and Mitchell, ...
- ArticleDecember 1989
Quasi-static typing
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 367–381https://doi.org/10.1145/96709.96747We present a new approach to dynamic typing in a static framework. Our main innovation is the use of structural subtyping for dynamic types based on the idea that possible dynamic typing as a property should be inherited by objects of all types. Two ...
- ArticleDecember 1989
Safe run-time overloading
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 355–366https://doi.org/10.1145/96709.96746We present a functional language featuring a form of dynamic overloading akin to message passing in object oriented languages. We give a dynamic semantics describing a non-deterministic evaluation, as well as a type discipline (static semantics) ...
- ArticleDecember 1989
Higher-order modules and the phase distinction
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 341–354https://doi.org/10.1145/96709.96744In earlier work, we used a typed function calculus, XML, with dependent types to analyze several aspects of the Standard ML type system. In this paper, we introduce a refinement of XML with a clear compile-time/run-time phase distinction, and a direct ...
- ArticleDecember 1989
Program transformation in the presence of errors
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 210–217https://doi.org/10.1145/96709.96730Language designers and implementors have avoided specifying and preserving the meaning of programs that produce errors. This is apparently because being forced to preserve error behavior severely limits the scope of program optimization, even for ...
- ArticleDecember 1989
A finite presentation theorem for approximating logic programs
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 197–209https://doi.org/10.1145/96709.96729The notion of Cartesian closure on a set of unifiers has been used to define approximations of the least models of logic programs. Such approximations, often called types, are not known to be recursive. In this paper, we use Cartesian closure to define ...
- ArticleDecember 1989
An efficient hybrid algorithm for incremental data flow analysis
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 184–196https://doi.org/10.1145/96709.96728Our exhaustive and incremental hybrid data flow analysis algorithms, based on iteration and elimination techniques, are designed for incremental update of a wide variety of monotone data flow problems in response to source program changes. Unlike ...
- ArticleDecember 1989
Small domains spell fast strictness analysis
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 169–183https://doi.org/10.1145/96709.96727Use of strictness analysis in parallel evaluation and optimization of lazy functional languages is well known. The first formal treatment of strictness analysis appeared in Mycroft's seminal work which however dealt only with flat domains. Unlike flat ...
- ArticleDecember 1989
On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 157–168https://doi.org/10.1145/96709.96725We present a static analysis method for determining aliasing and lifetime of dynamically allocated data in lexically scoped, higher-order, strict and polymorphic languages with first class continuations. The goal is validate program transformations that ...
- ArticleDecember 1989
A type system for Smalltalk
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 136–150https://doi.org/10.1145/96709.96722This paper describes a type system for Smalltalk that is type-safe, that allows most Smalltalk programs to be type-checked, and that can be used as the basis of an optimizing compiler.
- ArticleDecember 1989
Inheritance is not subtyping
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 125–135https://doi.org/10.1145/96709.96721In typed object-oriented languages the subtype relation is typically based on the inheritance hierarchy. This approach, however, leads either to insecure type-systems or to restrictions on inheritance that make it less flexible than untyped Smalltalk ...
- ArticleDecember 1989
Toward a typed foundation for method specialization and inheritance
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 109–124https://doi.org/10.1145/96709.96719This paper discusses the phenomenon of method specialization in object-oriented programming languages. A typed function calculus of objects and classes is presented, featuring method specialization when methods are added or redefined. The soundness of ...
- ArticleDecember 1989
Interaction nets
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 95–108https://doi.org/10.1145/96709.96718We propose a new kind of programming language, with the following features:
- a simple graph rewriting semantics,
- a complete symmetry between constructors and destructors,
- a type discipline for deterministic and deadlock-free (microscopic) parallelism.
...
- ArticleDecember 1989
A formulae-as-type notion of control
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 47–58https://doi.org/10.1145/96709.96714The programming language Scheme contains the control construct call/cc that allows access to the current continuation (the current control context). This, in effect, provides Scheme with first-class labels and jumps. We show that the well-known formulae-...
- ArticleDecember 1989
Explicit substitutions
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 31–46https://doi.org/10.1145/96709.96712The λσ-calculus is a refinement of the λ-calculus where substitutions are manipulated explicitly. The λσ-calculus provides a setting for studying the theory of substitutions, with pleasant mathematical properties. It is also a useful bridge between the ...
- ArticleDecember 1989
An algorithm for optimal lambda calculus reduction
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 16–30https://doi.org/10.1145/96709.96711We present an algorithm for lambda expression reduction that avoids any copying that could later cause duplication of work. It is optimal in the sense defined by Lévy. The basis of the algorithm is a graphical representation of the kinds of commonality ...
- ArticleDecember 1989
On laziness and optimality in lambda interpreters: tools for specification and analysis
POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDecember 1989, Pages 1–15https://doi.org/10.1145/96709.96710In this paper, I introduce a new formal system, ACCL, based on Curien's Categorical Combinators [Cur86a]. I show that ACCL has properties not possessed by Curien's original combinators that make it particularly appropriate as the basis for ...