Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1415472.1415490acmconferencesArticle/Chapter ViewAbstractPublication PagesplopConference Proceedingsconference-collections
research-article

A pattern language for extensible program representation

Published: 21 October 2006 Publication History

Abstract

For the last 15 years, implementors of multiple view programming environments have sought a single code model that would form a suitable basis for all of the program analyses and tools that might be applied to the code. They have been unsuccessful. The consequences are a tendency to build monolithic, single-purpose tools, each of which implements its own specialized analyses and optimized representation. This restricts the availability of the analyses, and also limits the reusability of the representation by other tools. Unintegrated tools also produce inconsistent views, which reduce the value of multiple views.
This paper describes a set of architectural patterns that allow a single, minimal representation of program code to be extended as required to support new tools and program analyses, while still maintaining a simple and uniform interface to program properties. The patterns address efficiency, correctness and the integration of multiple analyses and tools in a modular fashion.

References

[1]
Ken Auer and Kent Beck. Lazy optimization: patterns for efficient smalltalk programming. In Pattern languages of program design 2, pages 19--42. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1996.
[2]
Kent Beck. Simple Smalltalk testing: With patterns. http://www.xprogramming.com/testfram.htm.
[3]
Kent Beck. Smalltalk Best Practice Patterns. Prentice-Hall, 1997.
[4]
D. W. Binkley and K. B. Gallagher. Program slicing. In M. Zelkowitz, editor, Advances of Computing, volume 43, pages 1--50. Academic Press, 1996.
[5]
Andrew P. Black and Mark P. Jones. The case for multiple views. In Workshop on Directions in Software Engineering Environments, ICSE 2004, pages 96--103, May 2004.
[6]
Andrew P. Black and Nathanael Schärli. Traits: Tools and methodology. In Proceedings ICSE 2004, pages 676--686, May 2004.
[7]
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. Pattern-Oriented Software Architecture -- A System of Patterns. John Wiley & Sons, Inc., New York, NY, USA, 1996.
[8]
Curtis Clifton, Gary T. Leavens, Craig Chambers, and Todd Millstein. MultiJava: Modular open classes and symmetric multiple dispatch for Java. In OOPSLA 2000 Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 130--145, 2000.
[9]
Stéphane Ducasse and Michele Lanza. Towards a methodology for the understanding of object-oriented systems. Technique et science informatiques, 20(4):539--566, 2001.
[10]
Stéphane Ducasse, Oscar Nierstrasz, Nathanael Schärli, Roel Wuyts, and Andrew Black. Traits: A mechanism for fine-grained reuse. ACM Transactions on Programming Languages and Systems, 28(2):331--388, March 2006.
[11]
Eclipse Foundation. JavaDoc page for Interface ITypeHierarchy. http://help.eclipse.org/help32/topic/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/ITypeHierarchy.html.
[12]
Richard P. Gabriel. Lisp: Good news, bad news, how to win big. In First European Conference on the Practical Applications of Lisp, Cambridge University, Cambridge, England, 1990. (keynote address).
[13]
Richard P. Gabriel, Nickieben Bourbaki, Matthieu Devin, Patrick Dussud, David N. Gray, and Harlan B. Sexton. Foundations for a C++ programming environment. In Proceeding of C++ at Work, September 1990.
[14]
Erich Gamma. Extension object. In Pattern languages of program design 3, pages 79--88. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1997.
[15]
Erich Gamma and Kent Beck. Contributing to Eclipse. Addison Wesley, 2003.
[16]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Reading, Mass., 1995.
[17]
Erich Gamma, Richard Helm, John Vlissides, and Ralph E. Johnson. Design patterns: Abstraction and reuse of object-oriented design. In Oscar Nierstrasz, editor, Proceedings ECOOP '93, volume 707 of LNCS, pages 406--431, Kaiserslautern, Germany, July 1993. Springer-Verlag.
[18]
David Garlan. Views for tools in integrated environments. In Proceedings of an International Workshop on Advanced Programming Environments, pages 314--343, London, UK, 1986. Springer-Verlag.
[19]
David Barnard Garlan. Views for Tools in Integrated Environments. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, January 1988.
[20]
Adele Goldberg and David Robson. Smalltalk 80: the Language and its Implementation. Addison Wesley, Reading, Mass., May 1983.
[21]
Jon Hanna. The RAII programming idiom. http://www.hackcraft.net/raii/, accessed January 2007.
[22]
Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace, and Alan Kay. Back to the future: The story of Squeak, A practical Smalltalk written in itself. In Proceedings OOPSLA '97, ACM SIGPLAN Notices, pages 318--326. ACM Press, November 1997.
[23]
Ron Jeffries, Ann Anderson, and Chet Hendrickson. Extreme Programming Installed. Addison Wesley, 2001.
[24]
Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of AspectJ. In Proceeding ECOOP 2001, number 2072 in LNCS, pages 327--353. Springer Verlag, 2001.
[25]
Michael Kircher and Prashant Jain. Pattern-Oriented Software Architecture Volume 3 - Patterns for Resource Management. John Wiley and Sons, 2004.
[26]
Chris Marlin. Multiple views based on unparsing canonical representations--the MultiView architecture. In Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96), pages 222--226, New York, NY, USA, 1996. ACM Press.
[27]
Scott Meyers. Difficulties in integrating multiview development systems. IEEE Softw., 8(1):49--57, 1991.
[28]
Scott Meyers. More Effective C++: 35 New Ways to Improve Your Programs and Designs. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1995.
[29]
Scott Meyers and Steven P. Reiss. A system for multiparadigm development of software systems. In IWSSD '91: Proceedings of the 6th international workshop on Software specification and design, pages 202--209, Los Alamitos, CA, USA, 1991. IEEE Computer Society Press.
[30]
Scott Meyers and Steven P. Reiss. An empirical study of multiple-view software development. In SDE 5: Proceedings of the fifth ACM SIGSOFT symposium on Software development environments, pages 47--57, New York, NY, USA, 1992. ACM Press.
[31]
Emerson Murphy-Hill. Improving refactoring with alternate program views. Technical Report TR-06-05, Portland State University, May 2006. http://multiview.cs.pdx.edu/publications/rpe.pdf.
[32]
Robert B. Murray. C++ strategies and tactics. Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, USA, 1993.
[33]
Object Technology International, Inc. Eclipse platform technical overview, 2003. White paper.
[34]
Dirk Riehle and Heinz Züllighoven. A pattern language for tool construction and integration based on the tools and materials metaphor. In Pattern languages of program design 1, pages 9--42. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 1995.
[35]
Linda Rising, editor. Design Patterns in Communications Software. Cambridge University Press, 2001.
[36]
Nathanael Schärli. Traits -- Composing Classes from Behavioral Building Blocks. PhD thesis, University of Berne, February 2005.
[37]
Nathanael Schärli and Andrew P. Black. A browser for incremental programming. Technical Report CSE-03-008, OGI School of Science & Engineering, Beaverton, Oregon, USA, April 2003.
[38]
Nathanael Schärli and Andrew P. Black. A browser for incremental programming. Computer Languages, Systems and Structures, 30:79--95, 2004.
[39]
Nathanael Schärli, Stéphane Ducasse, Oscar Nierstrasz, and Andrew Black. Traits: Composable units of behavior. In Proceedings ECOOP 2003 (European Conference on Object-Oriented Programming), volume 2743 of LNCS, pages 248--274. Springer Verlag, July 2003.
[40]
Tim Teitelbaum and Thomas Reps. The Cornell program synthesizer: a syntax-directed programming environment. Commun. ACM, 24(9):563--573, 1981.
[41]
Daniel Vainsencher. Mudpie: layers in the ball of mud. Computer Languages, Systems & Structures, 30(1--2):5--19, 2004.
[42]
Michael L. Van De Vanter. The documentary structure of source code. Information and Software Technology, 44(13):767--782, October 2002.
[43]
Roel Wuyts. Star Browser. http://homepages.ulb.ac.be/~rowuyts/StarBrowser/index.html, accessed May 2007.

Cited By

View all
  • (2008)Object-Oriented ReengineeringObject-Oriented Technology. ECOOP 2007 Workshop Reader10.1007/978-3-540-78195-0_14(142-153)Online publication date: 2008
  • (2007)Object-oriented reengineeringProceedings of the 2007 conference on Object-oriented technology10.5555/1787553.1787571(142-153)Online publication date: 30-Jul-2007

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLoP '06: Proceedings of the 2006 conference on Pattern languages of programs
October 2006
397 pages
ISBN:9781605583723
DOI:10.1145/1415472
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: 21 October 2006

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Funding Sources

Conference

PLOP06
Sponsor:
PLOP06: Pattern Languages of Programs 2006
October 21 - 23, 2006
Oregon, Portland, USA

Acceptance Rates

Overall Acceptance Rate 28 of 36 submissions, 78%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2008)Object-Oriented ReengineeringObject-Oriented Technology. ECOOP 2007 Workshop Reader10.1007/978-3-540-78195-0_14(142-153)Online publication date: 2008
  • (2007)Object-oriented reengineeringProceedings of the 2007 conference on Object-oriented technology10.5555/1787553.1787571(142-153)Online publication date: 30-Jul-2007

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