Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation 2012
DOI: 10.1145/2254064.2254098
|View full text |Cite
|
Sign up to set email alerts
|

Type-directed completion of partial expressions

Abstract: Modern programming frameworks provide enormous libraries arranged in complex structures, so much so that a large part of modern programming is searching for APIs that "surely exist" somewhere in an unfamiliar part of the framework. We present a novel way of phrasing a search for an unknown API: the programmer simply writes an expression leaving holes for the parts they do not know. We call these expressions partial expressions. We present an efficient algorithm that produces likely completions ordered by a ran… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
19
0

Year Published

2012
2012
2022
2022

Publication Types

Select...
5
3
1

Relationship

1
8

Authors

Journals

citations
Cited by 71 publications
(19 citation statements)
references
References 24 publications
0
19
0
Order By: Relevance
“…This is a strongly principal form of code inference: it cannot guess wrong. Some forms of code completion and synthesis have been proposed (Perelman, Gulwani, Ball, and Grossman 2012;Gvero, Kuncak, Kuraj, and Piskac 2013), to be suggested interactively and approved by the programmer. Here, the strong restriction of uniqueness would make it suitable for a code elaboration pass at compile-time: it is of different nature.…”
Section: Why Unique?mentioning
confidence: 99%
See 1 more Smart Citation
“…This is a strongly principal form of code inference: it cannot guess wrong. Some forms of code completion and synthesis have been proposed (Perelman, Gulwani, Ball, and Grossman 2012;Gvero, Kuncak, Kuraj, and Piskac 2013), to be suggested interactively and approved by the programmer. Here, the strong restriction of uniqueness would make it suitable for a code elaboration pass at compile-time: it is of different nature.…”
Section: Why Unique?mentioning
confidence: 99%
“…This approach meshes very well with our view, especially in systems with explicit equality proofs between terms, where features that grow the implicit environment could require proofs from the user that unicity is preserved.) Smart completion and program synthesis Type-directed program synthesis has seen sophisticated work in the recent years, notably Perelman, Gulwani, Ball, and Grossman (2012), Gvero, Kuncak, Kuraj, and Piskac (2013). Type information is used to fill missing holes in partial expressions given by the users, typically among the many choices proposed by a large software library.…”
Section: Counting Inhabitants Broda and Damasmentioning
confidence: 99%
“…Quick Fix Scout allows developers to remove compilation errors faster, but it leverages the existing quick fix recommendations in Eclipse which does not take into account change histories. Perelman et al [8] defined a language of partial expressions that makes type-directed predictions to help developers find method names based on the given arguments, arguments based on the method name, or to complete binary expressions such as assignment statements. Similarly, Duala-Ekoko and Robillard [9] developed a tool called API Explorer that help developers discover API methods or types that are inaccessible from a given API type, by leveraging the structural relationships between API elements.…”
Section: Prototype Toolmentioning
confidence: 99%
“…Similarly, Hou and Pletcher [4] use historical data while extending recommendations by performing type-hierarchy filtering and grouping recommendations by functional roles. Perelman et al [9] use partial expressions to generate well-typed, complete expressions to improve and complement Visual Studio's IntelliSense (auto-complete). These three approaches use heuristics -either historical data or types -to improve recommendation quality.…”
Section: Related Workmentioning
confidence: 99%