Example similarity map    Similar Patents and Articles Toggle Patent Map

Contact The DL Team Contact Us | Switch to tabbed view

top of pageABSTRACT

Developing complex software requires that functions be implemented over a variety of recursively defined data structures. While the design (and modeling) of structures is itself difficult, complex data can require even more complex functions. In this paper, we introduce a declarative form of traversal-based generic programming that modularizes functions over a structure using function-objects. Our approach is supported by a library and set of generative tools, collectively called DemeterF, which are used to implement modular, adaptive functions. While our traversals support high-level abstractions resulting in modular and extensible functions, we retain genericity, flexibility and performance through traversal generation and inlining.

top of pageAUTHORS



Author image not provided  Bryan Chadwick

No contact information provided yet.

Bibliometrics: publication history
Publication years2009-2010
Publication count5
Citation Count6
Available for download3
Downloads (6 Weeks)0
Downloads (12 Months)3
Downloads (cumulative)388
Average downloads per article129.33
Average citations per article1.20
View colleagues of Bryan Chadwick


Author image not provided  Karl Lieberherr

No contact information provided yet.

Bibliometrics: publication history
Publication years1979-2010
Publication count66
Citation Count782
Available for download32
Downloads (6 Weeks)12
Downloads (12 Months)167
Downloads (cumulative)27,546
Average downloads per article860.81
Average citations per article11.85
View colleagues of Karl Lieberherr

top of pageREFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
The AspectJ Project. Website. http://www.eclipse.org/aspectj/.
 
2
Independently Extensible Solutions to the Expression Problem. ACM, 2005.
 
3
ANother Tool for Language Recognition. Website, 2008. http://www.antlr.org/.
 
4
JAXB reference implementation. Website, 2008. https://jaxb.dev.java.net/.
 
5
The Java Compiler Compiler#8482;. Website, 2008. https://javacc.dev.java.net/.
 
6
XML Beans overview. Website, 2008. http://xmlbeans.apache.org/overview.html.
 
7
Ruby Programming Language. Website, 2009. http://www.ruby-lang.org/en/.
 
8
 
9
B. Chadwick. Algorithms in DemeterF. http://www.ccs.neu.edu/home/chadwick/files/algo.pdf, May 2009.
 
10
B. Chadwick. AOSD-10 example code. Website, 2009. http://www.ccs.neu.edu/home/chadwick/aosd10/.
 
11
B. Chadwick and K. Lieberherr. A Model of Functional Traversal-Based Generic Programming. Submitted to Higher-Order and Symbolic Computation, Festscrift for Mitch Wand http://www.ccs.neu.edu/home/chadwick/files/mitchfest.pdf.
12
 
13
14
15
 
16
 
17
 
18
R. Hinze. Efficient generalized folds. Technical Report IAI-TR-99-8, Institut für Informatik III, Universität Bonn, jun 1999.
19
 
20
S. P. Jones. Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, May 2003.
 
21
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. pages 220--242. Springer-Verlag, 1997.
 
22
 
23
R. Lämmel and S. Peyton Jones. Scrap your boilerplate: a practical design pattern for generic programming. volume 38, pages 26--37. ACM Press, March 2003. TLDI '03.
 
24
R. Lämmel and S. Peyton Jones. Scrap your boilerplate with class: extensible generic functions. In ICFP '05, pages 204--215. ACM Press, Sept. 2005.
 
25
 
26
27
 
28
A. Loeh, J. J. (editors); Dave Clarke, R. Hinze, A. Rodriguez, and J. de Wit. Generic haskell user's guide. Technical Report UU-CS-2005-004, Department of Information and Computing Sciences, Utrecht University, 2005.
 
29
H. Masuhara and G. Kiczales. Modeling crosscutting in aspect-oriented mechanisms. In ECOOP '03, pages 2--28, 2003.
 
30
 
31
 
32
33
34
 
35
D. Orleans. Programming Language Support for Separation of Concerns. PhD thesis, Northeastern University, June 2005.
 
36
 
37
38
 
39
The Demeter Group. The DemeterJ website. http://www.ccs.neu.edu/research/demeter, 2007.
 
40
M. Torgersen. The expression problem revisited. In ECOOP '04, pages 123--143, 2004.
 
41
T. VanDrunen and J. Palsberg. Visitor-oriented programming. FOOL '04, January 2004.

top of pageCITED BY

top of pageINDEX TERMS

The ACM Computing Classification System (CCS rev.2012)

Note: Larger/Darker text within each node indicates a higher relevance of the materials to the taxonomic classification.

top of pagePUBLICATION

