Zhoulai Fu

ORCID: 0000-0003-2073-0564
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Software Testing and Debugging Techniques
  • Parallel Computing and Optimization Techniques
  • Formal Methods in Verification
  • Logic, programming, and type systems
  • Numerical Methods and Algorithms
  • Software Reliability and Analysis Research
  • Teaching and Learning Programming
  • Advanced Malware Detection Techniques
  • Security and Verification in Computing
  • Low-power high-performance VLSI design
  • Spectroscopy and Chemometric Analyses
  • Software Engineering Research
  • Neural Networks and Applications
  • Embedded Systems Design Techniques
  • Distributed systems and fault tolerance
  • Anomaly Detection Techniques and Applications
  • Digital Media Forensic Detection
  • Neural Networks and Reservoir Computing
  • Music and Audio Processing
  • Model Reduction and Neural Networks
  • Advancements in Semiconductor Devices and Circuit Design
  • CCD and CMOS Imaging Sensors
  • Software System Performance and Reliability
  • Logic, Reasoning, and Knowledge

SUNY Korea
2022-2025

Virginia Tech
2025

Stony Brook University
2025

IT University of Copenhagen
2018-2020

University of California, Davis
2015-2017

Institut national de recherche en informatique et en automatique
2014

Université de Rennes
2014

IMDEA Software
2013-2014

Institut de Recherche en Informatique et Systèmes Aléatoires
2013

This paper studies an extension of O'Hearn's incorrectness logic (IL) that allows backwards reasoning. IL in its current form does not generically permit We show this can be mitigated by extending with underspecification. The resulting combines underspecification (the result, or postcondition, only needs to formulate constraints over relevant variables) underapproximation (it focus on fewer than all the paths). prove soundness proof system, as well completeness for a defined subset...

10.1145/3704850 article EN Proceedings of the ACM on Programming Languages 2025-01-07

This paper tackles the important, difficult problem of detecting program inputs that trigger large floating-point errors in numerical code. It introduces a novel, principled dynamic analysis leverages mathematically rigorously analyzed condition numbers for atomic operations, which we call conditions , to effectively guide search errors. Compared with existing approaches, our work based on has several distinctive benefits: (1) it does not rely high-precision implementations act as...

10.1145/3371128 article EN Proceedings of the ACM on Programming Languages 2019-12-20

Data flow testing (DFT) focuses on the of data through a program. Despite its higher fault-detection ability over other structural techniques, practical DFT remains significant challenge. This paper tackles this challenge by introducing hybrid framework: (1) The core our framework is based dynamic symbolic execution (DSE), enhanced with novel guided path search to improve performance, and (2) we systematically cast problem as reach checking in software model complement DSE-based approach,...

10.5555/2818754.2818834 article EN International Conference on Software Engineering 2015-05-16

Data flow testing (DFT) focuses on the of data through a program. Despite its higher fault-detection ability over other structural techniques, practical DFT remains significant challenge. This paper tackles this challenge by introducing hybrid framework: (1) The core our framework is based dynamic symbolic execution (DSE), enhanced with novel guided path search to improve performance, and (2) we systematically cast problem as reach checking in software model complement DSE-based approach,...

10.1109/icse.2015.81 article EN 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering 2015-05-01

Achieving high code coverage is essential in testing, which gives us confidence quality. Testing floating-point usually requires painstaking efforts handling constraints, e.g., symbolic execution. This paper turns the challenge of testing into opportunity applying unconstrained programming --- mathematical solution for calculating function minimum points over entire search space. Our core insight to derive a representing from program, any whose test input guaranteed exercise new branch...

10.1145/3062341.3062383 article EN 2017-06-14

Numerical code uses floating-point arithmetic and necessarily suffers from roundoff truncation errors. Error analysis is the process to quantify such uncertainty in solution a problem. Forward error backward are two popular paradigms of analysis. more intuitive has been explored automated by programming languages (PL) community. In contrast, although preferred numerical analysts foundation for stability, it less known unexplored PL To fill gap, this paper presents an empower both application...

10.1145/2814270.2814317 article EN 2015-10-23

