Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Views for tools in integrated environments
An international workshop on Advanced programming environments
C++ strategies and tactics
An empirical study of multiple-view software development
SDE 5 Proceedings of the fifth ACM SIGSOFT symposium on Software development environments
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A pattern language for tool construction and integration based on the tools and materials metaphor
Pattern languages of program design
Lazy optimization: patterns for efficient Smalltalk programming
Pattern languages of program design 2
Smalltalk: best practice patterns
Smalltalk: best practice patterns
Multiple views based on unparsing canonical representations—the MultiView architecture
ISAW '96 Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Back to the future: the story of Squeak, a practical Smalltalk written in itself
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Pattern languages of program design 3
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Cornell program synthesizer: a syntax-directed programming environment
Communications of the ACM
More Effective C++: 35 New Ways to Improve Your Programs and Designs
More Effective C++: 35 New Ways to Improve Your Programs and Designs
Extreme Programming Installed
Design patterns in communications software
Design patterns in communications software
Design Patterns: Abstraction and Reuse of Object-Oriented Design
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Views for tools in integrated environments
Views for tools in integrated environments
A system for multiparadigm development of software systems
IWSSD '91 Proceedings of the 6th international workshop on Software specification and design
Contributing to Eclipse: Principles, Patterns, and Plugins
Contributing to Eclipse: Principles, Patterns, and Plugins
Pattern-Oriented Software Architecture: Patterns for Resource Management
Pattern-Oriented Software Architecture: Patterns for Resource Management
Proceedings of the 26th International Conference on Software Engineering
Workshop on Directions in Software Engineering Environments (WoDiSEE)
Proceedings of the 26th International Conference on Software Engineering
Traits: A mechanism for fine-grained reuse
ACM Transactions on Programming Languages and Systems (TOPLAS)
MultiJava: Design rationale, compiler implementation, and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
MudPie: layers in the ball of mud
Computer Languages, Systems and Structures
A browser for incremental programming
Computer Languages, Systems and Structures
Hi-index | 0.00 |
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 article 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.