Skip to footer

[vc_row gap=”4″][vc_column width=”1/3″][vc_widget_sidebar sidebar_id=”td-abstract”][/vc_column][vc_column width=”2/3″]

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

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

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

Page 1 of 1
[/vc_column][/vc_row]