skip to main content
article

Intentional software

Published: 16 October 2006 Publication History

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.

References

[1]
Brooks, Fredrick, No Silver Bullet - Essence and Accidents of Software Engineering, Computer Magazine, 1987.
[2]
Code Generation Network www.codegeneration.net
[3]
Czarnecki, K. and U. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading, MA, USA, June 2000.
[4]
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
[5]
Dmitriev, Sergey. Language Oriented Programming: The Next Programming Paradigm, 2004. http://www.onboard.jetbrains.com/articles/04/10/lop/
[6]
Evans, Eric. Domain-Driven Design. Addison Wesley, 2004.
[7]
Foote, B. and Yoder, J., Big Ball of Mud, Fourth Conference on Pattern Language Programs, 1997.
[8]
Fowler, Martin, Language Workbenches: The Killer-App for Domain Specific Languages?, 2005. www.martinfowler.com
[9]
Greenfield, Jack, Keith Short, Steve Cook, Stuart Kent, Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools.
[10]
Iverson, K. A Programming Language, 1962. See also Programming Notation in Systems Design. IBM Systems Journal 2(2): 117--128 (1963).
[11]
James, William, The Principles of Psychology, Henry Holt 1890.
[12]
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.
[13]
Kiczales G, et al, Aspect-Oriented Programming, Proceedings of European Conference on Object-Oriented Programming, 1997.
[14]
Lampson, B.W. Personal Distributed Computing: The ALTO and Ethernet Software, ACM conference on the History of Personal Workstations, Palo Alto, 1986.
[15]
Mernik, M, Heering, J, Sloane, A, When and How to Develop Domain Specific Languages, ACM Computing Surveys, vol 37, no 4, December 2005.
[16]
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.
[17]
Naur, Peter, A Synapse-State Theory of Mental Life, 2004, www.naur.com/synapse-state.pdf
[18]
Simonyi, Charles. Intentional Programming -- An Ecology for Abstraction. 1997, Invited Talk USENIX Conference on Domain-Specific Languages.
[19]
Simonyi, Charles. Intentional Program Tree Represented By High-Level Computational Constructs, US Patent Nos. 5790863, 5911072, 6070007, 6078746, 6097888 and 6189143.
[20]
Wilson, Gregory V., Extensible Programming for the 21st Century, ACM Queue, Vol 2, No 9, Dec/Jan 2004/2005. YACC. http://dinosaur.compilertools.net

Cited By

View all
  • (2024)Autocorrection in Projectional EditorsCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660844(94-98)Online publication date: 11-Mar-2024
  • (2024)Jasay: Towards Voice Commands in Projectional EditorsProceedings of the 1st ACM/IEEE Workshop on Integrated Development Environments10.1145/3643796.3648449(30-34)Online publication date: 20-Apr-2024
  • (2023)PescaJ: A Projectional Editor for Java Featuring Scattered Code AggregationProceedings of the 2nd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3623504.3623571(44-50)Online publication date: 18-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 41, Issue 10
Proceedings of the 2006 OOPSLA Conference
October 2006
480 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/1167515
Issue’s Table of Contents
  • cover image ACM Conferences
    OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
    October 2006
    514 pages
    ISBN:1595933484
    DOI:10.1145/1167473
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 October 2006
Published in SIGPLAN Volume 41, Issue 10

Check for updates

Author Tags

  1. generative programming
  2. intentional software

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)17
  • Downloads (Last 6 weeks)1
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Autocorrection in Projectional EditorsCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660844(94-98)Online publication date: 11-Mar-2024
  • (2024)Jasay: Towards Voice Commands in Projectional EditorsProceedings of the 1st ACM/IEEE Workshop on Integrated Development Environments10.1145/3643796.3648449(30-34)Online publication date: 20-Apr-2024
  • (2023)PescaJ: A Projectional Editor for Java Featuring Scattered Code AggregationProceedings of the 2nd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3623504.3623571(44-50)Online publication date: 18-Oct-2023
  • (2023)Sharing Trees and Contextual Information: Re-imagining Forwarding in Attribute GrammarsProceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3623476.3623520(56-69)Online publication date: 23-Oct-2023
  • (2023)Code Merging using Transformations and Member IdentityProceedings of the 2023 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3622758.3622891(71-88)Online publication date: 18-Oct-2023
  • (2021)A Domain-Specific Language for Payroll Calculations: An Experience Report from DATEVDomain-Specific Languages in Practice10.1007/978-3-030-73758-0_4(93-130)Online publication date: 15-Apr-2021
  • (2020)Foundations of empirical memory consistency testingProceedings of the ACM on Programming Languages10.1145/34282944:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)Neural reverse engineering of stripped binaries using augmented control flow graphsProceedings of the ACM on Programming Languages10.1145/34282934:OOPSLA(1-28)Online publication date: 13-Nov-2020
  • (2020)Guiding dynamic programing via structural probability for accelerating programming by exampleProceedings of the ACM on Programming Languages10.1145/34282924:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)Revisiting iso-recursive subtypingProceedings of the ACM on Programming Languages10.1145/34282914:OOPSLA(1-28)Online publication date: 13-Nov-2020
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media