Abstract
This paper describes a language and framework that allow coordinated transformations driven by invariants to be specified declaratively, as invariant rules, and applied automatically. The framework supports incremental maintenance of invariants for program design and optimization, as well as general transformations for instrumentation, refactoring, and other purposes. This paper also describes our implementations for transforming Python and C programs and experiments with successful applications of the systems in generating efficient implementations from clear and modular specifications, in instrumenting programs for runtime verification, profiling, and debugging, and in code refactoring.
- ANSI INCITS. Role-Based Access Control. ANSI INCITS 359-2004, American National Standards Institute, International Committee for Information Technology Standards, Feb. 2004.Google Scholar
- Friedrich Ludwig Bauer, Bernhard Moller, Helmut Partsch, and Peter Pepper. Formal program construction by transformations-Computer-aided, intuition-guided programming. IEEE Transactions on Software Engineering, 15(2):165--180, Feb. 1989. Google Scholar
Digital Library
- Martin Bravenboer, Karl Trygve Kalleberg, Rob Vermaas, and Eelco Visser. Stratego/xt 0.17. a language and toolset for program transformation. Science of Computer Programming, 72(1-2):52--70, 2008. Google Scholar
Digital Library
- Sean Callanan, Daniel J. Dean, and Erez Zadok. Extending GCC with modular GIMPLE optimizations. In Proceedings of the 2007 GCC Developers' Summit, July 2007.Google Scholar
- Jong-Deok Choi, Michael Burke, and Paul Carini. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In Conference Record of the 20th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 232--245, 1993. Google Scholar
Digital Library
- Roger F. Crew. ASTLOG: A language for examining abstract syntax trees. In Proceedings of the Conference on Domain-Specific Languages, pages 229--242, Oct. 1997. Google Scholar
Digital Library
- Simon F. Goldsmith, Robert O'Callahan, and Alex Aiken. Relational queries over program traces. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 385--402, 2005. Google Scholar
Digital Library
- Michael Gorbovitski, Tom Rothamel, Yanhong A. Liu, and Scott D. Stoller. Efficient runtime invariant checking: A framework and case study. In Proceedings of the 6th Sixth International Workshop on Dynamic Analysis, pages 43--49, July 2008a. Google Scholar
Digital Library
- Michael Gorbovitski, K. Tuncay Tekle, Tom Rothamel, Scott D. Stoller, and Yanhong A. Liu. Analysis and transformations for efficient querybased debugging. In Proceedings of the 8th IEEE International Working Conference on Source Code Analysis and Manipulation, pages 174--183, Sept. 2008b.Google Scholar
- Michael Gorbovitski, Tuncay Tekle, and Yanhong A. Liu. Assessing alias analysis for object-oriented and dynamic languages. Technical Report DAR 09-44, Computer Science Department, SUNY Stony Brook, 2009.Google Scholar
- Deepak Goyal. Transformational derivation of an improved alias analysis algorithm. Higher-Order and Symbolic Computation, 18(1-2):15--49, June 2005. Google Scholar
Digital Library
- Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of aspectj. In Proceedings of the 15th European Conference on Object-Oriented Programming, pages 327--353, June 2001. Google Scholar
Digital Library
- Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In Proceedings of the 11th Europeen Conference on Object-Oriented Programming, pages 220--242, 1997.Google Scholar
Cross Ref
- Yanhong A. Liu, Scott D. Stoller, Michael Gorbovitski, Tom Rothamel, and Yanni E. Liu. Incrementalization across object abstraction. In Proceedings of the 20th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 473--486, Oct. 2005. Google Scholar
Digital Library
- Yanhong A. Liu, Chen Wang, Michael Gorbovitski, Tom Rothamel, Yongxi Cheng, Yingchao Zhao, and Jing Zhang. Core role-based access control: Efficient implementations by transformations. In Proceedings of the ACM SIGPLAN 2006 Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 112--120, Jan. 2006. Google Scholar
Digital Library
- Michael Martin, Benjamin Livshits, and Monica S. Lam. Finding application errors and security flaws using PQL: a program query language. In Proceedings of the 20th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 365--383, Oct. 2005. Google Scholar
Digital Library
- Robert Paige. Viewing a program transformation system at work. In Proceedings of Joint 6th International Conference on Programming Languages: Implementations, Logics and Programs and 4th International Conference on Algebraic and Logic Programming, 1994. Google Scholar
Digital Library
- Robert Paige and Shaye Koenig. Finite differencing of computable expressions. ACM Transactions on Programming Languages and Systems, 4 (3):402--454, July 1982. Google Scholar
Digital Library
- Helmut Partsch and Ralf Steinbruggen. Program transformation systems. ACM Computing Surveys, 15(3):199--236, Sept. 1983. Google Scholar
Digital Library
- ProgramTransformationOrg. The Program Transformation Wiki. http://www.program-transformation.org.Google Scholar
- Tom Rothamel and Yanhong A. Liu. Generating incremental implementations of object-set queries. In Proceedings of the 7th International Conference on Generative Programming and Component Engineering, pages 55--66, Oct. 2008. Google Scholar
Digital Library
- Douglas R. Smith. KIDS: A semiautomatic program development system. IEEE Transactions on Software Engineering, 16(9):1024--1043, 1990. Google Scholar
Digital Library
- Douglas R. Smith. Requirement enforcement by transformation automata. In Proceedings of the 6th Workshop on Foundations of Aspect-Oriented Languages, pages 5--14, 2007. Google Scholar
Digital Library
- Douglas R. Smith. Aspects as invariants. In O. Danvy, H. Mairson, F Henglein, and A. Pettorossi, editors, Automatic Program Development: A Tribute to Robert Paige, pages 270--286. Springer, 2008.Google Scholar
- Eelco Visser. A survey of strategies in rule-based program transformation systems. Journal of Symbolic Computation, 40(1):831--873, 2005. Google Scholar
Digital Library
Index Terms
A language and framework for invariant-driven transformations
Recommendations
A language and framework for invariant-driven transformations
GPCE '09: Proceedings of the eighth international conference on Generative programming and component engineeringThis paper describes a language and framework that allow coordinated transformations driven by invariants to be specified declaratively, as invariant rules, and applied automatically. The framework supports incremental maintenance of invariants for ...
Program optimizations and transformations in calculation form
GTTSE'05: Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software EngineeringThe world of program optimization and transformation takes on a new fascination when viewed through the lens of program calculation. Unlike the traditional fold/unfold approach to program transformation on arbitrary programs, the calculational approach ...







Comments