Title AOSD '10 Proceedings of the 9th International Conference on Aspect-Oriented Software Development table of contents
General Chairs Jean-Marc Jezequel Université of Rennes 1 and INRIA, France
Program Chairs Mario Sudholt Ecole des mines and INRIA, France
Pages 61-72
Publication Date2010-03-15 (yyyy-mm-dd)
Sponsors AOSA Aspect-Oriented Software Association
In-Cooperations SIGPLAN ACM Special Interest Group on Programming Languages
SIGSOFT ACM Special Interest Group on Software Engineering
PublisherACM New York, NY, USA ©2010
ISBN: 978-1-60558-958-9 doi>10.1145/1739230.1739238
Conference MODULARITYModularity (formerly known as Aspect-oriented Software Development - AOSD) MODULARITY logo
Paper Acceptance Rate 18 of 62 submissions, 29%
Overall Acceptance Rate 178 of 718 submissions, 25%
Year Submitted Accepted Rate
AOSD '06 96 23 24%
AOSD '07 107 19 18%
AOSD '08 79 17 22%
AOSD '09 86 19 22%
AOSD '10 62 18 29%
AOSD '11 95 23 24%
AOSD '12 79 20 25%
AOSD '13 54 18 33%
MODULARITY '14 60 21 35%
Overall 718 178 25%

top of pageREVIEWS


Reviews are not available for this item
Computing Reviews logo

top of pageCOMMENTS

Be the first to comment To Post a comment please sign in or create a free Web account

top of pageTable of Contents

Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Table of Contents
SESSION: Applications 1
Parallel dynamic analysis on multicores with aspect-oriented programming
Danilo Ansaloni, Walter Binder, Alex Villazón, Philippe Moret
Pages: 1-12
doi>10.1145/1739230.1739232
Full text: PDFPDF

In most aspects, advice are synchronously executed by application threads, which may cause high overhead if advice execution is frequent or computationally expensive. When synchronous advice execution is not a necessity, asynchronous advice execution ...
expand
AspectScript: expressive aspects for the web
Rodolfo Toledo, Paul Leger, Éric Tanter
Pages: 13-24
doi>10.1145/1739230.1739233
Full text: PDFPDF

JavaScript is widely used to build increasingly complex Web applications. Unsurprisingly, these applications need to address cross-cutting concerns. Therefore support for aspect-oriented programming is crucial to preserve proper modularity. However, ...
expand
Reusable enterprise metadata with pattern-based structural expressions
Eli Tilevich, Myoungkyu Song
Pages: 25-36
doi>10.1145/1739230.1739234
Full text: PDFPDF

An essential part of modern enterprise software development is metadata. Mainstream metadata formats, including XML deployment descriptors and Java 5 annotations, suffer from a number of limitations that complicate the development and maintenance of ...
expand
SESSION: Languages and implementation
Execution levels for aspect-oriented programming
Éric Tanter
Pages: 37-48
doi>10.1145/1739230.1739236
Full text: PDFPDF

In aspect-oriented programming languages, advice evaluation is usually considered as part of the base program evaluation. This is also the case for certain pointcuts, such as if pointcuts in AspectJ, or simply all pointcuts in higher-order aspect languages ...
expand
An architecture for composing embedded domain-specific languages
Tom Dinkelaker, Michael Eichberg, Mira Mezini
Pages: 49-60
doi>10.1145/1739230.1739237
Full text: PDFPDF

Embedded domain-specific languages (EDSLs) are said to be easier to compose than DSLs that are implemented by preprocessors. However, existing approaches focus on composition scenarios where the use of abstractions from one domain does not affect the ...
expand
Weaving generic programming and traversal performance
Bryan Chadwick, Karl Lieberherr
Pages: 61-72
doi>10.1145/1739230.1739238
Full text: PDFPDF

Developing complex software requires that functions be implemented over a variety of recursively defined data structures. While the design (and modeling) of structures is itself difficult, complex data can require even more complex functions. In this ...
expand
SESSION: Managing models and code
Assessing the impact of aspects on model composition effort
Kleinner Farias, Alessandro Garcia, Jon Whittle
Pages: 73-84
doi>10.1145/1739230.1739240
Full text: PDFPDF

Model composition is a common operation used in many software development activities---for example, reconciling models developed in parallel by different development teams, or merging models of new features with existing model artifacts. Unfortunately, ...
expand
From aspect-oriented models to aspect-oriented code?: the maintenance perspective
Aram Hovsepyan, Riccardo Scandariato, Stefan Van Baelen, Yolande Berbers, Wouter Joosen
Pages: 85-96
doi>10.1145/1739230.1739241
Full text: PDFPDF

Aspect-Oriented Modeling (AOM) provides support for separating concerns at the design level. Even though most AOM approaches provide means to execute the composition of the modularized concerns to obtain a composed model, it is also possible to keep ...
expand
Tool support for crosscutting concerns of API documentation
Michihiro Horie, Shigeru Chiba
Pages: 97-108
doi>10.1145/1739230.1739242
Full text: PDFPDF

