English
Related papers

Related papers: Hazelnut: A Bidirectionally Typed Structure Editor…

200 papers

This paper develops a dynamic semantics for incomplete functional programs, starting from the static semantics developed in recent work on Hazelnut. We model incomplete functional programs as expressions with holes, with empty holes…

Programming Languages · Computer Science 2018-11-22 Cyrus Omar , Ian Voysey , Ravi Chugh , Matthew A. Hammer

In programming, better tools often yield better results. For that, modern programming environments offer mechanisms to allow for their extensibility. The closer those tools are to the code, the easier it is for programmers to map the…

Programming Languages · Computer Science 2026-03-09 Tom Beckmann , Christoph Thiede , Jens Lincke , Robert Hirschfeld

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…

Programming Languages · Computer Science 2017-03-28 Cyrus Omar , Ian Voysey , Michael Hilton , Joshua Sunshine , Claire Le Goues , Jonathan Aldrich , Matthew A. Hammer

Structure editors operate directly on a program's syntactic tree structure. At first glance, this allows for the exciting possibility that such an editor could enforce correctness properties: programs could be well-formed and sometimes even…

Programming Languages · Computer Science 2024-11-27 Jacob Prinz , Henry Blanchette , Leonidas Lampropoulos

Many universities have courses and projects revolving around compiler or interpreter implementation as part of their degree programmes in computer science. In such teaching activities, tool support can be highly beneficial. While there are…

Programming Languages · Computer Science 2022-09-21 Georgian-Vlad Saioc , Hans Hüttel

While most neural generative models generate outputs in a single pass, the human creative process is usually one of iterative building and refinement. Recent work has proposed models of editing processes, but these mostly focus on editing…

Machine Learning · Computer Science 2021-03-08 Ziyu Yao , Frank F. Xu , Pengcheng Yin , Huan Sun , Graham Neubig

Alloy is well known a declarative modeling language. A key strength of Alloy is its scenario finding toolset, the Analyzer, which allows users to explore all valid scenarios that adhere to the model's constraints up to a user-provided…

Software Engineering · Computer Science 2024-06-17 Mohammad Nurullah Patwary , Ana Jovanovic , Allison Sullivan

Software developers frequently refactor code. Often, a single logical refactoring change involves changing multiple related components in a source base such as renaming each occurrence of a variable or function. While many code editors can…

Software Engineering · Computer Science 2022-10-21 Philippe Voinov , Manuel Rigger , Zhendong Su

As the modern tool of choice for question answering, large language models (LLMs) are expected to deliver answers with up-to-date knowledge. To achieve such ideal question-answering systems, locating and then editing outdated knowledge in…

Computation and Language · Computer Science 2024-09-17 Baolong Bi , Shenghua Liu , Yiwei Wang , Lingrui Mei , Hongcheng Gao , Junfeng Fang , Xueqi Cheng

Liquid Haskell is an extension to the Haskell programming language that adds support for refinement types: data types augmented with SMT-decidable logical predicates that refine the set of values that can inhabit a type. Furthermore, Liquid…

Programming Languages · Computer Science 2021-10-12 Patrick Redmond , Gan Shen , Lindsey Kuper

User defined recursive types are a fundamental feature of modern functional programming languages like Haskell, Clean, and the ML family of languages. Properties of programs defined by recursion on the structure of recursive types are…

Programming Languages · Computer Science 2013-12-11 James Caldwell

Large language models (LLMs) have reshaped the landscape of program synthesis. However, contemporary LLM-based code completion systems often hallucinate broken code because they lack appropriate context, particularly when working with…

Programming Languages · Computer Science 2024-10-14 Andrew Blinn , Xiang Li , June Hyung Kim , Cyrus Omar

Students in programming languages and formal logic courses often struggle with constructing rule-based derivation trees due to the complexity of applying inference rules, the lack of immediate feedback, and the manual effort required for…

Programming Languages · Computer Science 2025-06-13 Zhiyao Zhong , Cyrus Omar

We present a structure-aware code editor, called Deuce, that is equipped with direct manipulation capabilities for invoking automated program transformations. Compared to traditional refactoring environments, Deuce employs a direct…

Software Engineering · Computer Science 2018-02-06 Brian Hempel , Justin Lubin , Grace Lu , Ravi Chugh

Structure or projectional editors are a well-studied concept among researchers and some practitioners. They have the huge advantage of preventing syntax and in some cases type errors, and aid the discovery of syntax by users unfamiliar with…

Human-Computer Interaction · Computer Science 2021-07-20 Maryam Hosseinkord , Gurleen Dulai , Narges Osmani , Christopher K. Anand

Taxonomies represent hierarchical relations between entities, frequently applied in various software modeling and natural language processing (NLP) activities. They are typically subject to a set of structural constraints restricting their…

Computation and Language · Computer Science 2023-09-06 Boqi Chen , Fandi Yi , Dániel Varró

Programming physicists use, as all programmers, arrays, lists, tuples, records, etc., and this requires some change in their thought patterns while converting their formulae into some code, since the "data structures" operated upon, while…

Data Structures and Algorithms · Computer Science 2011-09-06 Jerzy Karczmarczuk

We describe a method for utilizing the known structure of input data to make learning more efficient. Our work is in the domain of programming languages, and we use deep neural networks to do program analysis. Computer programs include a…

Neural and Evolutionary Computing · Computer Science 2019-04-01 Zehra Sura , Tong Chen , Hyojin Sung

Code editors provide essential services that help developers understand, navigate, and modify programs. However, these services often fail in the presence of syntax errors. Existing syntax error recovery techniques, like panic mode and…

Programming Languages · Computer Science 2025-09-15 David Moon , Andrew Blinn , Thomas J. Porter , Cyrus Omar

We address the problem of predicting edit completions based on a learned model that was trained on past edits. Given a code snippet that is partially edited, our goal is to predict a completion of the edit for the rest of the snippet. We…

Programming Languages · Computer Science 2020-10-13 Shaked Brody , Uri Alon , Eran Yahav
‹ Prev 1 2 3 10 Next ›