Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
Towards Effective Static Type-Error Detection for Python
ASE '24: Proceedings of the 39th IEEE/ACM International Conference on Automated Software EngineeringPages 1808–1820https://doi.org/10.1145/3691620.3695545In this experience paper, we design, implement, and evaluate a new static type-error detection tool for Python. To build a practical tool, we first collected and analyzed 68 real-world type errors gathered from 20 open-source projects. This empirical ...
Effective Unit Test Generation for Java Null Pointer Exceptions
ASE '24: Proceedings of the 39th IEEE/ACM International Conference on Automated Software EngineeringPages 1044–1056https://doi.org/10.1145/3691620.3695484In this experience paper, we share our experience on enhancing automatic unit test generation to more effectively find Java null pointer exceptions (NPEs). NPEs are among the most common and critical errors in Java applications. However, as we ...
- research-articleOctober 2024
Quantum Probabilistic Model Checking for Time-Bounded Properties
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 291, Pages 557–587https://doi.org/10.1145/3689731Probabilistic model checking (PMC) is a verification technique for analyzing the properties of probabilistic systems. However, existing techniques face challenges in verifying large systems with high accuracy. PMC struggles with state explosion, where ...
- research-articleOctober 2024
Statistical Testing of Quantum Programs via Fixed-Point Amplitude Amplification
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 276, Pages 140–164https://doi.org/10.1145/3689716We present a new technique for accelerating quantum program testing. Given a quantum circuit with an input/output specification, our goal is to check whether executing the program on the input state produces the expected output. In quantum computing, ...
PL4XGL: A Programming Language Approach to Explainable Graph Learning
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 234, Pages 2148–2173https://doi.org/10.1145/3656464In this article, we present a new, language-based approach to explainable graph learning. Though graph neural networks (GNNs) have shown impressive performance in various graph learning tasks, they have severe limitations in explainability, hindering ...
-
SmartFix: Fixing Vulnerable Smart Contracts by Accelerating Generate-and-Verify Repair using Statistical Models
ESEC/FSE 2023: Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software EngineeringPages 185–197https://doi.org/10.1145/3611643.3616341We present SmartFix, a new technique for repairing vulnerable smart contracts. There is an urgent need to develop automatic bug-repair techniques for smart contracts, as smart contracts are safety-critical software and manual debugging is burdensome and ...
- research-articleSeptember 2023
Optimizing Homomorphic Evaluation Circuits by Program Synthesis and Time-bounded Exhaustive Search
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 45, Issue 3Article No.: 16, Pages 1–37https://doi.org/10.1145/3591622We present a new and general method for optimizing homomorphic evaluation circuits. Although fully homomorphic encryption (FHE) holds the promise of enabling safe and secure third party computation, building FHE applications has been challenging due to ...
- research-articleAugust 2023
V1SCAN: discovering 1-day vulnerabilities in reused C/C++ open-source software components using code classification techniques
SEC '23: Proceedings of the 32nd USENIX Conference on Security SymposiumArticle No.: 366, Pages 6541–6556We present V1SCAN, an effective approach for discovering 1-day vulnerabilities in reused C/C++ open-source software (OSS) components. Reusing third-party OSS has many benefits, but can put the entire software at risk owing to the vulnerabilities they ...
DIVER: Oracle-Guided SMT Solver Testing with Unrestricted Random Mutations
ICSE '23: Proceedings of the 45th International Conference on Software EngineeringPages 2224–2236https://doi.org/10.1109/ICSE48619.2023.00187We present DIVER, a novel technique for effectively finding critical bugs in SMT solvers. Ensuring the correctness of SMT solvers is becoming increasingly important as many applications use solvers as a foundational basis. In response, several ...
Learning to Boost Disjunctive Static Bug-Finders
ICSE '23: Proceedings of the 45th International Conference on Software EngineeringPages 1097–1109https://doi.org/10.1109/ICSE48619.2023.00099We present a new learning-based approach for accelerating disjunctive static bug-finders. Industrial static bug-finders usually perform disjunctive analysis, differentiating program states along different execution paths of a program. Such path-...
Learning Seed-Adaptive Mutation Strategies for Greybox Fuzzing
ICSE '23: Proceedings of the 45th International Conference on Software EngineeringPages 384–396https://doi.org/10.1109/ICSE48619.2023.00043In this paper, we present a technique for learning seed-adaptive mutation strategies for fuzzers. The performance of mutation-based fuzzers highly depends on the mutation strategy that specifies the probability distribution of selecting mutation ...
Modular Component-Based Quantum Circuit Synthesis
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue OOPSLA1Article No.: 87, Pages 348–375https://doi.org/10.1145/3586039In this article, we present a novel method for synthesizing quantum circuits from user-supplied components. Given input-output state vectors and component quantum gates, our synthesizer aims to construct a quantum circuit that implements the provided ...
PyTER: effective program repair for Python type errors
ESEC/FSE 2022: Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software EngineeringPages 922–934https://doi.org/10.1145/3540250.3549130We present PyTER, an automated program repair (APR) technique for Python type errors. Python developers struggle with type error exceptions that are prevalent and difficult to fix. Despite the importance, however, automatically repairing type errors ...
NPEX: repairing Java null pointer exceptions without tests
ICSE '22: Proceedings of the 44th International Conference on Software EngineeringPages 1532–1544https://doi.org/10.1145/3510003.3510186We present NPEX, a new technique for repairing Java null pointer exceptions (NPEs) without tests. State-of-the-art NPE repair techniques rely on test suites written by developers for patch validation. Unfortunately, however, those are typically future ...
SymTuner: maximizing the power of symbolic execution by adaptively tuning external parameters
ICSE '22: Proceedings of the 44th International Conference on Software EngineeringPages 2068–2079https://doi.org/10.1145/3510003.3510185We present SymTuner, a novel technique to automatically tune external parameters of symbolic execution. Practical symbolic execution tools have important external parameters (e.g., symbolic arguments, seed input) that critically affect their performance. ...
Return of CFA: call-site sensitivity can be superior to object sensitivity even for object-oriented programs
Proceedings of the ACM on Programming Languages (PACMPL), Volume 6, Issue POPLArticle No.: 58, Pages 1–29https://doi.org/10.1145/3498720In this paper, we challenge the commonly-accepted wisdom in static analysis that object sensitivity is superior to call-site sensitivity for object-oriented programs. In static analysis of object-oriented programs, object sensitivity has been established ...
Context-aware and data-driven feedback generation for programming assignments
ESEC/FSE 2021: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software EngineeringPages 328–340https://doi.org/10.1145/3468264.3468598Recently, various techniques have been proposed to automatically provide personalized feedback on programming exercises. The cutting edge of which is the data-driven approaches that leverage a corpus of existing correct programs and repair incorrect ...
- research-articleNovember 2021
Centris: A Precise and Scalable Approach for Identifying Modified Open-Source Software Reuse
ICSE '21: Proceedings of the 43rd International Conference on Software EngineeringPages 860–872https://doi.org/10.1109/ICSE43902.2021.00083Open-source software (OSS) is widely reused as it provides convenience and efficiency in software development. Despite evident benefits, unmanaged OSS components can introduce threats, such as vulnerability propagation and license violation. ...
- proceedingNovember 2020
TAPAS 2020: Proceedings of the 11th ACM SIGPLAN International Workshop on Tools for Automatic Program Analysis
In recent years, a wide range of static analysis tools have emerged, some of which are currently in industrial use or are well beyond the advanced prototype level. Many impressive practical results have been obtained, which allow complex properties to be ...