Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
Synthesizing analytical SQL queries from computation demonstration
PLDI 2022: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and ImplementationPages 168–182https://doi.org/10.1145/3519939.3523712Analytical SQL is widely used in modern database applications and data analysis. However, its partitioning and grouping operators are challenging for novice users. Unfortunately, programming by example, shown effective on standard SQL, are less ...
- research-articleJune 2017
Gradual synthesis for static parallelization of single-pass array-processing programs
PLDI 2017: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 572–585https://doi.org/10.1145/3062341.3062382Parallelizing of software improves its effectiveness and productivity. To guarantee correctness, the parallel and serial versions of the same code must be formally verified to be equivalent. We present a novel approach, called GRASSP, that ...
Also Published in:
ACM SIGPLAN Notices: Volume 52 Issue 6 - research-articleJune 2017
Synthesizing highly expressive SQL queries from input-output examples
PLDI 2017: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 452–466https://doi.org/10.1145/3062341.3062365SQL is the de facto language for manipulating relational data. Though powerful, many users find it difficult to write SQL queries due to highly expressive constructs.
While using the programming-by-example paradigm to help users write SQL queries is ...
Also Published in:
ACM SIGPLAN Notices: Volume 52 Issue 6 - research-articleJune 2014
A lightweight symbolic virtual machine for solver-aided host languages
PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 530–541https://doi.org/10.1145/2594291.2594340Solver-aided domain-specific languages (SDSLs) are an emerging class of computer-aided programming systems. They ease the construction of programs by using satisfiability solvers to automate tasks such as verification, debugging, synthesis, and non-...
Also Published in:
ACM SIGPLAN Notices: Volume 49 Issue 6 - research-articleJune 2014
Chlorophyll: synthesis-aided compiler for low-power spatial architectures
- Phitchaya Mangpo Phothilimthana,
- Tikhon Jelvis,
- Rohin Shah,
- Nishant Totla,
- Sarah Chasins,
- Rastislav Bodik
PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 396–407https://doi.org/10.1145/2594291.2594339We developed Chlorophyll, a synthesis-aided programming model and compiler for the GreenArrays GA144, an extremely minimalist low-power spatial architecture that requires partitioning the program into fragments of no more than 256 instructions and 64 ...
Also Published in:
ACM SIGPLAN Notices: Volume 49 Issue 6 - research-articleJune 2008
Sketching concurrent data structures
PLDI '08: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 136–148https://doi.org/10.1145/1375581.1375599We describe PSketch, a program synthesizer that helps programmers implement concurrent data structures. The system is based on the concept of sketching, a form of synthesis that allows programmers to express their insight about an implementation as a ...
Also Published in:
ACM SIGPLAN Notices: Volume 43 Issue 6 - ArticleJune 2007
DITTO: automatic incrementalization of data structure invariant checks (in Java)
PLDI '07: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 310–319https://doi.org/10.1145/1250734.1250770We present DITTO, an automatic incrementalizer for dynamic, side-effect-free data structure invariant checks. Incrementalization speeds up the execution of a check by reusing its previous executions, checking the invariant anew only the changed parts of ...
Also Published in:
ACM SIGPLAN Notices: Volume 42 Issue 6 - ArticleJune 2007
Sketching stencils
PLDI '07: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 167–178https://doi.org/10.1145/1250734.1250754Performance of stencil computations can be significantly improved through smart implementations that improve memory locality, computation reuse, or parallelize the computation. Unfortunately, efficient implementations are hard to obtain because they ...
Also Published in:
ACM SIGPLAN Notices: Volume 42 Issue 6 - ArticleJune 2007
Thin slicing
PLDI '07: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 112–122https://doi.org/10.1145/1250734.1250748Program slicing systematically identifies parts of a program relevant to a seed statement. Unfortunately, slices of modern programs often grow too large for human consumption. We argue that unwieldy slices arise primarily from an overly broad definition ...
Also Published in:
ACM SIGPLAN Notices: Volume 42 Issue 6 - ArticleJune 2006
Refinement-based context-sensitive points-to analysis for Java
PLDI '06: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 387–400https://doi.org/10.1145/1133981.1134027We present a scalable and precise context-sensitive points-to analysis with three key properties: (1) filtering out of unrealizable paths, (2) a context-sensitive heap abstraction, and (3) a context-sensitive call graph. Previous work [21] has shown ...
Also Published in:
ACM SIGPLAN Notices: Volume 41 Issue 6 - ArticleJune 2005
Programming by sketching for bit-streaming programs
PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementationPages 281–294https://doi.org/10.1145/1065010.1065045This paper introduces the concept of programming with sketches, an approach for the rapid development of high-performance applications. This approach allows a programmer to write clean and portable reference code, and then obtain a high-quality ...
Also Published in:
ACM SIGPLAN Notices: Volume 40 Issue 6 - ArticleJune 2005
Jungloid mining: helping to navigate the API jungle
PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementationPages 48–61https://doi.org/10.1145/1065010.1065018Reuse of existing code from class libraries and frameworks is often difficult because APIs are complex and the client code required to use the APIs can be hard to write. We observed that a common scenario is that the programmer knows what type of object ...
Also Published in:
ACM SIGPLAN Notices: Volume 40 Issue 6 - ArticleJune 2005
A serializability violation detector for shared-memory server programs
PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementationPages 1–14https://doi.org/10.1145/1065010.1065013We aim to improve reliability of multithreaded programs by proposing a dynamic detector that detects potentially erroneous program executions and their causes. We design and evaluate a Serializability Violation Detector (SVD) that has two unique goals: (...
Also Published in:
ACM SIGPLAN Notices: Volume 40 Issue 6 - ArticleMay 2003
Debugging temporal specifications with concept analysis
PLDI '03: Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementationPages 182–195https://doi.org/10.1145/781131.781152Program verification tools (such as model checkers and static analyzers) can find many errors in programs. These tools need formal specifications of correct program behavior, but writing a correct specification is difficult, just as writing a correct ...
Also Published in:
ACM SIGPLAN Notices: Volume 38 Issue 5 - ArticleMay 2000
ABCD: eliminating array bounds checks on demand
PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementationPages 321–333https://doi.org/10.1145/349299.349342To guarantee typesafe execution, Java and other strongly typed languages require bounds checking of array accesses. Because array-bounds checks may raise exceptions, they block code motion of instructions with side effects, thus preventing many useful ...
Also Published in:
ACM SIGPLAN Notices: Volume 35 Issue 5