Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/964001.964004acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

Incremental execution of transformation specifications

Published: 01 January 2004 Publication History

Abstract

We aim to specify program transformations in a declarative style, and then to generate executable program transformers from such specifications. Many transformations require non-trivial program analysis to check their applicability, and it is prohibitively expensive to re-run such analyses after each transformation. It is desirable, therefore, that the analysis information is incrementally updated.We achieve this by drawing on two pieces of previous work: first, Bernhard Steffen's proposal to use model checking for certain analysis problems, and second, John Conway's theory of language factors. The first allows the neat specification of transformations, while the second opens the way for an incremental implementation. The two ideas are linked by using regular patterns instead of Steffen's modal logic: these patterns can be viewed as queries on the set of program paths.

References

[1]
U. Aßmann. OPTIMIX --- a tool for rewriting and optimizing programs. In H. Ehrig, G. Engels, H. J. Kreowski, and G. Rozenberg, editors, Handbook of Graph Grammars and Computing by Graph Transformation. Volume 2: Applications, Languages and Tools, pages 307--318. World Scientific, 1998.]]
[2]
R. C. Backhouse. Closure algorithms and the star-height problem of regular languages. PhD thesis, University of London, 1975.]]
[3]
R. C. Backhouse. Fusion on languages. In 10th European Symposium on Programming, ESOP 2001, volume 2028 of Lecture Notes in Computer Science, pages 107--121. Springer, 2001.]]
[4]
R. C. Backhouse and R. K. Lutz. Factor graphs, failure functions and bi-trees. In A. Salomaa and M. Steinby, editors, Fourth Colloquium on Automata, Languages and Programming, volume~52 of Lecture Notes in Computer Science, pages 61--75. Springer Verlag, July 1977.]]
[5]
M. Berndl, O. Lhoták, F. Qian, L. Hendren, and N. Umanee. Points-to analysis using BDDs. In ACM Conference on Programming Language Design and Implementation, pages 103--114, 2003.]]
[6]
R. E. Bryant. Graph-based algorithms for Boolean function manipulation. IEEE Transactions on Computers, 35(8):677--691, 1986.]]
[7]
J. A. Brzozowski. Derivatives of regular expressions. Journal of the ACM, 11(4):481--494, 1964.]]
[8]
M. D. Carroll and B. G. Ryder. Incremental data flow analysis via dominator and attribute updates. In ACM Symposium on Principles of Programming Languages, pages 274--284, 1988.]]
[9]
J. H. Conway. Regular Algebra and Finite Machines. Chapman and Hall, 1971.]]
[10]
M. Das, S. Lerner, and M. Seigle. ESP: Path-sensitive program verification in polynomial time. In ACM Conference on Programming Language Design and Implementation, pages 57--68, 2002.]]
[11]
O. de Moor, D. Lacey, and E. Van Wyk. Universal regular path queries. Higher-Order and Symbolic Computation, 16:15--35, 2003.]]
[12]
S. J. Drape, O. de Moor, and G. Sittampalam. Path logic programming. In ACM Conference on Principles and Practice of Declarative Programming, pages 133--144, 2002.]]
[13]
E. Duesterwald, R. Gupta, and M. L. Soffa. A practical framework for demand-driven interprocedural data flow analysis. ACM Transactions on Programming Languages and Systems, 19(6):992--1030, 1997.]]
[14]
S. Z. Guyer and C. Lin. An annotation language for optimizing software libraries. In Second conference on Domain-Specific Languages, pages 39--52. USENIX, 1999.]]
[15]
S. Hallem, B. Chelf, Y. Xie, and D. Engler. A system and language for building system-specific, static analyses. In ACM Conference on Programming Language Design and Implementation, pages 69--82, 2002.]]
[16]
D. E. Knuth. Semantics of context-free languages. Mathematical Systems Theory, 2(2):127--145, 1968. Corrections in 5(2):95-96, 1971.]]
[17]
D. Lacey. Specifying Compiler Optimisations in Temporal Logic. DPhil thesis, Oxford University Computing Laboratory, 2003.]]
[18]
D. Lacey and O. de Moor. Imperative program transformation by rewriting. In R. Wilhelm, editor, Compiler Construction, volume 2027 of Lecture Notes in Computer Science, pages 52--68. Springer Verlag, 2001.]]
[19]
D. Lacey, N. D. Jones, E. Van Wyk, and C. C. Frederiksen. Proving correctness of compiler optimizations by temporal logic. In ACM Symposium on Principles of Programming Languages, pages 283--294, 2002.]]
[20]
S. Lerner, D. Grove, and C. Chambers. Composing dataflow analyses and transformations. In ACM Symposium on Principles of Programming Languages, pages 270--282, 2002.]]
[21]
S. Lerner, T. Millstein, and C. Chambers. Automatically proving the correctness of compiler optimizations. In ACM Conference on Programming Language Design and Implementation, pages 220--231, 2003.]]
[22]
Y. A. Liu and S. D. Stoller. From Datalog rules to efficient programs with time and space guarantees. In ACM Conference on Principles and Practice of Declarative Programming, pages 172--183, 2003.]]
[23]
E. Meijer and J. Gough. A technical overview of the common language infrastructure. Available from URL: http://research.microsoft.com/~emeijer/Papers/CLR.pdf.]]
[24]
K. Olmos and E. Visser. Strategies for source-to-source constant propagation. Technical Report UU-CS-2002-042, Utrecht University, 2002. Available from URL: http://www.cs.uu.nl/research/techreps/UU-CS-2002-042.html.]]
[25]
R. Paige. Viewing a program transformation system at work. In Manuel Hermenegildo and Jaan Penjam, editors, Proceedings of the Sixth International Symposium on Programming Language Implementation and Logic Programming, pages 5--24. Springer Verlag, 1994.]]
[26]
L. Pollock and M. L. Soffa. An incremental version of iterative data flow analysis. IEEE Transactions on Software Engineering, 15(12):1537--1549, 1989.]]
[27]
T. W. Reps. Demand interprocedural program analysis using logic databases. In R. Ramakrishnan, editor, Applications of Logic Databases, pages 163--196. Kluwer Academic Publishers, 1994.]]
[28]
T. W. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In ACM Symposium on Principles of Programming Languages, pages 49--61, 1995.]]
[29]
T. Rus and E. Van Wyk. Using model checking in a parallelizing compiler. Parallel processing letters, 8(4):459--471, 1998.]]
[30]
B. G. Ryder and M. C. Paull. Incremental data flow analysis algorithms. ACM Transactions on Programming Languages and Systems, 10(1):1--50, 1988.]]
[31]
O. V. Sokolsky and S. A. Smolka. Incremental model checking in the modal mu-calculus. In D. L. Dill, editor, Proceedings of the 6th International Conference on Computer-aided verification, volume 818 of Lecture Notes in Computer Science, pages 351--363. Springer Verlag, 1994.]]
[32]
B. Steffen. Data flow analysis as model checking. In Proceedings of Theoretical Aspects of Computer Science, volume 526 of Lecture Notes in Computer Science, pages 346--364. Springer Verlag, 1991.]]
[33]
R. Vallée-Rai, L. Hendren, V. Sundaresan, P. Lam, E. Gagnon, and P. Co. Soot --- a Java optimization framework. In Proceedings of CASCON 1999, pages 125--135, 1999.]]
[34]
T. L. Veldhuizen and D. Gannon. Active libraries: Rethinking the roles of compilers and libraries. In Proceedings of the SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing. SIAM Press, 1998.]]
[35]
E. Visser. Meta-programming with concrete object syntax. In D. Batory, C. Consel, and W. Taha, editors, Generative Programming and Component Engineering, volume 2487 of Lecture Notes in Computer Science, pages 299--315. Springer-Verlag, 2002.]]
[36]
E. Visser, Z. Benaissa, and A. Tolmach. Building program optimizers with rewriting strategies. In ACM Conference on Functional Programming, pages 13--26, 1998.]]
[37]
M. N. Wegman and F. K. Zadeck. Constant propagation with conditional branches. ACM Transactions on Programming Languages and Systems, 13(2):181--210, 1991.]]
[38]
D. Whitfield and M. L. Soffa. An approach for exploring code-improving transformations. ACM Transactions on Programming Languages and Systems, 19(6):1053--1084, 1997.]]

