Eric Walkingshaw

ORCID: 0000-0003-1214-0791
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Software Engineering Research
  • Advanced Software Engineering Methodologies
  • Logic, programming, and type systems
  • Service-Oriented Architecture and Web Services
  • Model-Driven Software Engineering Techniques
  • Scientific Computing and Data Management
  • Software Testing and Debugging Techniques
  • Software System Performance and Reliability
  • Data Visualization and Analytics
  • Artificial Intelligence in Games
  • Advanced Database Systems and Queries
  • Teaching and Learning Programming
  • Bayesian Modeling and Causal Inference
  • Semantic Web and Ontologies
  • Game Theory and Applications
  • Software Reliability and Analysis Research
  • Manufacturing Process and Optimization
  • Evolutionary Game Theory and Cooperation
  • Design Education and Practice
  • Spreadsheets and End-User Computing
  • Logic, Reasoning, and Knowledge
  • Real-time simulation and control systems
  • Mobile Crowdsensing and Crowdsourcing
  • Experimental Behavioral Economics Studies
  • Advanced Text Analysis Techniques

Corvallis Environmental Center
2022-2024

Oregon State University
2012-2021

Philipps University of Marburg
2013-2014

Many areas of computer science are concerned with some form variation in software---from managing changes to software over time supporting families related artifacts. We present the choice calculus, a fundamental representation for that can serve as common language discourse research, filling role similar lambda calculus programming research. also develop an associated theory variation, including sound transformations artifacts, definition strategic normal forms, and design structures, which...

10.1145/2063239.2063245 article EN ACM Transactions on Software Engineering and Methodology 2011-12-01

Through the use of conditional compilation and related tools, many software projects can be used to generate a huge number programs. The problem typing such variational is difficult. brute-force strategy generating all variants each one individually is: (1) usually infeasible for efficiency reasons (2) produces results that do not map well underlying program. Recent research has focused mainly on addressed only type checking. In this work we tackle more general inference introduce types...

10.1145/2518190 article EN ACM Transactions on Programming Languages and Systems 2014-03-01

Maintaining variation in software is a difficult problem that poses serious challenges for the understanding and editing of artifacts. Although C preprocessor (CPP) often default tool used to introduce variability software, because its simplicity flexibility, it infamous obtrusive syntax has been blamed reducing comprehensibility maintainability software. In this paper, we address by developing prototype managing at source code level. We evaluate difference between our CPP with user study,...

10.1109/vlhcc.2011.6070391 article EN 2011-09-01

Highly configurable software often uses preprocessor annotations to handle variability. However, understanding, maintaining, and evolving code with such is difficult, mainly because a developer has work all variants at time. Dedicated methods tools that allow working on subset of could ease the engineering highly software. We investigate potential one kind tools: projection-based variation control systems. For systems we aim understand: (i) what end-user operations they need support, (ii)...

10.1109/icsme.2016.88 article EN 2016-10-01

Conditional compilation and software product line technologies make it possible to generate a huge number of different programs from single project. Typing each these individually is usually impossible due the sheer variants. Our previous work has addressed this problem with type system for variational lambda calculus (VLC), an extension basic constructs introducing organizing variation. Although our inference algorithm more efficient than brute-force strategy inferring types variant...

10.1145/2364527.2364535 article EN 2012-09-09

Variation is everywhere, and in the construction analysis of customizable software it paramount. In this context, there arises a need for variational data structures efficiently representing computing with related variants an underlying type. So far, have been explored developed ad hoc. This paper first attempt call to action systematic foundational research area. Research on will benefit not only software, but many other application domains that must cope variability. paper, we show how...

10.1145/2661136.2661143 article EN 2014-10-14

Editing the source code of variational software is complicated by presence variation annotations, such as #ifdef statements, and that only included in some configurations. When editing configurations not others, it would be easier to edit a simplified version includes we currently care about. In this paper, present projectional model for software. Using our approach, programmer can partially configure program, view code, then automatically update original, fully code. The based on an...

10.1145/2658761.2658766 article EN 2014-08-29

Variation is central to today's software development. There are two fundamental dimensions variation: in time refers the fact that exists numerous revisions typically replace each other (i.e., a newer version supersedes an older one). space differences among variants designed coexist parallel. analyses cope with variation product-line analyses) and others regression analyses). The goal of this work discuss which extent can be applied and, conversely, where variants. In addition, we...

10.1145/3307630.3342414 article EN 2019-08-08

Gradual typing allows programs to enjoy the benefits of both static and dynamic typing. While it is often desirable migrate a program from more dynamically-typed statically-typed or vice versa, gradual itself does not provide way facilitate this migration. This places burden on programmers who have manually add remove type annotations. Besides general challenge adding annotations dynamically typed code, there are subtle interactions between these in gradually code that exacerbate situation....

