English
Related papers

Related papers: Extended Paper: API-driven Program Synthesis for T…

200 papers

Static analyzers can reason about the properties and behaviors of programs and detect various issues without executing them. Hence, they should extract the necessary information to understand the analyzed program well. Annotation has been a…

Software Engineering · Computer Science 2024-02-23 Huaien Zhang , Yu Pei , Shuyun Liang , Shin Hwei Tan

Python's dynamic type system, while offering significant flexibility and expressiveness, poses substantial challenges for static analysis and automated tooling, particularly in unannotated or partially annotated codebases. Existing type…

Software Engineering · Computer Science 2026-04-08 Ali Aman , Muhammad Asaduzzaman , Shaowei Wang

Designing a static analysis is generally a substantial undertaking, requiring significant expertise in both program analysis and the domain of the program analysis, and significant development resources. As a result, most program analyses…

Programming Languages · Computer Science 2018-10-17 Colin S. Gordon

Context: The rise of Artificial Intelligence (AI) in software engineering has led to the development of AI-powered test automation tools, promising improved efficiency, reduced maintenance effort, and enhanced defect-detection. However, a…

Software Engineering · Computer Science 2025-05-02 Vahid Garousi , Nithin Joy , Zafar Jafarov , Alper Buğra Keleş , Sevde Değirmenci , Ece Özdemir , Ryan Zarringhalami

Large Language Models (LLMs) are increasingly used to build autonomous agents that perform complex tasks with external tools, often exposed through APIs in enterprise systems. Direct use of these APIs is difficult due to the complex input…

A gradual type system allows developers to declare certain types to be enforced by the compiler (i.e., statically typed), while leaving other types to be enforced via runtime checks (i.e., dynamically typed). When runtime checks fail,…

Programming Languages · Computer Science 2025-03-03 Felipe Bañados Schwerter , Ronald Garcia , Reid Holmes , Karim Ali

Gradual typing combines static and dynamic typing in the same program. One would hope that the performance in a gradually typed language would range between that of a dynamically typed language and a statically typed language. Existing…

Programming Languages · Computer Science 2018-02-20 Andre Kuhlenschmidt , Deyaaeldeen Almahallawi , Jeremy G. Siek

As we reach exascale, production High Performance Computing (HPC) systems are increasing in complexity. These systems now comprise multiple heterogeneous computing components (CPUs and GPUs) utilized through diverse, often vendor-specific…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-04-15 Solomon Bekele , Aurelio Vivas , Thomas Applencourt , Servesh Muralidharan , Bryce Allen , Kazutomo Yoshiiinst , Swann Perarnau , Brice Videau

Mobile applications have become an essential part of our daily lives, making ensuring their quality an important activity. Graphical User Interface (GUI) testing is a quality assurance method that has frequently been used for mobile apps.…

Software Engineering · Computer Science 2025-09-11 Chenhui Cui , Tao Li , Junjie Wang , Chunyang Chen , Dave Towey , Rubing Huang

RESTful APIs are central in developing interoperable, modular, and maintainable software systems in enterprises today. Also, it is essential to support system evolution, service interoperability, and governance across organizational…

Software Engineering · Computer Science 2025-11-25 Edwin Sundberg , Thea Ekmark , Workneh Yilma Ayele

The correctness of a compiler affects the correctness of every program written in the language, and thus must be thoroughly evaluated. Existing automatic compiler testing methods however either rely on weak oracles (e.g., a program behaves…

Software Engineering · Computer Science 2024-01-03 Guoliang Dong , Jun Sun , Richard Schumi , Bo Wang , Xinyu Wang

Static analyzers are tool sets which are proving to be indispensable to modern programmers. These enable the programmers to detect possible errors and security defects present in the current code base within the implementation phase of the…

Software Engineering · Computer Science 2019-05-14 Eljose E Sajan , Yunpeng Zhang , Liang-Chieh Cheng

We present a method for synthesizing recursive functions that provably satisfy a given specification in the form of a polymorphic refinement type. We observe that such specifications are particularly suitable for program synthesis for two…

Programming Languages · Computer Science 2016-04-22 Nadia Polikarpova , Ivan Kuraj , Armando Solar-Lezama

Harnessing the power of dependently typed languages can be difficult. Programmers must manually construct proofs to produce well-typed programs, which is not an easy task. In particular, migrating code to these languages is challenging.…

Programming Languages · Computer Science 2021-07-13 Joseph Eremondi , Ronald Garcia , Éric Tanter

Content composition vulnerabilities remain among the most prevalent and persistent classes of security weakness in deployed software. Prior mitigations, including developer training, static analysis tools, and domain-specific template…

Programming Languages · Computer Science 2026-05-19 Mike Samuel , Tom Palmer , Shaw Summa , Robert Grayson

Static analysis is the analysis of a program without executing it, usually carried out by an automated tool. Symbolic execution is a popular static analysis technique used both in program verification and in bug detection software. It works…

Software Engineering · Computer Science 2024-08-06 Gabor Horvath , Reka Kovacs , Zoltan Porkolab

Large language models trained on code have shown great potential to increase productivity of software developers. Several execution-based benchmarks have been proposed to evaluate functional correctness of model-generated code on simple…

Python type annotations enable static type checking, but most code remains untyped because manual annotation is time-consuming and tedious. Past approaches to automatic type inference fall short: static methods struggle with dynamic…

Programming Languages · Computer Science 2026-03-12 Juan Altmayer Pizzorno , Emery D. Berger

Proof-oriented programs mix computational content with proofs of program correctness. However, the human effort involved in programming and proving is still substantial, despite the use of Satisfiability Modulo Theories (SMT) solvers to…

Programming Languages · Computer Science 2024-09-06 Saikat Chakraborty , Gabriel Ebner , Siddharth Bhat , Sarah Fakhoury , Sakina Fatima , Shuvendu Lahiri , Nikhil Swamy

Tile-based programming frameworks are increasingly adopted to write high-performance GPU kernels in domains such as deep learning and scientific computing. While these frameworks enhance productivity and hardware utilization, their…

Software Engineering · Computer Science 2026-05-20 Ravishka Rathnasuriya , Zihe Song , Nidhi Majoju , Aaryaa Moharir , Tingxi Li , Wei Yang , Tao Xie