Succinct representations of graphs
Information and Control
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Eli: a complete, flexible compiler construction system
Communications of the ACM
Querying object-oriented databases
SIGMOD '92 Proceedings of the 1992 ACM SIGMOD international conference on Management of data
Composable attribute grammars: support for modularity in translator design and implementation
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parallel recognition of series-parallel graphs
Information and Computation
Adaptive object-oriented programming using graph-based customization
Communications of the ACM
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Modularity and reusability in attribute grammars
Acta Informatica
Incomplete path expressions and their disambiguation
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Efficient implementation of adaptive software
ACM Transactions on Programming Languages and Systems (TOPLAS)
Evolution of object behavior using context relations
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
A novel approach to marshalling
Software—Practice & Experience
Preventive program maintenance in Demeter/Java
ICSE '97 Proceedings of the 19th international conference on Software engineering
Pattern languages of program design 3
Evolution of Object Behavior Using Context Relations
IEEE Transactions on Software Engineering
A new approach to compiling adaptive programs
Science of Computer Programming
The Unified Modeling Language user guide
The Unified Modeling Language user guide
Grammar-Based Definition of Metaprogramming Systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generation of visitor components that implement program transformations
SSR '01 Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
Aspect-oriented programming: Introduction
Communications of the ACM
Aspect-oriented programming with adaptive methods
Communications of the ACM
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Compiler Construction
Assuring Good Style for Object-Oriented Programs
IEEE Software
Strategic programming meets adaptive programming
Proceedings of the 2nd international conference on Aspect-oriented software development
Object Queries over Relational Databases: Language, Implementation, and Applications
Proceedings of the Ninth International Conference on Data Engineering
Component Enhancement: An Adaptive Reusability Mechanism for Groups of Collaborating Classes
Proceedings of the IFIP 12th World Computer Congress on Algorithms, Software, Architecture - Information Processing '92, Volume 1 - Volume I
Dynamic Derivation of Personalized Views
VLDB '88 Proceedings of the 14th International Conference on Very Large Data Bases
The Essence of the Visitor Pattern
COMPSAC '98 Proceedings of the 22nd International Computer Software and Applications Conference
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Automatic Generation of Optimized Code for Marshalling Routines
Proceedings of the IFIP TC6/WG6.5 International Conference on Upper Layer Protocols, Architectures and Applications
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
DJ: Dynamic Adaptive Programming in Java
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
Adaptive plug-and-play components for evolutionary software development
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
XAspects: an extensible system for domain-specific aspect languages
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Controlling the Complexity of Software Designs
Proceedings of the 26th International Conference on Software Engineering
Doxpects: aspects supporting XML transformation interfaces
Proceedings of the 5th international conference on Aspect-oriented software development
Scrap your boilerplate with XPath-like combinators
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Transformation of structure-shy programs: applied to XPath queries and strategic functions
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Recursive adaptive computations using perobject visitors
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
Language-Independent Quantification and Weaving for Feature Composition
SC '09 Proceedings of the 8th International Conference on Software Composition
LEESA: Embedding Strategic and XPath-Like Object Structure Traversals in C++
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Controlled evolution of adaptive programs
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Scrap your boilerplate: prologically!
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Programming Errors in Traversal Programs Over Structured Data
Electronic Notes in Theoretical Computer Science (ENTCS)
Weaving generic programming and traversal performance
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Aspect-oriented programming: selecting and exposing object paths
SC'07 Proceedings of the 6th international conference on Software composition
An algebraic foundation for automatic feature-based program synthesis
Science of Computer Programming
Algorithms for traversal-based generic programming
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
Transformation of structure-shy programs with application to XPath queries and strategic functions
Science of Computer Programming
Optimization of visitor performance by reflection-based analysis
ICMT'11 Proceedings of the 4th international conference on Theory and practice of model transformations
PADL'06 Proceedings of the 8th international conference on Practical Aspects of Declarative Languages
Automatic prefetching by traversal profiling in object persistence architectures
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Demeter interfaces: adaptive programming without surprises
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Incompleteness-aware programming with RDF data
DDFP '13 Proceedings of the 2013 workshop on Data driven functional programming
Programming errors in traversal programs over structured data
Science of Computer Programming
Hi-index | 0.00 |
Separation of concerns and loose coupling of concerns are important issues in software enginnering. In this paper we show how to separate traversal-related concerns from other concerns, how to loosely couple traversal-related concerns to the structural concern, and how to efficiently implement traversal-related concerns. The stress is on the detailed description of our algorithms and the traversal specifications they operate on.Traversal of object structures is a ubiquitous routine in most types of information processing. Ad hoc implementations of traversals lead to scattered and tangled code and in this paper we present a new approach, called traversal strategies, to succinctly modularize traversals. In our approach traversals are defined using a high-level directed graph description, which is compiled into a dynamic road map to assist run-time traversals. The complexity of the compilation algorithm is polynomial in the size of the traversal strategy graph and the class graph of the given application. Prototypes of the system have been developed and are being successfully used to implement traversals for Java and AspectJ [Kiczales et al. 2001] and for generating adapters for software components. Our previous approach, called traversal specifications [Lieberherr 1992; Palsberg et al. 1995], was less general and less succinct, and its compilation algorithm was of exponential complexity in some cases. In an additional result we show that this bad behavior is inherent to the static traversal code generated by previous implementations, where traversals are carried out by invoking methods without parameters.