10.1145/3158103 article EN Proceedings of the ACM on Programming Languages 2017-12-27

Variability permeates software development to satisfy ever-changing requirements and mass-customization needs. A prime example is the Linux kernel, which employs C preprocessor specify a set of related but distinct kernel variants. To study, analyze, verify variational software, several formal languages have been proposed. For example, choice calculus has successfully applied for type checking symbolic execution configurable while other formalisms used model checking, change impact analysis,...

10.1145/3689747 article EN Proceedings of the ACM on Programming Languages 2024-10-08

We present a formal calculus for modeling and implementing variation in software. It unifies the compositional annotative approaches to feature implementation supports development of abstractions that can be used directly relate models their implementation. Since are complementary, enables implementers use best combination tools job focus on inherent interactions, rather than those introduced by biases representation. The also abstraction recurring variational patterns provides...

10.1145/2371401.2371421 article EN 2012-09-26

Data variations are prevalent in real-world applications. For example, software vendors handle the business requirements, conventions, and environmental settings of a product using hundreds features each combination which creates different version product. In database-backed software, database may have schema content. Variations value representation element dataset give rise to numerous variants these Users often would like express information needs over all such variants. vendor perform...

10.1145/3122831.3122839 article EN 2017-08-29

Abstract Gradual typing allows programs to enjoy the benefits of both static and dynamic typing. While it is often desirable migrate a program from more dynamically typed statically or vice versa, gradual itself does not provide way facilitate this migration. This places burden on programmers who have manually add remove type annotations. Besides general challenge adding annotations code, there are subtle interactions between these in gradually code that exacerbate situation. For example, be...

10.1017/s0956796822000089 article EN cc-by Journal of Functional Programming 2022-01-01

The principle of causation is fundamental to science and society has remained an active topic discourse in philosophy for over two millennia. Modern philosophers often rely on ``neuron diagrams'', a domain-specific visual language discussing reasoning about causal relationships the concept itself. In this paper we formalize syntax semantics neuron diagrams. We discuss existing algorithms identifying causes diagrams, show how these approaches are flawed, propose solutions problems. separate...

10.1109/vlhcc.2010.23 article EN 2010-09-01

Gradual typing allows programmers to use both static and dynamic in a single program. However, well-known problem with sound gradual is that the interactions between code can cause significant performance degradation. These pitfalls are hard predict resolve, discourage users from using features. For example, when migrating more statically typed program, often adding type annotation will trigger slowdown be resolved by annotations elsewhere, but since it not clear where additional must added,...

10.1145/3236793 article EN Proceedings of the ACM on Programming Languages 2018-07-30

We present a visual language for strategies in game theory, which has potential applications economics, social sciences, and general science education. This facilitates explanations of by visually representing the interaction playerspsila with execution. have utilized cognitive dimensions framework design phase recognized need new dimension ldquotraceabilityrdquo that considers how well can represent execution program. consider traceability interacts other demonstrate its use analyzing...

10.1109/vlhcc.2008.4639067 article EN Proceedings/Proceedings -- IEEE Symposium on Visual Languages and Human-Centric Computing 2008-09-01

In the context of software product lines, there is often a need to represent graphs containing variability. For example, extending traditional modeling techniques or program analyses variational requires corresponding notion graphs. this paper, we introduce general model and theoretical framework for discussing graph algorithms. Specifically, present an abstract syntax based on tagging succinctly representing other data types relevant algorithms, such as sets paths. We demonstrate how...

10.1145/2528265.2528270 article EN 2013-10-26

Continuing our research in explanation-oriented language design, we present a domain-specific visual for explaining probabilistic reasoning. Programs this language, called explanation objects, can be manipulated according to set of laws automatically generate many equivalent instances. We argue that increases the explanatory power by allowing user view problem from different perspectives.

10.1109/vlhcc.2009.5295309 article EN 2009-09-01

10.1016/j.jvlc.2013.01.001 article EN Journal of Visual Languages & Computing 2013-01-26

Many applications require not only representing variability in software and data, but also computing with it. To do so efficiently requires variational data structures that make the explicit underlying operations used to manipulate Variational have been developed ad hoc for many applications, there is little general understanding of how design them or what tradeoffs exist among them. In this paper, we strive a more systematic exploration analysis structure. We want know different decisions...

10.1145/3023956.3023966 article EN 2017-01-17

Variation is ubiquitous in software. Many applications can benefit from making this variation explicit, then manipulating and computing with it directly---a technique we call variational programming. This idea has been independently discovered several application domains, such as efficiently analyzing verifying software product lines, combining bounded symbolic model-checking, alternative privacy profiles. Although these domains share similar core problems, there are also many similarities...

10.4230/lipics.ecoop.2016.6 article EN European Conference on Object-Oriented Programming 2016-01-01
Coming Soon ...