Writing detailed API (Application Programming Interface) documentation is a significant task for developing a good class library or framework. However, existing documentation tools such as Javadoc provide only limited support and thus the description ...
expand
SESSION: Foundations
EffectiveAdvice: disciplined advice with explicit effects
Bruno C. d. S. Oliveira, Tom Schrijvers, William R. Cook
Pages: 109-120
doi>10.1145/1739230.1739244
Full text: PDFPDF

Advice is a mechanism, widely used in aspect-oriented languages, that allows one program component to augment or modify the behavior of other components. When advice and other components are composed together they become tightly coupled, sharing ...
expand
Type relaxed weaving
Hidehiko Masuhara, Atsushi Igarashi, Manabu Toyama
Pages: 121-132
doi>10.1145/1739230.1739245
Full text: PDFPDF

Statically typed aspect-oriented programming languages restrict application of around advice only to the join points that have conforming types. Though the restriction guarantees type safety, it can prohibit application of advice that is useful, yet ...
expand
A theory of distributed aspects
Nicolas Tabareau
Pages: 133-144
doi>10.1145/1739230.1739246
Full text: PDFPDF

Over the last five years, several systems have been proposed to take distribution into account in Aspect-Oriented Programming. While they appeared to be fruitful to develop or improve distributed component infrastructures or application servers, those ...
expand
SESSION: Composition
A model for composable composition operators: expressing object and aspect compositions with first-class operators
Wilke Havinga, Lodewijk Bergmans, Mehmet Aksit
Pages: 145-156
doi>10.1145/1739230.1739248
Full text: PDFPDF

A considerable amount of research, especially within the OO and AOSD communities, has focused on understanding the potential and limitations of various composition techniques. This has led to a large amount of proposals for alternative composition techniques, ...
expand
Composing aspects with aspects
Antoine Marot, Roel Wuyts
Pages: 157-168
doi>10.1145/1739230.1739249
Full text: PDFPDF

Aspect-oriented programming languages modularize crosscutting concerns by separating the concerns from a base program in aspects. What they do not modularize well is the code needed to manage interactions between the aspects themselves. Therefore aspects ...
expand
Tracking code patterns over multiple software versions with Herodotos
Nicolas Palix, Julia Lawall, Gilles Muller
Pages: 169-180
doi>10.1145/1739230.1739250
Full text: PDFPDF

An important element of understanding a software code base is to identify the repetitive patterns of code it contains and how these evolve over time. Some patterns are useful to the software, and may be modularized. Others are detrimental to the software, ...
expand
SESSION: Applications
AspectMatlab: an aspect-oriented scientific programming language
Toheed Aslam, Jesse Doherty, Anton Dubrau, Laurie Hendren
Pages: 181-192
doi>10.1145/1739230.1739252
Full text: PDFPDF

This paper introduces a new aspect-oriented programming language, AspectMatlab. Matlab® is a dynamic scientific programming language that is commonly used by scientists because of its convenient and high-level syntax for arrays, the fact that type ...
expand
Disambiguating aspect-oriented security policies
Micah Jones, Kevin W. Hamlen
Pages: 193-204
doi>10.1145/1739230.1739253
Full text: PDFPDF

Many software security policies can be encoded as aspects that identify and guard security-relevant program operations. Bugs in these aspectually-implemented security policies often manifest as ambiguities in which aspects provide conflicting advice ...
expand
A permission system for secure AOP
Wouter De Borger, Bart De Win, Bert Lagaisse, Wouter Joosen
Pages: 205-216
doi>10.1145/1739230.1739254
Full text: PDFPDF

The integration of third-party aspects into applications creates security challenges. Due to the intrusive impact of aspects, one cannot guarantee that the dynamic composition of aspects does not lead to misbehavior. The newly composed aspect typically ...
expand
SESSION: Industry track
The aspect-oriented design of the PUMA C/C++ parser framework
Matthias Urban, Daniel Lohmann, Olaf Spinczyk
Pages: 217-221
doi>10.1145/1739230.1739256
Full text: PDFPDF

Puma is a framework for the development of applications that analyze and, optionally, transform C or C++ source code. It supports ISO C and C++ as well as many language extensions of the GNU Compiler Collection and Microsoft Visual C++. Aspects played ...
expand
Program analysis environment for writing COBOL aspects
Hideaki Shinomi, Yasuhisa Ichimori
Pages: 222-230
doi>10.1145/1739230.1739257
Full text: PDFPDF

COBOL is still an important language for building mission critical enterprise systems, and there is huge amount of existing COBOL programs. We have been developing an aspect-oriented COBOL and its development environment. We are applying aspect orientation ...
expand

Powered by The ACM Guide to Computing Literature


The ACM Digital Library is published by the Association for Computing Machinery. Copyright © 2019 ACM, Inc.
Terms of Usage   Privacy Policy   Code of Ethics   Contact Us