Results 21  30
of
121
Program refactoring, program synthesis, and modeldriven development
 Proceedings of the 16th International Conference on Compiler Constuction (CC’07), volume 4420 of LNCS
, 2007
"... Abstract. Program refactoring, featurebased and aspectoriented software synthesis, and modeldriven development are disjoint research areas. However, they are all architectural metaprogramming technologies as they treat programs as values and use functions (a.k.a. transformations) to map programs ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
Abstract. Program refactoring, featurebased and aspectoriented software synthesis, and modeldriven development are disjoint research areas. However, they are all architectural metaprogramming technologies as they treat programs as values and use functions (a.k.a. transformations) to map programs to other programs. In this paper, I explore their underlying connections by reviewing recent advances in each area from an architectural metaprogramming perspective. I conjecture how these areas can converge and outline a theory that may unify them. 1
A Resumption Monad Transformer and its Applications in the Semantics of Concurrency
, 2001
"... Resumptions are a valuable tool in the analysis and design of semantic models for concurrent programming languages, in which computations consist of sequences of atomic steps that may be interleaved. In this paper we consider a general notion of resumption, parameterized by the kind of computations ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
Resumptions are a valuable tool in the analysis and design of semantic models for concurrent programming languages, in which computations consist of sequences of atomic steps that may be interleaved. In this paper we consider a general notion of resumption, parameterized by the kind of computations that take place in the atomic steps. We define a monad transformer which, given a monad M that represents the atomic computations, constructs a monad R(M) for interleaved computations. Moreover, we use this monad transformer to define the denotational semantics of a simple imperative language supporting nondeterminism and concurrency.
On the Modularity of Feature Interactions
"... Feature modules are the building blocks of programs in software product lines (SPLs). A foundational assumption of featurebased program synthesis is that features are composed in a predefined sequence called a natural order. Recent work on virtual separation of concerns reveals a new model of featu ..."
Abstract

Cited by 11 (10 self)
 Add to MetaCart
Feature modules are the building blocks of programs in software product lines (SPLs). A foundational assumption of featurebased program synthesis is that features are composed in a predefined sequence called a natural order. Recent work on virtual separation of concerns reveals a new model of feature interactions that shows that feature modules can be quantized as compositions of smaller modules called derivatives. We present this model and examine some of its consequences, namely, that (1) a given program can be reconstructed by composing features in any order, and (2) the contents of a feature module (as expressed as a composition of derivatives) is determined automatically by a feature order. We show that different orders allow one to adjust the contents of a feature module to isolate and study the impact of interactions that a feature has with other features. We also show the utility of generalizing safe composition (SC), a basic analysis of SPLs that verifies program typesafety, to demonstrate that every legal composition of derivatives (and thus any composition order of features) produces a typesafe program, which is a much stronger SC property.
An abstract interface to higher spin gauge field theory
 J. Math. Phys
"... A comprehensive approach to the theory of higher spin gauge fields is proposed. By explicitly separating out details of implementation from general principles, it becomes possible to focus on the bare minimum of requirements that such a theory must satisfy. The abstraction is based on a survey of th ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
A comprehensive approach to the theory of higher spin gauge fields is proposed. By explicitly separating out details of implementation from general principles, it becomes possible to focus on the bare minimum of requirements that such a theory must satisfy. The abstraction is based on a survey of the progress that has been achieved since relativistic wave equations for higher spin fields were first considered in the nineteen thirties. As a byproduct, a formalism is obtained that is abstract enough to describe a wide class of classical field theories. The formalism, viewed as syntax, can then be semantically mapped to a category of homotopy Lie algebras, thus showing that the theory in some sense exists, at least as an abstract mathematical structure. Still, a concrete physicslike, implementation remains to be constructed. Lacking deep physical insight into the problem, an implementation in terms of generalized vertex operators is set up within which a brute force iterative determination of the first few orders in the interaction can be attempted.
A Fully Abstract Semantics for a HigherOrder Functional Language With Nondeterministic Computation
, 1994
"... . This paper is about the relationship between the theory of monadic types and the practice of concurrent functional programming. We present a typed functional programming language CMML, with a type system based on Moggi's monadic metalanguage, and concurrency based on Reppy's Concurrent ML. We pre ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
. This paper is about the relationship between the theory of monadic types and the practice of concurrent functional programming. We present a typed functional programming language CMML, with a type system based on Moggi's monadic metalanguage, and concurrency based on Reppy's Concurrent ML. We present an operational and denotational semantics for the language, and show that the denotational semantics is fully abstract for maytesting. We show that a fragment of CML can be translated into CMML, and that the translation is correct up to weak bisimulation. Contents 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Mathematical preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1 Categories and monads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Partial orders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
Bisimilarity and BehaviourPreserving Reconfigurations of Open Petri Nets
"... We propose a framework for the specification of behaviourpreserving reconfigurations of systems modelled as Petri nets. The framework is based on open nets, a mild generalisation of ordinary Place/Transition nets suited to model open systems which might interact with the surrounding environment and ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
We propose a framework for the specification of behaviourpreserving reconfigurations of systems modelled as Petri nets. The framework is based on open nets, a mild generalisation of ordinary Place/Transition nets suited to model open systems which might interact with the surrounding environment and endowed with a colimitbased composition operation. We show that natural notions of (strong and weak) bisimilarity over open nets are congruences with respect to the composition operation. We also provide an upto technique for facilitating bisimilarity proofs. The theory is used to identify suitable classes of reconfiguration rules (in the doublepushout approach to rewriting) whose application preserves the observational semantics of the net.
Recursive Adaptable Grammars
 Master’s Thesis, Worchester Polytechnic Institute
