| Bidirectional data-flow analyses, type-systematically |
| Full text |
Pdf
(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
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 |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 10, Downloads (12 Months): 61, Citation Count: 0
|
|
|
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
|
Sorin Lerner , Todd Millstein , Erika Rice , Craig Chambers, Automated soundness proofs for dataflow analyses and transformations via local rules, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.364-377, January 12-14, 2005, Long Beach, California, USA
|
| |
14
|
Hanne Riis Nielson , Flemming Nielson, Flow logic: a multi-paradigmatic approach to static analysis, The essence of computation: complexity, analysis, transformation, Springer-Verlag New York, Inc., New York, NY, 2002
|
| |
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.
|
|