Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleJune 2021
Scooter & Sidecar: a domain-specific approach to writing secure database migrations
PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and ImplementationJune 2021, Pages 710–724https://doi.org/10.1145/3453483.3454072Web applications often handle large amounts of sensitive user data. Modern secure web frameworks protect this data by (1) using declarative languages to specify security policies alongside database schemas and (2) automatically enforcing these policies ...
- research-articleJune 2020
Generating correctness proofs with neural networks
MAPL 2020: Proceedings of the 4th ACM SIGPLAN International Workshop on Machine Learning and Programming LanguagesJune 2020, Pages 1–10https://doi.org/10.1145/3394450.3397466Foundational verification allows programmers to build software which has been empirically shown to have high levels of assurance in a variety of important domains. However, the cost of producing foundationally verified software remains prohibitively ...
Towards a verified range analysis for JavaScript JITs
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2020, Pages 135–150https://doi.org/10.1145/3385412.3385968We present VeRA, a system for verifying the range analysis pass in browser just-in-time (JIT) compilers. Browser developers write range analysis routines in a subset of C++, and verification developers write infrastructure to verify custom analysis ...
Finding root causes of floating point error
PLDI 2018: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2018, Pages 256–269https://doi.org/10.1145/3192366.3192411Floating-point arithmetic plays a central role in science, engineering, and finance by enabling developers to approximate real arithmetic. To address numerical issues in large floating-point applications, developers must identify root causes, which is ...
Also Published in:
ACM SIGPLAN Notices: Volume 53 Issue 4, April 2018- research-articleJune 2015
Interactive parser synthesis by example
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 565–574https://doi.org/10.1145/2737924.2738002Despite decades of research on parsing, the construction of parsers remains a painstaking, manual process prone to subtle bugs and pitfalls. We present a programming-by-example framework called Parsify that is able to synthesize a parser from input/...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6, June 2015 - research-articleJune 2014
Automating formal proofs for reactive systems
PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2014, Pages 452–462https://doi.org/10.1145/2594291.2594338Implementing systems in proof assistants like Coq and proving their correctness in full formal detail has consistently demonstrated promise for making extremely strong guarantees about critical software, ranging from compilers and operating systems to ...
Also Published in:
ACM SIGPLAN Notices: Volume 49 Issue 6, June 2014 - research-articleJune 2012
Verifying GPU kernels by test amplification
PLDI '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2012, Pages 383–394https://doi.org/10.1145/2254064.2254110We present a novel technique for verifying properties of data parallel GPU programs via test amplification. The key insight behind our work is that we can use the technique of static information flow to amplify the result of a single test execution over ...
Also Published in:
ACM SIGPLAN Notices: Volume 47 Issue 6, June 2012 - research-articleJune 2011
Taming wildcards in Java's type system
PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2011, Pages 614–627https://doi.org/10.1145/1993498.1993570Wildcards have become an important part of Java's type system since their introduction 7 years ago. Yet there are still many open problems with Java's wildcards. For example, there are no known sound and complete algorithms for subtyping (and ...
Also Published in:
ACM SIGPLAN Notices: Volume 46 Issue 6, June 2011 - research-articleJune 2010
Bringing extensibility to verified compilers
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 111–121https://doi.org/10.1145/1806596.1806611Verified compilers, such as Leroy's CompCert, are accompanied by a fully checked correctness proof. Both the compiler and proof are often constructed with an interactive proof assistant. This technique provides a strong, end-to-end correctness guarantee ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2009
Proving optimizations correct using parameterized program equivalence
PLDI '09: Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2009, Pages 327–337https://doi.org/10.1145/1542476.1542513Translation validation is a technique for checking that, after an optimization has run, the input and output of the optimization are equivalent. Traditionally, translation validation has been used to prove concrete, fully specified programs equivalent. ...
Also Published in:
ACM SIGPLAN Notices: Volume 44 Issue 6, June 2009 - research-articleJune 2009
Staged information flow for javascript
PLDI '09: Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2009, Pages 50–62https://doi.org/10.1145/1542476.1542483Modern websites are powered by JavaScript, a flexible dynamic scripting language that executes in client browsers. A common paradigm in such websites is to include third-party JavaScript code in the form of libraries or advertisements. If this code were ...
Also Published in:
ACM SIGPLAN Notices: Volume 44 Issue 6, June 2009 - research-articleJune 2008
Dataflow analysis for concurrent programs using datarace detection
PLDI '08: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2008, Pages 316–326https://doi.org/10.1145/1375581.1375620Dataflow analyses for concurrent programs differ from their single-threaded counterparts in that they must account for shared memory locations being overwritten by concurrent threads. Existing dataflow analysis techniques for concurrent programs ...
Also Published in:
ACM SIGPLAN Notices: Volume 43 Issue 6, June 2008 - ArticleJune 2007
Automatic inference of optimizer flow functions from semantic meanings
PLDI '07: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2007, Pages 135–145https://doi.org/10.1145/1250734.1250750Previous work presented a language called Rhodium for writing program analyses and transformations, in the form of declarative flow functions that propagate instances of user-defined dataflow fact schemas. Each dataflow fact schema specifies a semantic ...
Also Published in:
ACM SIGPLAN Notices: Volume 42 Issue 6, June 2007 - ArticleMay 2003
Automatically proving the correctness of compiler optimizations
PLDI '03: Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementationJune 2003, Pages 220–231https://doi.org/10.1145/781131.781156We describe a technique for automatically proving compiler optimizations sound, meaning that their transformations are always semantics-preserving. We first present a domain-specific language, called Cobalt, for implementing optimizations as guarded ...
Also Published in:
ACM SIGPLAN Notices: Volume 38 Issue 5, May 2003 - ArticleMay 2002
ESP: path-sensitive program verification in polynomial time
PLDI '02: Proceedings of the ACM SIGPLAN 2002 conference on Programming language design and implementationJune 2002, Pages 57–68https://doi.org/10.1145/512529.512538In this paper, we present a new algorithm for partial program verification that runs in polynomial time and space. We are interested in checking that a program satisfies a given temporal safety property. Our insight is that by accurately modeling only ...
Also Published in:
ACM SIGPLAN Notices: Volume 37 Issue 5, May 2002