, 1998
"... ContextFree Grammars (CFGs) are a simple and intuitively appealing formalism for the description of programming languages, but lack the computational power to describe many common language features. Over the past three decades, numerous extensions of the CFG model have been developed. Most of these ..."
Abstract

Cited by 9 (2 self)
 Add to MetaCart
ContextFree Grammars (CFGs) are a simple and intuitively appealing formalism for the description of programming languages, but lack the computational power to describe many common language features. Over the past three decades, numerous extensions of the CFG model have been developed. Most of these extensions retain a CFG kernel, and augment it with a distinct facility with greater computational power. However, in all the most powerful CFG extensions, the clarity of the CFG kernel is undermined by the opacity of the more powerful extending facility. An intuitively appealing strategy for CFG extension is grammar adaptability, the principle that declarations in a program effectively modify the contextfree grammar of the programming language. An adaptable grammar is equipped with some formal means for modifying its own CFG kernel. Most previous adaptable grammar formalisms have, unfortunately, failed to realize the potential clarity of this concept. In this thesis, a representative samp...
Interconnection of Object Specifications
 Formal Methods and Object Technology
, 1996
"... ing yet further from reality, we might proscribe the simultaneous effect of two or more methods on an object's state; doing so, we impose a monoid structure on the fixed set of methods proper to an object class. Applying methods one after the other corresponds to multiplication in the monoid, and ap ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
ing yet further from reality, we might proscribe the simultaneous effect of two or more methods on an object's state; doing so, we impose a monoid structure on the fixed set of methods proper to an object class. Applying methods one after the other corresponds to multiplication in the monoid, and applying no methods corresponds to the identity of the monoid. A monoid is a set M with an associative binary operation ffl M : M \ThetaM ! M , usually referred to as `multiplication', which has an identity element e M 2 M . If M = (M; ffl M ; e M ) is a monoid, we often write just M for M, and e for e M ; moreover for m;m 0 2 M , we usually write mm 0 instead of m ffl M m 0 . For example, A , the set of lists containing elements of A, together with concatenation ++ : A \ThetaA ! A and the empty list [ ] 2 A , is a monoid. This example is especially important for the material in later sections. A monoid homomorphism is a structure preserving map between the carriers of ...
Modular monad transformers
 In ESOP ’09: Proceedings of the 18th European Symposium on Programming Languages and Systems
, 2009
"... Abstract. During the last two decades, monads have become an indispensable tool for structuring functional programs with computational effects. In this setting, the mathematical notion of a monad is extended with operations that allow programmers to manipulate these effects. When several effects are ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
Abstract. During the last two decades, monads have become an indispensable tool for structuring functional programs with computational effects. In this setting, the mathematical notion of a monad is extended with operations that allow programmers to manipulate these effects. When several effects are involved, monad transformers can be used to build up the required monad one effect at a time. Although this seems to be modularity nirvana, there is a catch: in addition to the construction of a monad, the effectmanipulating operations need to be lifted to the resulting monad. The traditional approach for lifting operations is nonmodular and adhoc. We solve this problem with a principled technique for lifting operations that makes monad transformers truly modular. 1
ABSTRACT A Specificationbased Approach to Testing Software Product Lines (Poster Paper)
"... This paper presents a specificationbased approach for systematic testing of products from a software product line. Our approach uses specifications given as formulas in Alloy, a firstorder logic based on relations. Alloy formulas can be checked for satisfiability using the Alloy Analyzer. The full ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
This paper presents a specificationbased approach for systematic testing of products from a software product line. Our approach uses specifications given as formulas in Alloy, a firstorder logic based on relations. Alloy formulas can be checked for satisfiability using the Alloy Analyzer. The fully automatic analyzer, given an Alloy formula and a scope, i.e., a bound on the universe of discourse, searches for an instance, i.e., a valuation to the relations in the formula such that it evaluates to true. The analyzer translates an Alloy formula (for the given scope) to a propositional formula and finds an instance using an offtheshelf SAT solver. The use of an enumerating solver enables systematic test generation. We have developed a prototype based on the AHEAD theory. The prototype uses the recently developed Kodkod model finding engine of the Alloy Analyzer. We illustrate our approach using a data structure product line.