Cited By

View all
  • (2012)A framework for the checking and refactoring of crosscutting conceptsACM Transactions on Software Engineering and Methodology10.1145/2211616.221161821:3(1-47)Online publication date: 3-Jul-2012
  • (2011)Parameterized Program Equivalence CheckingHigh-Level Verification10.1007/978-1-4419-9359-5_8(123-145)Online publication date: 2-Apr-2011
  • (2009)Enhancing source-level programming tools with an awareness of transparent program transformationsProceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications10.1145/1640089.1640112(301-320)Online publication date: 26-Oct-2009
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2004
364 pages
ISBN:158113729X
DOI:10.1145/964001
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 39, Issue 1
    POPL '04
    January 2004
    352 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/982962
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. constraints
  2. incremental algorithm
  3. language factors
  4. logic programming
  5. program analysis
  6. program transformation
  7. residuation operators
  8. transformation specification

Qualifiers

  • Article

Conference

POPL04

Acceptance Rates

POPL '04 Paper Acceptance Rate 29 of 176 submissions, 16%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)1
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2012)A framework for the checking and refactoring of crosscutting conceptsACM Transactions on Software Engineering and Methodology10.1145/2211616.221161821:3(1-47)Online publication date: 3-Jul-2012
  • (2011)Parameterized Program Equivalence CheckingHigh-Level Verification10.1007/978-1-4419-9359-5_8(123-145)Online publication date: 2-Apr-2011
  • (2009)Enhancing source-level programming tools with an awareness of transparent program transformationsProceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications10.1145/1640089.1640112(301-320)Online publication date: 26-Oct-2009
  • (2009)Enhancing source-level programming tools with an awareness of transparent program transformationsACM SIGPLAN Notices10.1145/1639949.164011244:10(301-320)Online publication date: 25-Oct-2009
  • (2009)Proving optimizations correct using parameterized program equivalenceACM SIGPLAN Notices10.1145/1543135.154251344:6(327-337)Online publication date: 15-Jun-2009
  • (2009)Proving optimizations correct using parameterized program equivalenceProceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1542476.1542513(327-337)Online publication date: 15-Jun-2009
  • (2009)A MuDDy Experience---ML Bindings to a BDD LibraryProceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages10.1007/978-3-642-03034-5_3(45-57)Online publication date: 2-Jul-2009
  • (2008)Evaluating the benefits of context-sensitive points-to analysis using a BDD-based implementationACM Transactions on Software Engineering and Methodology10.1145/1391984.139198718:1(1-53)Online publication date: 7-Oct-2008
  • (2008)Solving Linear Equations in *-continuous Action LatticesRelations and Kleene Algebra in Computer Science10.1007/978-3-540-78913-0_22(289-303)Online publication date: 2008
  • (2008)Universal Regular Path QueriesAutomatic Program Development10.1007/978-1-4020-6585-9_11(114-129)Online publication date: 2008
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media