skip to main content
10.1145/1595808.1595826acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Controlled evolution of adaptive programs

Published: 24 August 2009 Publication History

Abstract

Adaptive programming (AP) is a programming paradigm for expressing structure-shy computations over semi-structured data graphs. Structure-shyness means that adaptive programs hard code a minimal set of assumptions about the structure of their input. Because of this, adaptive programs are more susceptible to unsafe evolutions; evolutions that jeopardize the correctness of adaptive programs yet go uncaught. In this paper we study the evolution of adaptive programs and present two complementary approaches for controlling their unsafe evolution: a language for expressing application-specific constraints on the runtime behavior of adaptive programs, and a stricter notion of compatibility between the parts of an adaptive program, that does not sacrifice the expressiveness of the AP paradigm.

References

[1]
DemeterF. http://www.ccs.neu.edu/home/chadwick/demeterf/.
[2]
The SAX Project. http://www.saxproject.org/.
[3]
B. Chadwick and K. Lieberherr. Functional Adaptive Programming. Technical Report NU-CCIS-08-75, CCIS/PRL, Northeastern University, Boston, October 2008.
[4]
B. Chadwick and K. Lieberherr. A type system for functional traversal-based aspects. In FOAL '09: Proceedings of the 2009 workshop on Foundations of aspect-oriented languages, pages 1--6, New York, NY, USA, 2009. ACM.
[5]
A. Cunha and J. Visser. Transformation of structure-shy programs: applied to xpath queries and strategic functions. In PEPM '07: Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, pages 11--20, New York, NY, USA, 2007. ACM.
[6]
J. Gibbons. Datatype-generic programming. In R. Backhouse, J. Gibbons, R. Hinze, and J. Jeuring, editors, Spring School on Datatype-Generic Programming, volume 4719 of Lecture Notes in Computer Science. Springer-Verlag, 2007.
[7]
J. Jeuring and P. Jansson. Polytypic programming. In 2nd Int. School on Advanced Functional Programming, pages 68--114. Springer-Verlag, 1996.
[8]
A. Kellens, K. Mens, J. Brichau, and K. Gybels. Managing the evolution of aspect-oriented software with model-based pointcuts. In D. Thomas, editor, ECOOP, volume 4067 of Lecture Notes in Computer Science, pages 501--525. Springer, 2006.
[9]
R. Khatchadourian, P. Greenwood, A. Rashid, and G. Xu. Pointcut rejuvenation: Recovering pointcut expressions in evolving aspect-oriented software. Technical Report COMP-001-2008, Revised March 2009, May 2009, Lancaster University, Lancaster, UK, Aug. 2008.
[10]
R. Lämmel and S. P. Jones. Scrap your boilerplate: A practical design pattern for generic programming. In Proc. of the ACM SIGPLAN Workshop on Types in Language Design and Implementation TLDI 2003, pages 26--37. ACM Press, 2003.
[11]
R. Lämmel, S. Thompson, and M. Kaiser. Programming errors in traversal programs over structured data. ENTCS, 2008. To appear in Proceedings of LDTA 2008.
[12]
R. Lämmel, E. Visser, and J. Visser. Strategic programming meets adaptive programming. In AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development, pages 168--177, New York, NY, USA, 2003. ACM.
[13]
K. Lieberherr, B. Patt-Shamir, and D. Orleans. Traversals of object structures: Specification and efficient implementation. ACM Trans. Program. Lang. Syst., 26(2):370--412, 2004.
[14]
K. J. Lieberherr. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston, 1996. 616 pages, web book at www.ccs.neu.edu/research/demeter.
[15]
J. Ovlinger and M. Wand. A language for specifying recursive traversals of object structures. SIGPLAN Not., 34(10):70--81, 1999.
[16]
T. Skotiniotis, J. Palm, and K. J. Lieberherr. Demeter interfaces: Adaptive programming without surprises. In European Conference on Object-Oriented Programming, pages 477--500, Nantes, France, 2006. Springer Verlag Lecture Notes.
[17]
M. Störzer and C. Koppen. Pcdiff: Attacking the fragile pointcut problem, abstract. In European Interactive Workshop on Aspects in Software, Berlin, Germany, September 2004.
[18]
Z. Yang and T. Zhao. Improve pointcut definitions with program views. In SPLAT '07: Proceedings of the 5th workshop on Software engineering properties of languages and aspect technologies, page 9, New York, NY, USA, 2007. ACM.

Cited By

View all
  • (2015)Reusing metadata across components, applications, and languagesScience of Computer Programming10.1016/j.scico.2014.09.00298:P4(617-644)Online publication date: 1-Feb-2015
  • (2010)Reusable enterprise metadata with pattern-based structural expressionsProceedings of the 9th International Conference on Aspect-Oriented Software Development10.1145/1739230.1739234(25-36)Online publication date: 15-Mar-2010

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
IWPSE-Evol '09: Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
August 2009
168 pages
ISBN:9781605586786
DOI:10.1145/1595808
  • General Chair:
  • Tom Mens,
  • Program Chairs:
  • Kim Mens,
  • Michel Wermelinger
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: 24 August 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. adaptive programming
  2. assertion
  3. evolution
  4. generic programming

Qualifiers

  • Research-article

Conference

ESEC/FSE09
Sponsor:
ESEC/FSE09: Joint 12th European Software Engineering Conference
August 24 - 25, 2009
Amsterdam, The Netherlands

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2015)Reusing metadata across components, applications, and languagesScience of Computer Programming10.1016/j.scico.2014.09.00298:P4(617-644)Online publication date: 1-Feb-2015
  • (2010)Reusable enterprise metadata with pattern-based structural expressionsProceedings of the 9th International Conference on Aspect-Oriented Software Development10.1145/1739230.1739234(25-36)Online publication date: 15-Mar-2010

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