Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Yiu Wai Chow

dblp:338/5448 · DBLP profile ↗
← Back
2ranked-venue papers
2as first author
2since 2021 · last 2024
0000-0003-4503-5699ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 2 · 2 first-author · 2 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Debugging and program repair · 42% Program analysis · 37% Programming languages and type systems · 21%
Network and information security
1 paper
Blockchain and cryptocurrency security · 100%

Topics — the 6 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Debugging and program repair
automated program repair
0.812024
PyTy: Repairing Static Type Errors in Python · ICSE 2024
Programming languages and type systems › type systems
gradual typing
0.812024
PyTy: Repairing Static Type Errors in Python · ICSE 2024
Debugging and program repair › automated program repair
type error repair
0.812024
PyTy: Repairing Static Type Errors in Python · ICSE 2024
Program analysis
static analysis
0.712023
Beware of the Unexpected: Bimodal Taint Analysis · ISSTA 2023
Program analysis › static analysis
taint analysis
0.712023
Beware of the Unexpected: Bimodal Taint Analysis · ISSTA 2023
Blockchain and cryptocurrency security › smart contract security
vulnerability detection
0.212023
Beware of the Unexpected: Bimodal Taint Analysis · ISSTA 2023

Methods — techniques the papers use, named apart from their topics

natural language processing · 1.3machine learning · 1.3neural model · 0.8cross-lingual transfer learning · 0.8
YearPublicationVenuePosition
2024 PyTy: Repairing Static Type Errors in Python
abstract
Gradual typing enables developers to annotate types of their own choosing, offering a flexible middle ground between no type annotations and a fully statically typed language. As more and more code bases get type-annotated, static type checkers detect an increasingly large number of type errors. Unfortunately, fixing these errors requires manual effort, hampering the adoption of gradual typing in practice. This paper presents PyTy, an automated program repair approach targeted at statically detectable type errors in Python. The problem of repairing type errors deserves specific attention because it exposes particular repair patterns, offers a warning message with hints about where and how to apply a fix, and because gradual type checking serves as an automatic way to validate fixes. We addresses this problem through three contributions: (i) an empirical study that investigates how developers fix Python type errors, showing a diverse set of fixing strategies with some recurring patterns; (ii) an approach to automatically extract type error fixes, which enables us to create a dataset of 2,766 error-fix pairs from 176 GitHub repositories, named PyTyDefects; (iii) the first learning-based repair technique for fixing type errors in Python. Motivated by the relative data scarcity of the problem, the neural model at the core of PyTy is trained via cross-lingual transfer learning. Our evaluation shows that PyTy offers fixes for ten frequent categories of type errors, successfully addressing 85.4% of 281 real-world errors. This effectiveness outperforms state-of-the-art large language models asked to repair type errors (by 2.1x) and complements a previous technique aimed at type errors that manifest at runtime. Finally, 20 out of 30 pull requests with PyTy-suggested fixes have been merged by developers, showing the usefulness of PyTy in practice.
Yiu Wai Chow, Luca Di Grazia, Michael Pradel
ICSE1
2023 Beware of the Unexpected: Bimodal Taint Analysis
abstract
Static analysis is a powerful tool for detecting security vulnerabilities and other programming problems. Global taint tracking, in particular, can spot vulnerabilities arising from complicated data flow across multiple functions. However, precisely identifying which flows are problematic is challenging, and sometimes depends on factors beyond the reach of pure program analysis, such as conventions and informal knowledge. For example, learning that a parameter name of an API function locale ends up in a file path is surprising and potentially problematic. In contrast, it would be completely unsurprising to find that a parameter command passed to an API function execaCommand is eventually interpreted as part of an operating-system command. This paper presents Fluffy, a bimodal taint analysis that combines static analysis, which reasons about data flow, with machine learning, which probabilistically determines which flows are potentially problematic. The key idea is to let machine learning models predict from natural language information involved in a taint flow, such as API names, whether the flow is expected or unexpected, and to inform developers only about the latter. We present a general framework and instantiate it with four learned models, which offer different trade-offs between the need to annotate training data and the accuracy of predictions. We implement Fluffy on top of the CodeQL analysis framework and apply it to 250K JavaScript projects. Evaluating on five common vulnerability types, we find that Fluffy achieves an F1 score of 0.85 or more on four of them across a variety of datasets.
Yiu Wai Chow, Max Schäfer, Michael Pradel
ISSTA1