465 papers · page 18 of 24
David Broman, Kaj Nyström, Peter Fritzson
Computer aided modeling and simulation of complex physical systems, using components from multiple application domains, such as electrical, mechanical, and hydraulic, have in recent years witnessed a significant growth of interest. In the last decade, equation-based object-orient…
Krzysztof Czarnecki, Krzysztof Pietroszek
Feature-based model templates have been recently proposed as a approach for modeling software product lines. Unfortunately, templates are notoriously prone to errors that may go unnoticed for long time. This is because such an error is usually exhibited for some configurations on…
Ewen Denney, Bernd Fischer
Code generators for realistic application domains are not directly verifiable in practice. In the certifiable code generation approach the generator is extended to generate logical annotations (i.e., pre- and postconditions and loop invariants) along with the programs, allowing f…
Rémi Douence, Didier Le Botlan, Jacques Noyé, Mario Südholt
Aspect-Oriented Programming (AOP) promises the modularization of so-called crosscutting functionalities in large applications. Currently, almost all approaches to AOP provide means for the description of sequential aspects that are to be applied to a sequential base program. In p…
Manuel Fähndrich, Michael Carbin, James R. Larus
Runtime reflection facilities, as present in Java and.NET, are powerful mechanisms for inspecting existing code and metadata, as well as generating new code and metadata on the fly. Such power does come at a high price though. The runtime reflection support in Java and.NET impose…
Daniel Fontijne
Geometric Algebra (GA) is an algebra that encodes geometry much better than standard techniques, which are mainly based on linear algebra with various extensions. Compared to standard techniques, GA has clearer semantics and a richer, more consistent language. This expresses itse…
Frédéric Jouault, Jean Bézivin, Ivan Kurtev
Domain modeling promotes the description of various facets of information systems by a coordinated set of domain-specific languages (DSL). Some of them have visual/graphical and other may have textual concrete syntaxes. Model Driven Engineering (MDE) helps defining the concepts a…
Sam Kamin, Baris Aktemur, Michael Katelman
Program generators are most naturally specified using a quote/antiquote facility; the programmer writes programs with holes which are filled in, at program generation time, by other program fragments. If the programs are generated at compile-time, analysis and compilation follow …
Ralf Lämmel, Klaus Ostermann
The abilities to extend a software module and to integrate a software module into an existing software system without changing existing source code are fundamental challenges in software engineering and programming-language design. We reconsider these challenges at the level of l…
Gary T. Leavens, Jean-Raymond Abrial, Don S. Batory, Michael J. Butler, Alessandro Coglio, Kathi Fisler, Eric C. R. Hehner, Cliff B. Jones + 5 more
This roadmap describes ways that researchers in four areas---specification languages, program generation, correctness by construction, and programming languages---might help further the goal of verified software. It also describes what advances the "verified software" grand chall…
Jorge Cláudio Cordeiro Pires Mascena, Silvio Romero de Lemos Meira, Eduardo Santana de Almeida, Vinicius Cardoso Garcia
A fundamental premise for any type of reuse is the knowledge about the existence of the object to be reused. Such knowledge may already be available, for example, due to the past experience of the subject of the reuse action or may be obtained through knowledge dissemination. Inf…
Gabriel A. Moreno
Component containers are a key part of mainstream component technologies, and play an important role in separating non-functional concerns from the core component logic. This paper addresses two different aspects of containers. First, it shows how generative programming technique…
Frances Perry, Limin Jia, David Walker
Contracts (dynamically checked programmer assertions) are a widely accepted mechanism for specifying, checking and documenting properties of software components. Most, if not all, contract systems expect programmers to use the native programming language to express their program …
Zoltán Porkoláb, József Mihalicza, Ádám Sipos
Template metaprogramming is an emerging new direction in C++ programming for executing algorithms in compilation time. Despite all of its already proven benefits and numerous successful applications, it is yet to be accepted in industrial projects. One reason is the lack of profe…
Christian Prehofer
In this paper, we consider semantic refinement for feature-oriented programming where components are built from features and weavings, which we use to adapt one feature to the context of another one. We address the question of semantic reasoning about multiple weavings. If we kno…
Janina Reeder, Robert Giegerich
We describe a graphical programming system for a domain specific language in biosequence analysis. It supports the development of programs for RNA structure prediction and motif search, created by biologists with little or no programming skills. The system combines several progra…
John H. Reppy, Chunyan Song
A foreign interface (FI) mechanism to support interoperability with libraries written in other languages (especially C) is an important feature in most high-level language implementations. Such FI mechanisms provide a Foreign Function Interface (FFI) for the high-level language t…
Jonathan Riehl
The MetaBorg usage pattern allows concrete syntax to be associated with application programmer interfaces (API's). Once a concrete syntax is defined, library writers use the Stratego language to write transformations from the concrete syntax to API data and calls in the host lang…
Rui Shi, Chiyan Chen, Hongwei Xi
Distributed meta-programming (DMP), which allows code to be generated and distributed at run-time, has already become a common practice. However, code generation currently often relies on rather ad hoc approaches that represent code as plain text, making DMP notoriously error-pro…
Alexander Stuckenholz, Andre Osterloh
Component updates always imply the risk of negatively influencing the operability of software systems. Because of wrong combinations of component versions, dependencies might break, methods which do no longer exist, might be called or methods might not be compatible to provided i…