Skip to footer

Results for Programming Systems

Fully Automated HTML and JavaScript Rewriting for Constructing a Self‐healing Web Proxy

T. Durieux, Y. Hamadi, M. Monperrus
Over the last few years, the complexity of web applications has increased to provide more dynamic web applications to users. The drawback of this complexity is the growing number of errors in the front‐end applications. In this paper, we present an approach to provide self‐healing for the web. […] [PDF]
Software Testing Verification and Reliability 30(2), March 2018

Optimization of Swift Protocols

R. Barik, M. Sridharan, M. K. Ramanathan, M. Chabbi
Swift, an increasingly-popular programming language, advocates the use of protocols, which define a set of required methods and properties for conforming types. Protocols are commonly used in Swift programs for abstracting away implementation details; e.g., in a large industrial app from Uber, they are heavily used to enable mock objects for unit testing. Unfortunately, heavy use of protocols can result in significant performance overhead. […] [PDF]
Object-Oriented Programming, Systems, Languages & Applications (OOPSLA), 2019

NullAway: Practical Type-Based Null Safety for Java

S. Banerjee, L. Clapp, M. Sridharan
NullPointerExceptions (NPEs) are a key source of crashes in modern Java programs. Previous work has shown how such errors can be prevented at compile time via code annotations and pluggable type checking. However, such systems have been difficult to deploy on large-scale software projects, due to significant build-time overhead and / or a high annotation burden. This paper presents NullAway, a new type-based null safety checker for Java that overcomes these issues. […] [PDF]
The ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (FSE), 2019

Keeping master green at scale

S. Ananthanarayanan, M. S. Ardekani, D. Haenikel, B. Varadarajan, S. Soriano, D. Patel, A.-R. Adl-Tabatabai
This paper presents the design and implementation of SubmitQueue. It guarantees an always green master branch at scale: all build steps (e.g., compilation, unit tests, UI tests) successfully execute for every commit point. SubmitQueue has been in production for over a year, and can scale to thousands of daily commits to giant monolithic repositories. […] [PDF]
European Conference on Computer Systems (EuroSys), 2019

Profiling Android Applications with Nanoscope

L. Liu, L. Takamine, A. Welc
User-level tooling support for profiling Java applications executing on modern JVMs for desktop and server is quite mature – from Open JDK’s Java Flight Recorder enabling low-overhead CPU and heap profiling, through third-party async profilers (e.g. async-profiler, honest-profiler), to Open JDK’s support for low-overhead tracking of allocation call sites. […] [PDF]
Virtual Machines and Language Implementations (VMIL), 2018

Pyro: Deep Universal Probabilistic Programming

E. Bingham, J. Chen, M. Jankowiak, F. Obermeyer, N. Pradhan, T. Karaletsos, R. Singh, P. Szerlip, P. Horsfall, N. Goodman
Pyro is a probabilistic programming language built on Python as a platform for developing advanced probabilistic models in AI research. […] [PDF]
Journal of Machine Learning Research (JMLR), 2018

Safe stream-based programming with refinement types

B. Stein, L. Clapp, M. Sridharan, B.-Y. E. Chang
A type-based approach that can statically prove the thread-safety of UI accesses in stream-based software. We implement the system as an annotation-based Java typechecker for Android programs built upon the popular ReactiveX. We evaluate on 8 open-source apps and report on our experience applying the typechecker to two much larger apps from the Uber. […] [PDF]
IEEE/ACM International Conference on Automated Software Engineering (ASE), 2018

Synthesizing Entity Matching Rules by Examples

R. Singh, V. Vamsikrishna Meduri, A. Elmagarmid, S. Madden, P. Papotti, Jo. Quiané-Ruiz, A. Solar-Lezama, N. Tang
Entity matching (EM) is a critical part of data integration. We study how to synthesize entity matching rules from positive-negative matching examples. The core of our solution is program synthesis, a powerful tool to automatically generate rules (or programs) that satisfy a given highlevel specification, via a predefined grammar. […] [PDF]
Proceedings of the VLDB Endowment (PVLDB) 11(2): 189-202, 2017

Page 1 of 1