Lifting binaries to a higher-level representation is an essential step for decompilation, binary verification, patching and security analysis. In this paper, we present the first approach provably overapproximative x86-64 lifting. A stripped verified certain sanity properties such as return address integrity calling convention adherence. Establishing these allows be lifted that contains overapproximation of all possible execution paths binary. The disassembled instructions, reconstructed...

10.1145/3519939.3523702 article EN 2022-06-02

This work studies the connection between problem of analyzing floating-point code and that function minimization. It formalizes this as a reduction theory, where semantics program is measured generalized metric, called weak distance, which faithfully captures any given analysis objective. theoretically guaranteed minimizing distance (e.g., via mathematical optimization) solves underlying problem. theory provides general framework for numerical code. Two important separate analyses from...

10.1145/3314221.3314632 article EN 2019-06-07

A dependency bug is a software fault that manifests itself when accessing an unavailable asset. Dependency bugs are pervasive and we all hate them. This paper presents case study of in the Robot Operating System (ROS), applying mixed methods: qualitative investigation 78 reports, quantitative analysis 1354 ROS reports against 19553 top 30 GitHub projects, design three linters evaluated on 406 packages.

10.1145/3377813.3381364 article EN 2020-06-27

Achieving high code coverage is essential in testing, which gives us confidence quality. Testing floating-point usually requires painstaking efforts handling constraints, e.g., symbolic execution. This paper turns the challenge of testing into opportunity applying unconstrained programming --- mathematical solution for calculating function minimum points over entire search space. Our core insight to derive a representing from program, any whose test input guaranteed exercise new branch...

10.1145/3140587.3062383 article EN ACM SIGPLAN Notices 2017-06-14

This paper presents Mathematical Execution (ME), a new, unified approach for testing numerical code. The key idea is to (1) capture the desired objective via representing function and (2) transform automated problem minimization of function. be solved mathematical optimization. main feature ME that it directs input space exploration by only executing function, thus avoiding static or symbolic reasoning about program semantics, which particularly challenging To illustrate this feature, we...

10.48550/arxiv.1610.01133 preprint EN other-oa arXiv (Cornell University) 2016-01-01

Numerical code uses floating-point arithmetic and necessarily suffers from roundoff truncation errors. Error analysis is the process to quantify such uncertainty in solution a problem. Forward error backward are two popular paradigms of analysis. more intuitive has been explored automated by programming languages (PL) community. In contrast, although preferred numerical analysts foundation for stability, it less known unexplored PL To fill gap, this paper presents an empower both application...

10.1145/2858965.2814317 article EN ACM SIGPLAN Notices 2015-10-23

Lowering the precision of neural networks from prevalent 32-bit has long been considered harmful to performance, despite gain in space and time. Many works propose various techniques implement half-precision networks, but none study pure 16-bit settings. This paper investigates unexpected performance over classification tasks. We present extensive experimental results that favorably compare networks' those models. In addition, a theoretical analysis efficiency models is provided, which...

10.48550/arxiv.2301.12809 preprint EN other-oa arXiv (Cornell University) 2023-01-01

Reducing the number of bits needed to encode weights and activations neural networks is highly desirable as it speeds up their training inference time while reducing memory consumption. It unsurprising that considerable attention has been drawn developing employ lower-precision computation. This includes IEEE 16-bit, Google bfloat16, 8-bit, 4-bit floating-point or fixed-point, 2-bit, various mixed-precision algorithms. Out these low-precision formats, 16-bit stands out due its universal...

10.48550/arxiv.2305.10947 preprint EN other-oa arXiv (Cornell University) 2023-01-01

Achieving high code coverage is essential in testing, which gives us confidence quality. Testing floating-point usually requires painstaking efforts handling constraints, e.g., symbolic execution. This paper turns the challenge of testing into opportunity applying unconstrained programming --- mathematical solution for calculating function minimum points over entire search space. Our core insight to derive a representing from program, any whose test input guaranteed exercise new branch...

10.48550/arxiv.1704.03394 preprint EN other-oa arXiv (Cornell University) 2017-01-01

10.36288/roscon2018-900290 article EN cc-by-nc-nd 2018-09-29

10.36288/roscon2018-900834 article EN cc-by-nc-nd 2018-09-29
Coming Soon ...