Abstract
Wysiwyg editors simplified document creation by separating the document contents from the looks and by automating the re-application of the looks to changing contents. In the same way Intentional Software simplifies software creation by separating the software contents in terms of their various domains from the implementation of the software and by enabling automatic re-generation of the software as the contents change. This way, domain experts can work in parallel with programmers in their respective areas of expertise; and the repeated intermingling can be automated. Intentional Software is supported by a Domain Workbench tool where multiple domains can be defined, created, edited, transformed and integrated during software creation. Key features include a uniform representation of multiple interrelated domains, the ability to project the domains in multiple editable notations, and simple access for a program generator.
- Brooks, Fredrick, No Silver Bullet - Essence and Accidents of Software Engineering, Computer Magazine, 1987.Google Scholar
- Code Generation Network www.codegeneration.netGoogle Scholar
- Czarnecki, K. and U. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading, MA, USA, June 2000. Google ScholarDigital Library
- van Deursen, Arie, Paul Klint and Joost Visser Domain-Specific Languages: An Annotated Bibliography, 2000 http://homepages.cwi.nl/~arie/papers/dslbib/ An updated list published here http://catamaran.labs.cs.uu.nl/twiki/pt/bin/view/Transform/DSLBibliographyAdditions Google ScholarDigital Library
- Dmitriev, Sergey. Language Oriented Programming: The Next Programming Paradigm, 2004. http://www.onboard.jetbrains.com/articles/04/10/lop/Google Scholar
- Evans, Eric. Domain-Driven Design. Addison Wesley, 2004.Google Scholar
- Foote, B. and Yoder, J., Big Ball of Mud, Fourth Conference on Pattern Language Programs, 1997.Google Scholar
- Fowler, Martin, Language Workbenches: The Killer-App for Domain Specific Languages?, 2005. www.martinfowler.comGoogle Scholar
- Greenfield, Jack, Keith Short, Steve Cook, Stuart Kent, Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools. Google ScholarDigital Library
- Iverson, K. A Programming Language, 1962. See also Programming Notation in Systems Design. IBM Systems Journal 2(2): 117--128 (1963).Google Scholar
- James, William, The Principles of Psychology, Henry Holt 1890.Google Scholar
- Khwaja, Amir, Joseph Urban, Syntax-directed editing environments: issues and features, Proceedings of the 1993 ACM/SIGAPP symposium on Applied Computing: states of the art and practice. Google ScholarDigital Library
- Kiczales G, et al, Aspect-Oriented Programming, Proceedings of European Conference on Object-Oriented Programming, 1997.Google Scholar
- Lampson, B.W. Personal Distributed Computing: The ALTO and Ethernet Software, ACM conference on the History of Personal Workstations, Palo Alto, 1986. Google ScholarDigital Library
- Mernik, M, Heering, J, Sloane, A, When and How to Develop Domain Specific Languages, ACM Computing Surveys, vol 37, no 4, December 2005. Google ScholarDigital Library
- Musser, David R., Gillmer J. Derge, and Atul Saini STL Tutorial and Reference Guide, Second Edition: C++ Programming with the Standard Template Library, Addison-Wesley, 2001. Google ScholarDigital Library
- Naur, Peter, A Synapse-State Theory of Mental Life, 2004, www.naur.com/synapse-state.pdfGoogle Scholar
- Simonyi, Charles. Intentional Programming -- An Ecology for Abstraction. 1997, Invited Talk USENIX Conference on Domain-Specific Languages.Google Scholar
- Simonyi, Charles. Intentional Program Tree Represented By High-Level Computational Constructs, US Patent Nos. 5790863, 5911072, 6070007, 6078746, 6097888 and 6189143.Google Scholar
- Wilson, Gregory V., Extensible Programming for the 21st Century, ACM Queue, Vol 2, No 9, Dec/Jan 2004/2005. YACC. http://dinosaur.compilertools.net Google ScholarDigital Library
Index Terms
- Intentional software
Recommendations
Intentional software
OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applicationsWysiwyg editors simplified document creation by separating the document contents from the looks and by automating the re-application of the looks to changing contents. In the same way Intentional Software simplifies software creation by separating the ...
Induced intentional software views
Evolving and maintaining software requires adequate documentation of its implementation. However, due to the software's constant evolution, the documentation and implementation do not remain synchronised. Intentional software views have been proposed as ...
Maya: multiple-dispatch syntax extension in Java
PLDI '02: Proceedings of the ACM SIGPLAN 2002 conference on Programming language design and implementationWe have designed and implemented Maya, a version of Java that allows programmers to extend and reinterpret its syntax. Maya generalizes macro systems by treating grammar productions as generic functions, and semantic actions on productions as ...
Comments