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

Jialu Zhang 0002

dblp:38/1392-2 · DBLP profile ↗
← Back
5ranked-venue papers
4as first author
5since 2021 · last 2024
0009-0003-8193-0719ORCID · conflict

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

Software engineering, systems software and programming languages · 5 · 4 first-author · 5 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
4 papers
Debugging and program repair · 35% Software maintenance and evolution · 33% Program synthesis and code generation · 14%
Interdisciplinary, comprehensive, and emerging computing
2 papers
Computing education · 100%

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

TopicWeightPapersLastEvidence papers
Program synthesis and code generation
code generation with language models
0.922024
PyDex: Repairing Bugs in Introductory Python Assignments using LLMs · Proc. ACM Program. Lang. 2024
Using pre-trained language models to resolve textual and semantic merge conflicts (experience paper) · ISSTA 2022
Debugging and program repair
automated program repair
0.812024
PyDex: Repairing Bugs in Introductory Python Assignments using LLMs · Proc. ACM Program. Lang. 2024
Debugging and program repair › automated program repair
LLM-based program repair
0.812024
PyDex: Repairing Bugs in Introductory Python Assignments using LLMs · Proc. ACM Program. Lang. 2024
Debugging and program repair › automated program repair
repair of introductory programming assignments
0.812024
PyDex: Repairing Bugs in Introductory Python Assignments using LLMs · Proc. ACM Program. Lang. 2024
Computing education › programming education
automated feedback
0.612022
Automated Feedback Generation for Competition-Level Code · ASE 2022
Computing education
programming education
0.612022
Automated Feedback Generation for Competition-Level Code · ASE 2022
Compilers and program optimization
code generation
0.612022
Automated Feedback Generation for Competition-Level Code · ASE 2022
Software maintenance and evolution › software merging
merge conflict resolution
0.612022
Using pre-trained language models to resolve textual and semantic merge conflicts (experience paper) · ISSTA 2022
Software maintenance and evolution
software merging
0.612022
Using pre-trained language models to resolve textual and semantic merge conflicts (experience paper) · ISSTA 2022
Software maintenance and evolution › software configuration
misconfiguration detection
0.512021
Static detection of silent misconfigurations with deep interaction analysis · Proc. ACM Program. Lang. 2021
Software maintenance and evolution
software configuration
0.512021
Static detection of silent misconfigurations with deep interaction analysis · Proc. ACM Program. Lang. 2021
Program analysis
static analysis
0.512021
Static detection of silent misconfigurations with deep interaction analysis · Proc. ACM Program. Lang. 2021
Computing education › programming education
programming assignment feedback
0.212024
PyDex: Repairing Bugs in Introductory Python Assignments using LLMs · Proc. ACM Program. Lang. 2024
Computing education › programming education
competitive programming
0.212022
Automated Feedback Generation for Competition-Level Code · ASE 2022
Software testing
configuration testing
0.112021
Static detection of silent misconfigurations with deep interaction analysis · Proc. ACM Program. Lang. 2021

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

