Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- proceedingOctober 2024
SPLASH Companion '24: Companion Proceedings of the 2024 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity
It is my great pleasure to welcome you to the 39th ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity, being held in the vibrant city of Pasadena, California, from October 20th to October 25th,...
- research-articleMarch 2024
Interactive Abstract Interpretation with Demanded Summarization
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 46, Issue 1Article No.: 4, Pages 1–40https://doi.org/10.1145/3648441We consider the problem of making expressive, interactive static analyzers compositional. Such a technique could help bring the power of server-based static analyses to integrated development environments (IDEs), updating their results live as the code is ...
Practical Inference of Nullability Types
ESEC/FSE 2023: Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software EngineeringPages 1395–1406https://doi.org/10.1145/3611643.3616326NullPointerExceptions (NPEs), caused by dereferencing null, fre- quently cause crashes in Java programs. Pluggable type checking is highly effective in preventing Java NPEs. However, this approach is difficult to adopt for large, existing code bases, as ...
Inference of Resource Management Specifications
- Narges Shadab,
- Pritam Gharat,
- Shrey Tiwari,
- Michael D. Ernst,
- Martin Kellogg,
- Shuvendu K. Lahiri,
- Akash Lal,
- Manu Sridharan
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue OOPSLA2Article No.: 282, Pages 1705–1728https://doi.org/10.1145/3622858A resource leak occurs when a program fails to free some finite resource after it is no longer needed. Such leaks are a significant cause of real-world crashes and performance problems. Recent work proposed an approach to prevent resource leaks based ...
-
- research-articleOctober 2021
DisCo: Combining Disassemblers for Improved Performance
RAID '21: Proceedings of the 24th International Symposium on Research in Attacks, Intrusions and DefensesPages 148–161https://doi.org/10.1145/3471621.3471851Malware infects thousands of systems globally each day causing millions of dollars in damages. Which disassembler should a malware analyst choose in order to get the most accurate disassembly and be able to detect, analyze and defuse malware quickly? ...
Lightweight and modular resource leak verification
ESEC/FSE 2021: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software EngineeringPages 181–192https://doi.org/10.1145/3468264.3468576A resource leak occurs when a program allocates a resource, such as a socket or file handle, but fails to deallocate it. Resource leaks cause resource starvation, slowdowns, and crashes. Previous techniques to prevent resource leaks are either unsound, ...
- research-articleJune 2021
Demanded abstract interpretation
PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and ImplementationPages 282–295https://doi.org/10.1145/3453483.3454044We consider the problem of making expressive static analyzers interactive. Formal static analysis is seeing increasingly widespread adoption as a tool for verification and bug-finding, but even with powerful cloud infrastructure it can take minutes or ...
- research-articleNovember 2020
LiveDroid: identifying and preserving mobile app state in volatile runtime environments
Proceedings of the ACM on Programming Languages (PACMPL), Volume 4, Issue OOPSLAArticle No.: 160, Pages 1–30https://doi.org/10.1145/3428228Mobile operating systems, especially Android, expose apps to a volatile runtime environment. The app state that reflects past user interaction and system environment updates (e.g., battery status changes) can be destroyed implicitly, in response to ...
Verifying object construction
ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software EngineeringPages 1447–1458https://doi.org/10.1145/3377811.3380341In object-oriented languages, constructors often have a combination of required and optional formal parameters. It is tedious and inconvenient for programmers to write a constructor by hand for each combination. The multitude of constructors is error-...
- research-articleSeptember 2020
Piranha: reducing feature flag debt at uber
ICSE-SEIP '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in PracticePages 221–230https://doi.org/10.1145/3377813.3381350Feature flags are commonly used in mobile app development and can introduce technical debt related to deleting their usage from the codebase. This can adversely affect the overall reliability of the apps and increase their maintenance complexity. ...
Optimization of swift protocols
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue OOPSLAArticle No.: 164, Pages 1–27https://doi.org/10.1145/3360590Swift, 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; ...
- ArticleAugust 2019
IDAPro for IoT malware analysis?
CSET'19: Proceedings of the 12th USENIX Conference on Cyber Security Experimentation and TestPage 15Defending against the threat of IoT malware will require new techniques and tools. An important security capability, that precedes a number of security analyses, is the ability to reverse engineer IoT malware binaries effectively. A key question is ...
NullAway: practical type-based null safety for Java
ESEC/FSE 2019: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software EngineeringPages 740–750https://doi.org/10.1145/3338906.3338919NullPointerExceptions (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 ...
- research-articleSeptember 2018
Safe stream-based programming with refinement types
ASE '18: Proceedings of the 33rd ACM/IEEE International Conference on Automated Software EngineeringPages 565–576https://doi.org/10.1145/3238147.3238174In stream-based programming, data sources are abstracted as a stream of values that can be manipulated via callback functions. Stream-based programming is exploding in popularity, as it provides a powerful and expressive paradigm for handling ...
- research-articleOctober 2017
IOTA: a calculus for internet of things automation
Onward! 2017: Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and SoftwarePages 119–133https://doi.org/10.1145/3133850.3133860Programmatically controllable home devices are proliferating, ranging from lights, locks, and motion sensors to smart refrigerators, televisions, and cameras, giving end users unprecedented control over their environment. New domain-specific languages ...
- research-articleMay 2017
Repairing event race errors by controlling nondeterminism
ICSE '17: Proceedings of the 39th International Conference on Software EngineeringPages 289–299https://doi.org/10.1109/ICSE.2017.34Modern web applications are written in an event-driven style, in which event handlers execute asynchronously in response to user or system events. The nondeterminism arising from this programming style can lead to pernicious errors. Recent work focuses ...
- research-articleOctober 2016
Type inference for static compilation of JavaScript
- Satish Chandra,
- Colin S. Gordon,
- Jean-Baptiste Jeannin,
- Cole Schlesinger,
- Manu Sridharan,
- Frank Tip,
- Youngil Choi
OOPSLA 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 410–429https://doi.org/10.1145/2983990.2984017We present a type system and inference algorithm for a rich subset of JavaScript equipped with objects, structural subtyping, prototype inheritance, and first-class methods. The type system supports abstract and recursive objects, and is expressive ...
Also Published in:
ACM SIGPLAN Notices: Volume 51 Issue 10 - research-articleOctober 2016
A practical framework for type inference error explanation
OOPSLA 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsPages 781–799https://doi.org/10.1145/2983990.2983994Many languages have support for automatic type inference. But when inference fails, the reported error messages can be unhelpful, highlighting a code location far from the source of the problem. Several lines of work have emerged proposing error ...
Also Published in:
ACM SIGPLAN Notices: Volume 51 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