Transformation in intentional programming

  title={Transformation in intentional programming},
  author={William E. Aitken and Brian Dickens and Paul Kwiatkowski and Oege de Moor and David Richter and Charles Simonyi},
  journal={Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203)},
Intentional programming is a new paradigm in software engineering that allows programming languages to be implemented in a highly extensible manner. In particular, the programmer can specify new abstractions that are specific to his problem domain, while simultaneously recording any domain specific optimizations that may apply to such new abstractions. This paper describes a system that implements intentional programming, focusing on the facilities for program transformation. The key difference… 

A Mixin-Based, Semantics-Based Approach to Reusing Domain-Specific Programming Languages

This work describes an approach to implementing modular interpreters in an object-oriented fashion, using the design pattern of extensible computations, and considers what extensions would be required for typed object- oriented languages in order to support this approach in a statically type-safe manner.

Aspect-Oriented Programming is Quantification and Obliviousness

This paper proposes that the distinguishing characteristic of Aspect-Oriented Programming (AOP) systems is that they allow programming by making quantified programmatic assertions over programs

Managing Intent : Propagation of Meaning During Model Transformations

This paper philosophically discusses the root causes of transformations, specifically the syntax and semantics changes that require MDA-like transformations between modeling languages.

Aspect-Oriented Programming is Quantification and Oblivi- ousness

This paper proposes that the distinguishing characteristic of Aspect-Oriented Programming (AOP) systems is that they allow programming by making quantified programmatic assertions over programs

Data refinement by rewriting

A new notion of the transform, a parametric specification form suitable for automatic application and composition of transformations, is introduced, which may be reusable in that it can be applied several times to different variables in the same program or other programs.

Aspect-Oriented Programming and Component Weaving: Using XML Representations of Abstract Syntax Trees

This paper proposes XML based “operators” as an extensible aspect language that can be generated by modifying an existing compiler and allow us to use XML tools for tree query and manipulation.

ECOOP 2000 — Object-Oriented Programming

  • E. Bertino
  • Computer Science
    Lecture Notes in Computer Science
  • 2000
This paper describes to what extent the BETA language has been successful in obtaining a unified style and where more research is needed and also discusses concurrent programming and prototype-based programming.

Building program optimizers with rewriting strategies

An extended language in which the side-conditions and contextual rules that arise in realistic optimizer specifications can themselves be expressed as strategy-driven rewrites, and a low-level core language which has a clear semantics, can be implemented straightforwardly and can itself be optimized.

Coupled Software Transformations — Extended

We identify the category of coupled software transformations, which comprises transformation scenarios involving two or more artifacts that are coupled in the following sense: transformation at one

A product-line for families of program translators: a grammar-based approach

This thesis addresses the translation problem of space-mission planning by combining several techniques to generate a family of program translators: a product-line approach provides the support for a reusable translator framework; a grammar convergence reverse-engineering approach enables to extract common models from programming languages and programs, and a language-parametric grammarware approach providing the specific translation and transformation techniques.



DiSTiL: A Transformation Library for Data Structures

DiSTiL is a software generator that implements a declarative domain-specific language (DSL) for container data structures that relies on several reusable, general-purpose infrastructure tools offered by IP that substantially simplify DSL implementation.

The Death of Computer Languages, The Birth of Intentional Programming

This chapter discusses abstraction, Simplicity of language, types and type checking, and delegation, all of which are important in the context of software encoding.

Practical metaprogramming

This paper describes a practical metaprogramming system being developed as part of the ITRC Software Life Cycle Technology project, which utilizes source transformation to implement all phases of the metapprogramming process.

The TAMPR Program Transformation System: Simplifying the Development of Numerical Software

This chapter describes an approach to constructing software—program specification and transformation—and allied tools that can help not only to ensure the correctness of numerical computations but also automate much of the drudge-work involved in preparing such software.

Anticipatory optimization in domain specific translation

  • T. Biggerstaff
  • Computer Science
    Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203)
  • 1998
Anticipatory optimization (AO) is a method for compiling such compositions directly to optimized code without large search spaces and indeed, without any search space at all.

Viewing A Program Transformation System At Work

How to decrease labor and improve reliability in the development of efficient implementations of nonnumerical algorithms and labor intensive software is an increasingly important problem as the

Scalable software libraries

This paper describes a prototype data structure generator and the building blocks that populate its library, and presents preliminary experimental results which suggest that this approach does not compromise programmer productivity nor the run-time performance of generated data structures.

Intentional Programming - Innovation in the Legacy Age

Even as the software industry learns to deliver higher quality programs and on more predictable schedules, we feel dissatisfied. We feel that the promise of software is so much greater thant what has

Software change through design maintenance

  • I. BaxterC. Pidgeon
  • Computer Science
    1997 Proceedings International Conference on Software Maintenance
  • 1997
This work contends that a fundamental cause of the difficulty of the software life cycle is the failure to preserve design information, and offers an alternative paradigm: make the design the central focus of the construction process-get code as a byproduct.