|
ABSTRACT
Many design concepts can be expressed only indirectly in source code. When this occurs, a single concept at design results in a verbose amount of code that is scattered across the system structure. In this paper, we present explicit programming, an approach that enables a developer to introduce new vocabulary into the source to capture a design concept explicitly. An introduced vocabulary item modularizes the implementation details associated with a design concept, reducing the scattering of code needed to express the concept. The vocabulary item appears in the code where the concept is needed; uses of the vocabulary may thus remain distributed through the code. We believe explicit programming provides a useful engineering point, balancing modularization and separation in (at least) two cases. First, when a design concept is tightly coupled with particular constructs in a program, separation is unlikely to lead to any benefits of reusability or comprehensibility. Second, concepts that emerge as a system evolves can be encapsulated and recorded, paving the way for later separation when conditions warrant it. We introduce ELIDE, a tool that supports explicit programming in Java, and describe several cases showing the utility of the explicit programming approach.
REFERENCES
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
|
W. Aitken , B. Dickens , P. Kwiatkowski , O. de Moor , D. Richter , C. Simonyi, Transformation in Intentional Programming, Proceedings of the 5th International Conference on Software Reuse, p.114, June 02-05, 1998
|
| |
2
|
AspectJ web page. http://www.aspectj.org.
|
 |
3
|
Jonthan Bachrach , Keith Playford, The Java syntactic extender (JSE), Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.31-42, October 14-18, 2001, Tampa Bay, FL, USA
|
 |
4
|
|
| |
5
|
|
 |
6
|
|
| |
7
|
Dawson R. Engler. Incorporating application semantics and control into compilation. In Proc. of the First Conference on Domain-Specific Languages. Usenix, 1987.
|
| |
8
|
|
| |
9
|
Erich Gamma and Kent Beck. Test-infected: Programmers love writing tests. Java Report, 3(7):51-56, 1998.
|
| |
10
|
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Addison Wesley, 1995.
|
| |
11
|
|
| |
12
|
Hyper/J web page. http://www.research.ibm.com/hyperspace/HyperJ/HyperJ.htm.
|
| |
13
|
iContract web page. http://www.reliable-systems.com/tools/iContract/iContract.htm.
|
| |
14
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
15
|
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In Proc. of European Conference on Object-Oriented Programming (ECOOP), volume 1241 of Lecture Notes in Computer Science, pages 220-242. Springer Verlag, 1997.
|
| |
16
|
|
| |
17
|
OMG. Model driven architecture (mda). ormsc/01-07-01.
|
 |
18
|
|
| |
19
|
Kent M. Pitman. The revised MacLisp manual. Technical Report MIT-LCS-TR-295, M.I.T. Artificial Intelligence Lab, 1983.
|
 |
20
|
|
| |
21
|
Charles Simonyi. The death of computer languages, the birth of intentional programming. Technical Report MSR-TR-95-52, Microsoft Research, 1995.
|
| |
22
|
|
 |
23
|
|
| |
24
|
John Vlissides and Andrei Alexandrescu. To code or not to code, part i and ii. C++ Report, March and June 2000.
|
 |
25
|
Robert J. Walker , Gail C. Murphy , Bjorn Freeman-Benson , Darin Wright , Darin Swanson , Jeremy Isaak, Visualizing dynamic software system information through high-level models, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.271-283, October 18-22, 1998, Vancouver, British Columbia, Canada
|
CITED BY 14
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Macneil Shonle , Karl Lieberherr , Ankit Shah, XAspects: an extensible system for domain-specific aspect languages, Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 26-30, 2003, Anaheim, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|