skip to main content
10.1145/1621607.1621617acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
research-article

A language and framework for invariant-driven transformations

Published: 04 October 2009 Publication History

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.

References

[1]
ANSI INCITS. Role-Based Access Control. ANSI INCITS 359-2004, American National Standards Institute, International Committee for Information Technology Standards, Feb. 2004.
[2]
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.
[3]
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.
[4]
Sean Callanan, Daniel J. Dean, and Erez Zadok. Extending GCC with modular GIMPLE optimizations. In Proceedings of the 2007 GCC Developers' Summit, July 2007.
[5]
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.
[6]
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.
[7]
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.
[8]
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.
[9]
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.
[10]
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.
[11]
Deepak Goyal. Transformational derivation of an improved alias analysis algorithm. Higher-Order and Symbolic Computation, 18(1-2):15--49, June 2005.
[12]
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.
[13]
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.
[14]
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.
[15]
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.
[16]
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.
[17]
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.
[18]
Robert Paige and Shaye Koenig. Finite differencing of computable expressions. ACM Transactions on Programming Languages and Systems, 4 (3):402--454, July 1982.
[19]
Helmut Partsch and Ralf Steinbruggen. Program transformation systems. ACM Computing Surveys, 15(3):199--236, Sept. 1983.
[20]
ProgramTransformationOrg. The Program Transformation Wiki. http://www.program-transformation.org.
[21]
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.
[22]
Douglas R. Smith. KIDS: A semiautomatic program development system. IEEE Transactions on Software Engineering, 16(9):1024--1043, 1990.
[23]
Douglas R. Smith. Requirement enforcement by transformation automata. In Proceedings of the 6th Workshop on Foundations of Aspect-Oriented Languages, pages 5--14, 2007.
[24]
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.
[25]
Eelco Visser. A survey of strategies in rule-based program transformation systems. Journal of Symbolic Computation, 40(1):831--873, 2005.

Cited By

View all
  • (2019)Algorithm Diversity for Resilient SystemsData and Applications Security and Privacy XXXIII10.1007/978-3-030-22479-0_19(359-378)Online publication date: 11-Jun-2019
  • (2018)Logical Clocks Are Not FairProceedings of the 2018 Workshop on Advanced Tools, Programming Languages, and PLatforms for Implementing and Evaluating Algorithms for Distributed systems10.1145/3231104.3231109(21-27)Online publication date: 23-Jul-2018
  • (2017)From Clarity to Efficiency for Distributed AlgorithmsACM Transactions on Programming Languages and Systems10.1145/299459539:3(1-41)Online publication date: 26-May-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
GPCE '09: Proceedings of the eighth international conference on Generative programming and component engineering
October 2009
194 pages
ISBN:9781605584942
DOI:10.1145/1621607
  • General Chair:
  • Jeremy Siek,
  • Program Chair:
  • Bernd Fischer
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 45, Issue 2
    GPCE '09
    February 2010
    182 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1837852
    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: 04 October 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. incremental maintenance
  2. invariants
  3. program optimization
  4. program transformation
  5. runtime invariant checking

Qualifiers

  • Research-article

Conference

GPCE'09
Sponsor:
GPCE'09: Generative Programming and Component Engineering
October 4 - 5, 2009
Colorado, Denver, USA

Acceptance Rates

GPCE '09 Paper Acceptance Rate 18 of 62 submissions, 29%;
Overall Acceptance Rate 56 of 180 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Algorithm Diversity for Resilient SystemsData and Applications Security and Privacy XXXIII10.1007/978-3-030-22479-0_19(359-378)Online publication date: 11-Jun-2019
  • (2018)Logical Clocks Are Not FairProceedings of the 2018 Workshop on Advanced Tools, Programming Languages, and PLatforms for Implementing and Evaluating Algorithms for Distributed systems10.1145/3231104.3231109(21-27)Online publication date: 23-Jul-2018
  • (2017)From Clarity to Efficiency for Distributed AlgorithmsACM Transactions on Programming Languages and Systems10.1145/299459539:3(1-41)Online publication date: 26-May-2017
  • (2016)Removing runtime overhead for optimized object queriesProceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation10.1145/2847538.2847545(73-84)Online publication date: 11-Jan-2016
  • (2012)From clarity to efficiency for distributed algorithmsACM SIGPLAN Notices10.1145/2398857.238464547:10(395-410)Online publication date: 19-Oct-2012
  • (2012)From clarity to efficiency for distributed algorithmsProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/2384616.2384645(395-410)Online publication date: 19-Oct-2012
  • (2012)Composing transformations for instrumentation and optimizationProceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation10.1145/2103746.2103759(53-62)Online publication date: 23-Jan-2012
  • (2012)High-Level executable specifications of distributed algorithmsProceedings of the 14th international conference on Stabilization, Safety, and Security of Distributed Systems10.1007/978-3-642-33536-5_11(95-110)Online publication date: 1-Oct-2012
  • (2011)An analytical model for multilevel performance prediction of Multi-FPGA systemsACM Transactions on Reconfigurable Technology and Systems10.1145/2000832.20008394:3(1-28)Online publication date: 22-Aug-2011
  • (2011)A technique for the effective and automatic reuse of classical compiler optimizations on multithreaded codeACM SIGPLAN Notices10.1145/1925844.192645746:1(623-636)Online publication date: 26-Jan-2011
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media