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-articleOctober 2015
Programming with enumerable sets of structures
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 37–56https://doi.org/10.1145/2814270.2814323We present an efficient, modular, and feature-rich framework for automated generation and validation of complex structures, suitable for tasks that explore a large space of structured values. Our framework is capable of exhaustive, incremental, ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
Versatile yet lightweight record-and-replay for Android
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 349–366https://doi.org/10.1145/2814270.2814320Recording and replaying the execution of smartphone apps is useful in a variety of contexts, from reproducing bugs to profiling and testing. Achieving effective record-and-replay is a balancing act between accuracy and overhead. On smartphones, the act ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
Finding deep compiler bugs via guided stochastic program mutation
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 386–399https://doi.org/10.1145/2814270.2814319Compiler testing is important and challenging. Equivalence Modulo Inputs (EMI) is a recent promising approach for compiler validation. It is based on mutating the unexecuted statements of an existing program under some inputs to produce new equivalent ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
A sound and optimal incremental build system with dynamic dependencies
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 89–106https://doi.org/10.1145/2814270.2814316Build systems are used in all but the smallest software projects to invoke the right build tools on the right files in the right order. A build system must be sound (after a build, generated files consistently reflect the latest source files) and ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
FlashMeta: a framework for inductive program synthesis
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 107–126https://doi.org/10.1145/2814270.2814310Inductive synthesis, or programming-by-examples (PBE) is gaining prominence with disruptive applications for automating repetitive tasks in end-user programming. However, designing, developing, and maintaining an effective industrial-quality inductive ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
Automating grammar comparison
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 183–200https://doi.org/10.1145/2814270.2814304We consider from a practical perspective the problem of checking equivalence of context-free grammars. We present techniques for proving equivalence, as well as techniques for finding counter-examples that establish non-equivalence. Among the key ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
Scalable race detection for Android applications
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 332–348https://doi.org/10.1145/2814270.2814303We present a complete end-to-end dynamic analysis system for finding data races in mobile Android applications. The capabilities of our system significantly exceed the state of the art: our system can analyze real-world application interactions in ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
Protocol-based verification of message-passing parallel programs
- Hugo A. López,
- Eduardo R. B. Marques,
- Francisco Martins,
- Nicholas Ng,
- César Santos,
- Vasco Thudichum Vasconcelos,
- Nobuko Yoshida
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 280–298https://doi.org/10.1145/2814270.2814302We present ParTypes, a type-based methodology for the verification of Message Passing Interface (MPI) programs written in the C programming language. The aim is to statically verify programs against protocol specifications, enforcing properties such as ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
RAIVE: runtime assessment of floating-point instability by vectorization
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 623–638https://doi.org/10.1145/2814270.2814299Floating point representation has limited precision and inputs to floating point programs may also have errors. Consequently, during execution, errors are introduced, propagated, and accumulated, leading to unreliable outputs. We call this the ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
SATCheck: SAT-directed stateless model checking for SC and TSO
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 20–36https://doi.org/10.1145/2814270.2814297Writing low-level concurrent code is well known to be challenging and error prone. The widespread deployment of multi-core hardware and the shift towards using low-level concurrent data structures has moved the problem into the mainstream. Finding bugs ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
ShamDroid: gracefully degrading functionality in the presence of limited resource access
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 316–331https://doi.org/10.1145/2814270.2814296Given a program whose functionality depends on access to certain external resources, we investigate the question of how to gracefully degrade functionality when a subset of those resources is unavailable. The concrete setting motivating this problem ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
Selective control-flow abstraction via jumping
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 163–182https://doi.org/10.1145/2814270.2814293We present jumping, a form of selective control-flow abstraction useful for improving the scalability of goal-directed static analyses. Jumping is useful for analyzing programs with complex control-flow such as event-driven systems. In such systems, ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015Distinguished Paper
Valor: efficient, software-only region conflict exceptions
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 241–259https://doi.org/10.1145/2814270.2814292Data races complicate programming language semantics, and a data race is often a bug. Existing techniques detect data races and define their semantics by detecting conflicts between synchronization-free regions (SFRs). However, such techniques either ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
Performance problems you can fix: a dynamic analysis of memoization opportunities
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 607–622https://doi.org/10.1145/2814270.2814290Performance bugs are a prevalent problem and recent research proposes various techniques to identify such bugs. This paper addresses a kind of performance problem that often is easy to address but difficult to identify: redundant computations that may ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
The chemical approach to typestate-oriented programming
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 917–934https://doi.org/10.1145/2814270.2814287We study a novel approach to typestate-oriented programming based on the chemical metaphor: state and operations on objects are molecules of messages and state transformations are chemical reactions. This approach allows us to investigate typestate in ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
AutoMO: automatic inference of memory order parameters for C/C++11
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 221–240https://doi.org/10.1145/2814270.2814286Many concurrent data structures are initially designed for the sequential consistency (SC) memory model. Developers often implement these data structures on real-world systems with weaker memory models by adding sufficient fences to ensure that their ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
Stateless model checking of event-driven applications
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 57–73https://doi.org/10.1145/2814270.2814282Modern event-driven applications, such as, web pages and mobile apps, rely on asynchrony to ensure smooth end-user experience. Unfortunately, even though these applications are executed by a single event-loop thread, they can still exhibit ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015Distinguished Paper
Accurate profiling in the presence of dynamic compilation
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 433–450https://doi.org/10.1145/2814270.2814281Many profilers based on bytecode instrumentation yield wrong results in the presence of an optimizing dynamic compiler, either due to not being aware of optimizations such as stack allocation and method inlining, or due to the inserted code disrupting ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10 - research-articleOctober 2015
Conditionally correct superoptimization
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 147–162https://doi.org/10.1145/2814270.2814278The aggressive optimization of heavily used kernels is an important problem in high-performance computing. However, both general purpose compilers and highly specialized tools such as superoptimizers often do not have sufficient static knowledge of ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 10