Intentional software

  title={Intentional software},
  author={Charles Simonyi and Magnus Christerson and Shane Clifford},
  booktitle={Conference on Object-Oriented Programming Systems, Languages, and Applications},
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… 

Figures from this paper

PrEdE: a Projectional Editor for the Eclipse Modeling Framewor

This work proposes a tool designed to achieve the possibility to easy mix languages and notations based on the Eclipse Modeling Framework, which provides the technological infrastructure and offers a wide set of interoperable tools.

Envision: Reinventing the Integrated Development Environment

This dissertation challenges the established practice of reading and writing programs as text by building a development environment in which programming interfaces are not tightly bound to the content of source files, and introduces novel interaction techniques for structured and visual code.

Customizing the visualization and interaction for embedded domain-specific languages in a structured editor

  • D. AsenovPeter Müller
  • Computer Science
    2013 IEEE Symposium on Visual Languages and Human Centric Computing
  • 2013
This work outlines concepts for a structured code editor that enable developers of eDSLs to customize how e DSL code is rendered and what interactions are available and demonstrates the benefits of this approach by customizing a structured editor for the .NET Code Contracts API.

Example-driven software language engineering

This paper describes the vision of a web-based tool aimed at beginner language engineers, and list possible requirements for such a tool.

Declarative specification of template-based textual editors

The design and implementation of a specification language for syntax definition based on templates is described, which unifies the specification of parsers, unparsers and template-based editors and is evaluated by application to two domain-specific languages used for tax benefits and mobile applications.

Software Language Engineering

It is explained how graph grammars provide a framework to encode expert knowledge, produce correct-by-construction derivations of dataflow applications, enable the generation of high-performance code, and improve how software design of data flow applications can be taught to undergraduates.

Towards multilingual programming environments

Language-Independent Safe Decomposition of Legacy Applications into Features

CIDE is presented, an generic SPL tool that can ensure syntactic correctness for all variants and its underlying mechanism is shown, which shows CIDE’s underlying mechanism that ensures syntactic accuracy in all variants.

Software Language Engineering by Intentional Rewriting

  • V. Zaytsev
  • Computer Science, Linguistics
    Electron. Commun. Eur. Assoc. Softw. Sci. Technol.
  • 2014
A disciplined process of engineering a language for grammar mutations capable of applying uniform intentional transformations in the scope of a big grammar or a corpus of grammars by systematic reuse of semantic components of another existing software language is described.

Textual modeling tools: overview and comparison of language workbenches

  • B. Merkle
  • Computer Science
    SPLASH/OOPSLA Companion
  • 2010
This paper focuses on textual syntaxes as they have several advantages like easy information exchange via e.g. mail, integration into existing tools like diff, merge and version control and most important the fast editing style supported by the "usual" IDE support like code completion, error markers, intentions and quick fixes.



Syntax-directed editing environments: issues and features

The usability and design of syntax-directed editing environments tar critical issues and investigates the factors contributing to these issues are investigated.

When and how to develop domain-specific languages

To aid the DSL developer, patterns in the decision, analysis, design, and implementation phases of DSL development are identified and patterns improve and extend earlier work on DSL design patterns.

Aspect-oriented programming

This tutorial shows how to use AOP to implement crosscutting conerns in a concise modular way and includes a description of their underlying model, in terms of which a wide range of AOP languages can be understood.

Generative programming - methods, tools and applications

This chapter discusses Domain Engineering and Object-Oriented Analysis and Design, and main development steps in Generative Programming, as well as Static versus Dynamic Parameterization, and a Fresh Look at Polymorphism.

Domain-specific languages: an annotated bibliography

The literature available on the topic of domain-specific languages as used for the construction and maintenance of software systems is surveyed, and a selection of 75 key publications in the area is listed.

Language Oriented Programming: The Next Programming Paradigm

This article presents the view and current work toward Language Oriented Programming (LOP), and explains the main principles of this new programming paradigm, which will need to completely redefine the way the authors write programs.

A programming language

  • K. Iverson
  • Computer Science
    AIEE-IRE '62 (Spring)
  • 1962
The paper describes a succinct problem-oriented programming language that relies heavily on a systematic extension of a small set of basic operations to vectors, matrices, and trees, and on a family of flexible selection operations controlled by logical vectors.

Extensible Programming for the 21st Century

This article argues that next-generation programming systems can accomplish this by combining three specific technologies: functions, user-defined types, operator overloading, and generics.

Software factories: assembling applications with patterns, models, frameworks and tools

The confluence of component based development, model driven development and software product lines forms an approach to application development based on the concept of software factories. This

No Silver Bullet Essence and Accidents of Software Engineering

This article shall try to show why there is no single development, in either technology or management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity.