Bidirectional data-flow analyses, type-systematically

Maria João Frade, Ando Saabas, Tarmo Uustalu

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

1 Citation (Scopus)

Abstract

We show that a wide class of bidirectional data-flow analyses and program optimizations based on them admit declarative descriptions in the form of type systems. The salient feature is a clear separation between what constitutes a valid analysis and how the strongest one can be computed (via the type checking versus principal type inference distinction). The approach also facilitates elegant relational semantic soundness definitions and proofs for analyses and optimizations, with an application to mechanical transformation of program proofs, useful in proof-carrying code. Unidirectional forward and backward analyses are covered as special cases; the technicalities in the general bidirectional case arise from more subtle notions of valid and principal types. To demonstrate the viability of the approach we consider two examples that are inherently bidirectional: type inference (seen as a data-flow problem) for a structured language where the type of a variable may change over a program's run and the analysis underlying a stack usage optimization for a stack-based low-level language.

Original languageEnglish
Title of host publicationProceedings of the 2009 ACM SIGPLAN Symposium on Partial Evaluation and Program Manipulation, PEPM'09
Pages141-149
Number of pages9
DOIs
Publication statusPublished - 2009
Event2009 ACM SIGPLAN Symposium on Partial Evaluation and Program Manipulation, PEPM'09 - Savannah, GA, United States
Duration: 19 Jan 200920 Jan 2009

Publication series

NameProceedings of the 2009 ACM SIGPLAN Symposium on Partial Evaluation and Program Manipulation, PEPM'09

Conference

Conference2009 ACM SIGPLAN Symposium on Partial Evaluation and Program Manipulation, PEPM'09
Country/TerritoryUnited States
CitySavannah, GA
Period19/01/0920/01/09

Other keywords

  • Mechanical transformation of program proofs
  • Program analyses and optimizations
  • Program logics
  • Type systems

Fingerprint

Dive into the research topics of 'Bidirectional data-flow analyses, type-systematically'. Together they form a unique fingerprint.

Cite this