6 results on '"Hammer, Matthew"'
Search Results
2. Toward Semantic Foundations for Program Editors
- Author
-
Omar, Cyrus, Voysey, Ian, Hilton, Michael, Sunshine, Joshua, Goues, Claire Le, Aldrich, Jonathan, and Hammer, Matthew A.
- Subjects
FOS: Computer and information sciences ,000 Computer science, knowledge, general works ,Computer Science - Programming Languages ,020204 information systems ,Computer Science ,0202 electrical engineering, electronic engineering, information engineering ,020207 software engineering ,02 engineering and technology ,Programming Languages (cs.PL) - Abstract
Programming language definitions assign formal meaning to complete programs. Programmers, however, spend a substantial amount of time interacting with incomplete programs -- programs with holes, type inconsistencies and binding inconsistencies -- using tools like program editors and live programming environments (which interleave editing and evaluation). Semanticists have done comparatively little to formally characterize (1) the static and dynamic semantics of incomplete programs; (2) the actions available to programmers as they edit and inspect incomplete programs; and (3) the behavior of editor services that suggest likely edit actions to the programmer based on semantic information extracted from the incomplete program being edited, and from programs that the system has encountered in the past. As such, each tool designer has largely been left to develop their own ad hoc heuristics. This paper serves as a vision statement for a research program that seeks to develop these "missing" semantic foundations. Our hope is that these contributions, which will take the form of a series of simple formal calculi equipped with a tractable metatheory, will guide the design of a variety of current and future interactive programming tools, much as various lambda calculi have guided modern language designs. Our own research will apply these principles in the design of Hazel, an experimental live lab notebook programming environment designed for data science tasks. We plan to co-design the Hazel language with the editor so that we can explore concepts such as edit-time semantic conflict resolution mechanisms and mechanisms that allow library providers to install library-specific editor services., The 2nd Summit on Advances in Programming Languages (SNAPL 2017)
- Published
- 2017
3. Programming Language Techniques for Incremental and Reactive Computing (Dagstuhl Seminar 16402)
- Author
-
Demetrescu, Camil, Erdweg, Sebastian, Hammer, Matthew A., and Krishnamurthi, Shriram
- Subjects
000 Computer science, knowledge, general works ,Computer Science - Abstract
Incremental computations are those that process input changes faster than naive computation that runs from scratch, and reactive computations consist of interactive behavior that varies over time. Due to the importance and prevalence of incremental, reactive systems, ad hoc variants of incremental and reactive computation are ubiquitous in modern software systems. In response to this reality, the PL research community has worked for several decades to advance new languages for systems that interface with a dynamically-changing environment. In this space, researchers propose new general-purpose languages and algorithms to express and implement efficient, dynamic behavior, in the form of incremental and reactive language systems. While these research lines continue to develop successfully, this work lacks a shared community that synthesizes a collective discussion about common motivations, alternative techniques, current results and future challenges. To overcome this lack of community, this seminar will work towards building one, by strengthening existing research connections and by forging new ones. Developing a shared culture is critical to the future advancement of incremental and reactive computing in modern PL research, and in turn, this PL research is critical to developing the efficient, understandable interactive systems of the future.
- Published
- 2017
- Full Text
- View/download PDF
4. Refinement types for precisely named cache locations
- Author
-
Hammer, Matthew A., Dunfield, Jana, Economou, Dimitrios J., and Narasimhamurthy, Monal
- Subjects
FOS: Computer and information sciences ,Computer Science - Programming Languages ,Programming Languages (cs.PL) - Abstract
Many programming language techniques for incremental computation employ programmer-specified names for cached information. At runtime, each name identifies a "cache location" for a dynamic data value or a sub-computation; in sum, these cache location choices guide change propagation and incremental (re)execution. We call a cache location name precise when it identifies at most one value or subcomputation; we call all other names imprecise, or ambiguous. At a minimum, cache location names must be precise to ensure that change propagation works correctly; yet, reasoning statically about names in incremental programs remains an open problem. As a first step, this paper defines and solves the precise name problem, where we verify that incremental programs with explicit names use them precisely. To do so, we give a refinement type and effect system, and prove it sound (every well-typed program uses names precisely). We also demonstrate that this type system is expressive by verifying example programs that compute over efficient representations of incremental sequences and sets. Beyond verifying these programs, our type system also describes their dynamic naming strategies, e.g., for library documentation purposes.
- Published
- 2016
5. miniAdapton: A Minimal Implementation of Incremental Computation in Scheme
- Author
-
Fisher, Dakota, Hammer, Matthew A., Byrd, William, and Might, Matthew
- Subjects
FOS: Computer and information sciences ,Computer Science - Programming Languages ,Programming Languages (cs.PL) - Abstract
We describe a complete Scheme implementation of miniAdapton, which implements the core functionality of the Adapton system for incremental computation (also known as self-adjusting computation). Like Adapton, miniAdapton allows programmers to safely combine mutation and memoization. miniAdapton is built on top of an even simpler system, microAdapton. Both miniAdapton and microAdapton are designed to be easy to understand, extend, and port to host languages other than Scheme. We also present adapton variables, a new interface in Adapton for variables intended to represent expressions.
- Published
- 2016
6. The Random Access Zipper: Simple, Purely-Functional Sequences
- Author
-
Headley, Kyle and Hammer, Matthew A.
- Subjects
FOS: Computer and information sciences ,Computer Science - Programming Languages ,TheoryofComputation_COMPUTATIONBYABSTRACTDEVICES ,Computer Science - Data Structures and Algorithms ,Data Structures and Algorithms (cs.DS) ,Programming Languages (cs.PL) - Abstract
We introduce the Random Access Zipper (RAZ), a simple, purely-functional data structure for editable sequences. A RAZ combines the structure of a zipper with that of a tree: like a zipper, edits at the cursor require constant time; by leveraging tree structure, relocating the edit cursor in the sequence requires logarithmic time. While existing data structures provide these time bounds, none do so with the same simplicity and brevity of code as the RAZ. The simplicity of the RAZ provides the opportunity for more programmers to extend the structure to their own needs, and we provide some suggestions for how to do so.
- Published
- 2016
- Full Text
- View/download PDF
Catalog
Discovery Service for Jio Institute Digital Library
For full access to our library's resources, please sign in.