Hostname: page-component-cd9895bd7-8ctnn Total loading time: 0 Render date: 2024-12-23T03:17:00.122Z Has data issue: false hasContentIssue false

From Polyvariant flow information to intersection and union types

Published online by Cambridge University Press:  31 May 2001

JENS PALSBERG
Affiliation:
Department of Computer Science, Purdue University, W. Lafayette, IN 47907, USA; (e-mail: palsberg@cs.purdue.edu)
CHRISTINA PAVLOPOULOU
Affiliation:
Department of Computer Science, Purdue University, W. Lafayette, IN 47907, USA; (e-mail: palsberg@cs.purdue.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Many polyvariant program analyses have been studied in the 1990s, including k-CFA, polymorphic splitting, and the cartesian product algorithm. The idea of polyvariance is to analyze functions more than once and thereby obtain better precision for each call site. In this paper we present an equivalence theorem which relates a co-inductively-defined family of polyvariant flow analyses and a standard type system. The proof embodies a way of understanding polyvariant flow information in terms of union and intersection types, and, conversely, a way of understanding union and intersection types in terms of polyvariant flow information. We use the theorem as basis for a new flow-type system in the spirit of the λCIL-calculus of Wells, Dimock, Muller and Turbak, in which types are annotated with flow information. A flow-type system is useful as an interface between a flow-analysis algorithm and a program optimizer. Derived systematically via our equivalence theorem, our flow-type system should be a good interface to the family of polyvariant analyses that we study.

Type
Research Article
Copyright
© 2001 Cambridge University Press

Footnotes

A preliminary version of this paper appeared in the Proceedings of POPL'98: 25th Annual SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 197–208, San Diego, CA, January 1998.
Submit a response

Discussions

No Discussions have been published for this article.