2019
DOI: 10.1145/3290327
|View full text |Cite
|
Sign up to set email alerts
|

Live functional programming with typed holes

Abstract: Live programming environments aim to provide programmers (and sometimes audiences) with continuous feedback about a program's dynamic behavior as it is being edited. The problem is that programming languages typically assign dynamic meaning only to programs that are complete, i.e. syntactically well-formed and free of type errors. Consequently, live feedback presented to the programmer exhibits temporal or perceptive gaps. This paper confronts this "gap problem" from type-theoretic first principles by developi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
33
0

Year Published

2019
2019
2024
2024

Publication Types

Select...
3
3
2

Relationship

1
7

Authors

Journals

citations
Cited by 49 publications
(33 citation statements)
references
References 106 publications
0
33
0
Order By: Relevance
“…Then, the case expression in unJustÐwe write unJust to refer to its two branchesÐscrutinizes the hole closure. The form of the constructor application has not yet been determined, so evaluation łpausesž by returning the indeterminate [Omar et al 2019] result case ([−] ?? 5 ) unJust, which records the fact that, when the scrutinee resumes to a constructor head Nothing or Just, evaluation of the case will proceed down the appropriate branch.…”
Section: Deriving Examples From Assertionsmentioning
confidence: 99%
See 2 more Smart Citations
“…Then, the case expression in unJustÐwe write unJust to refer to its two branchesÐscrutinizes the hole closure. The form of the constructor application has not yet been determined, so evaluation łpausesž by returning the indeterminate [Omar et al 2019] result case ([−] ?? 5 ) unJust, which records the fact that, when the scrutinee resumes to a constructor head Nothing or Just, evaluation of the case will proceed down the appropriate branch.…”
Section: Deriving Examples From Assertionsmentioning
confidence: 99%
“…Live evaluation is adapted from Omar et al [2019] to our setting and is not a technical contribution of our work. Live unevaluation is the key novel mechanism thatÐtogether with live evaluationÐ enables us to łcombine sketching with Myth-style synthesisž (hence the name Smyth).…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Live programming is an area of research whose history dates back to the seminal work of Hancock [7] that introduced many important concepts in live programming. Since then, a variety of live environments has been developed for various languages, including Python [6,10], Java [3], Javascript [17,1], Lisp [2] and ML-like languages [16]. As the feld developed, several essays were published on categorizing different kinds of liveness [19,21], and several studies explored the benefts of live programming [22,13].…”
Section: Related Workmentioning
confidence: 99%
“…As a result, the programmer gains better 'situation awareness' of what a program means while constructing the program. There are other desirable forms of situation awareness, for example the ability to execute incomplete programs offered by Hazel [27], and in general it would be interesting to develop more mechanisms to improve the programmer's situation awareness.…”
Section: :24mentioning
confidence: 99%