ACM Home Page
Please provide us with feedback. Feedback
Bidirectional data-flow analyses, type-systematically
Full text PdfPdf (545 KB)
Source
ACM/SIGPLAN Workshop Partial Evaluation and Semantics-Based Program Manipulation archive
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation table of contents
Savannah, GA, USA
SESSION: Types table of contents
Pages 141-150  
Year of Publication: 2009
ISBN:978-1-60558-327-3
Authors
Maria João Frade  Universidade do Minho, Braga, Portugal
Ando Saabas  Institute of Cybernetics at Tallinn University of Technology, Tallinn, Estonia
Tarmo Uustalu  Institute of Cybernetics at Tallinn University of Technology, Tallinn, Estonia
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 61,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1480945.1480965
What is a DOI?

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
F. Bannwart, P. Müller. A program logic for bytecode. In Proc. of 1st Wksh. on Bytecode Semantics, Verification, Analysis and Transformation, Bytecode 2005, v. 141(1) of Electron. Notes in Theor. Comput. Sci., pp. 255--273, Elsevier, 2005
 
2
G. Barthe, B. Grégoire, C. Kunz, T. Rezk. Certificate translation for optimizing compilers. In K. Yi, ed., Proc. of 13th Int. Symp. on Static Analysis, SAS 2006, v. 4134 of Lect. Notes in Comput. Sci., pp. 301--317, Springer, 2006.
 
3
G. Barthe, C. Kunz. Certificate translation in abstract interpretation. In S. Drossopoulou, ed., Proc. of 17th Europ. Symp. on Programming, ESOP 2008, v. 4960 of Lect. Notes in Comput. Sci., pp. 368--382, Springer, 2008.
4
 
5
6
7
 
8
U. P. Khedker, D. M. Dhamdhere, A. Mycroft. Bidirectional data flow analysis for type inferencing. Comput. Lang., Syst. and Struct., 29(1-2):15--44, 2003.
 
9
10
11
 
12
13
 
14
 
15
A. Saabas. Logics for low-level code and proof-preserving program transformations (PhD thesis), Thesis on Informatics and System Engineering C143. Tallinn Univ. of Techn., 2008.
 
16
A. Saabas, T. Uustalu. Program and proof optimizations with type systems. J. of Logic and Algebraic Program., 77(1-2):131--154, 2008.
17
 
18
 
19
A. Tenenbaum. Type determination for very high level languages. Report NSO-3, Courant Inst. of Math. Sci., New York Univ., New York, 1974.
 
20
T. Van Drunen, A. L. Hosking, J. Palsberg. Reducing loads and stores in stack architectures, manuscript, 2000.

Collaborative Colleagues:
Maria João Frade: colleagues
Ando Saabas: colleagues
Tarmo Uustalu: colleagues