Experimental game theory is the use of game theoretic abstractions—games, players, and strategies—in experiments and simulations. It is often used in cases where traditional, analytical game theory fails or is difficult to apply. This thesis collects three previously published papers that provide domain-specific language (DSL) support for defining and executing...
In this thesis I present the choice calculus, a formal language for representing variation in software and other structured artifacts. The choice calculus is intended to support variation research in a way similar to the lambda calculus in programming language research. Specifically, it provides a simple formal basis for presenting,...
This survey explores and organizes existing work on the long-term management of software that varies in multiple dimensions. It focuses, in particular, on the representation of features in software product lines, and on capturing relationships between features in feature models.
Many applications require not only representing variability in software and data, butalso computing with it. To do so efficiently requires variational data structures thatmake variability explicit in the underlying data and the operations used to manipulate it.Variational data structures have been developed ad hoc for many applications, but thereis little...
Mixed-initiative programming entails collaboration between a computer system, and a human to achieve some desired goal or set of goals. Often these goals change or are amended in real time during the course of program execution. As such, the plans these programs are based on must adapt and evolve to...
The history of a software project plays a vital role in the software development process. Version control systems enable users of a software repository to look at the evolution of the source code, and see the changes that led to newer versions. Currently, version control systems provide commands that can...
Tensor mathematics provides a powerful language to visualize and analyze physical phenomena. In the last three decades, tensors have been used in various application areas. The visualization and analysis of tensors fields have seen much advance, both in 2D and 3D. However, the physical interpretations of the topological analysis are...
We present an explanation-oriented, domain-specific, visual language for explaining probabilistic reasoning. Explanation-oriented programming is a new paradigm that shifts the focus of programming from the computation of results to explanations of how those results were computed. Programs in this language therefore describe explanations of probabilistic reasoning problems. The language relies...
Spreadsheets are a pervasive technology throughout personal and industrial use. Often times, the user is not the author, contributing to a lack of understanding of the purpose and functionality of a spreadsheet. Furthermore, the lack of understanding is a major reason for mistakes in the use and maintenance of spreadsheets....
Software Defined Storage is a term for data storage software to manage policy-based provisioning and management of heterogeneous data storage system abstracting underlying hardware. CoprHD is a software defined storage controller and API platform which enables policy-based management and cloud automation of storage resources for block, object and file storage...