program chunking · 1.5multi-modal prompting · 1.5large language model · 1.5iterative querying · 1.5few-shot selection · 1.5test case generation · 1.1pre-trained language model · 0.6k-shot learning · 0.6GPT-3 · 0.6control flow analysis · 0.5
YearPublicationVenuePosition
2024 PyDex: Repairing Bugs in Introductory Python Assignments using LLMs
abstract
Students often make mistakes in their introductory programming assignments as part of their learning process. Unfortunately, providing custom repairs for these mistakes can require a substantial amount of time and effort from class instructors. Automated program repair (APR) techniques can be used to synthesize such fixes. Prior work has explored the use of symbolic and neural techniques for APR in the education domain. Both types of approaches require either substantial engineering efforts or large amounts of data and training. We propose to use a large language model trained on code, such as Codex (a version of GPT), to build an APR system -- PyDex -- for introductory Python programming assignments. Our system can fix both syntactic and semantic mistakes by combining multi-modal prompts, iterative querying, test-case-based selection of few-shots, and program chunking. We evaluate PyDex on 286 real student programs and compare to three baselines, including one that combines a state-of-the-art Python syntax repair engine, BIFI, and a state-of-the-art Python semantic repair engine for student assignments, Refactory. We find that PyDex can fix more programs and produce smaller patches on average.
Jialu Zhang 0002, José Cambronero, Sumit Gulwani, Vu Le 0002, Ruzica Piskac, Gustavo Soares, Gust Verbruggen
Proc. ACM Program. Lang.1
2022 Using pre-trained language models to resolve textual and semantic merge conflicts (experience paper)
abstract
Program merging is standard practice when developers integrate their individual changes to a common code base. When the merge algorithm fails, this is called a merge conflict. The conflict either manifests as a textual merge conflict where the merge fails to produce code, or as a semantic merge conflict where the merged code results in compiler errors or broken tests. Resolving these conflicts for large code projects is expensive because it requires developers to manually identify the sources of conflicts and correct them. In this paper, we explore the feasibility of automatically repairing merge conflicts (both textual and semantic) using k-shot learning with pre-trained large neural language models (LM) such as GPT-3. One of the challenges in leveraging such language models is fitting the examples and the queries within a small prompt (2048 tokens). We evaluate LMs and k-shot learning for both textual and semantic merge conflicts for Microsoft Edge. Our results are mixed: on one-hand, LMs provide the state-of-the-art (SOTA) performance on semantic merge conflict resolution for Edge compared to earlier symbolic approaches; on the other hand, LMs do not yet obviate the benefits of special purpose domain-specific languages (DSL) for restricted patterns for program synthesis.
Jialu Zhang 0002, Todd Mytkowicz, Mike Kaufman, Ruzica Piskac, Shuvendu K. Lahiri
ISSTA1
2022 Automated Feedback Generation for Competition-Level Code
abstract
Competitive programming has become a popular way for programmers to test their skills. Competition-level programming problems are challenging in nature, and participants often fail to solve the problem on their first attempt. Some online platforms for competitive programming allow programmers to practice on competition-level problems, and the standard feedback for an incorrect practice submission is the first test case that the submission fails. Often, the failed test case does not provide programmers with enough information to resolve the errors in their code, and they abandon the problem after making several more unsuccessful attempts.
Jialu Zhang 0002, John C. Kolesar, Hanyuan Shi, Ruzica Piskac
ASE1
2022 Learning CI Configuration Correctness for Early Build Feedback
abstract
Continuous Integration (CI) allows developers to check whether their code can build successfully and pass tests across various system environments with every commit. To use a CI platform, a developer must provide configuration files within a code repository to specify build conditions. Incorrect configuration settings lead to CI build failures, which can take hours to run, wasting valuable developer time and delaying product release dates. Debugging CI configurations is a slow and error-prone process. The only way to check the correctness of CI configurations is to push a commit and wait for the build result. We present VeriCI, the first system for localizing CI configuration errors at the code level. VeriCI runs as a static analysis tool, before the developer sends the build request to the CI server. Our key insight is that the commit history and the corresponding build histories available in CI environments can be used both for build error prediction and build error localization. We leverage the build history as a labeled dataset to automatically derive customized rules describing correct CI configurations, using supervised machine learning techniques. To more accurately identify root causes, we train a neural network that filters out constraints that are less likely to be connected to the root cause of build failure. We evaluate VeriCI on real world data from GitHub and achieve 91% accuracy of predicting a build failure and correctly identify the root cause in 75% of cases. We also conducted a between-subjects user study with 20 software developers, showing that VeriCI significantly helps users in identifying and fixing errors in CI.
Mark Santolucito, Jialu Zhang 0002, Ennan Zhai, Jürgen Cito, Ruzica Piskac
SANER2
2021 Static detection of silent misconfigurations with deep interaction analysis
abstract
The behavior of large systems is guided by their configurations: users set parameters in the configuration file to dictate which corresponding part of the system code is executed. However, it is often the case that, although some parameters are set in the configuration file, they do not influence the system runtime behavior, thus failing to meet the user’s intent. Moreover, such misconfigurations rarely lead to an error message or raising an exception. We introduce the notion of silent misconfigurations which are prohibitively hard to identify due to (1) lack of feedback and (2) complex interactions between configurations and code. This paper presents ConfigX, the first tool for the detection of silent misconfigurations. The main challenge is to understand the complex interactions between configurations and the code that they affected. Our goal is to derive a specification describing non-trivial interactions between the configuration parameters that lead to silent misconfigurations. To this end, ConfigX uses static analysis to determine which parts of the system code are associated with configuration parameters. ConfigX then infers the connections between configuration parameters by analyzing their associated code blocks. We design customized control- and data-flow analysis to derive a specification of configurations. Additionally, we conduct reachability analysis to eliminate spurious rules to reduce false positives. Upon evaluation on five real-world datasets across three widely-used systems, Apache, vsftpd, and PostgreSQL, ConfigX detected more than 2200 silent misconfigurations. We additionally conducted a user study where we ran ConfigX on misconfigurations reported on user forums by real-world users. ConfigX easily detected issues and suggested repairs for those misconfigurations. Our solutions were accepted and confirmed in the interaction with the users, who originally posted the problems.
Jialu Zhang 0002, Ruzica Piskac, Ennan Zhai, Tianyin Xu
Proc. ACM Program. Lang.1