English
Related papers

Related papers: Inferring Concise Specifications of APIs

200 papers

In mainstream programming languages such as Java, a common way to enable concurrency is to manually introduce explicit concurrency constructs such as multi-threading. In multi-threaded programs, managing synchronization between threads is a…

Software Engineering · Computer Science 2019-08-01 Ayesha Sadiq , Yuan-Fang Li , Li Li , Sea Ling , Ijaz Ahmed

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

Automated testing plays a crucial role in ensuring software security. It heavily relies on formal specifications to validate the correctness of the system behavior. However, the main approach to defining these formal specifications is…

Software Engineering · Computer Science 2025-04-03 Hui Li , Zhen Dong , Siao Wang , Hui Zhang , Liwei Shen , Xin Peng , Dongdong She

Contract assertions, such as preconditions, postconditions, and invariants, play a crucial role in software development, enabling applications such as program verification, test generation, and debugging. Despite their benefits, the…

Software Engineering · Computer Science 2026-04-14 Agustín Balestra , Agustín Nolasco , Facundo Molina , Diego Garbervetsky , Renzo Degiovanni , Nazareno Aguirre

Pluggable type systems allow programmers to extend the type system of a programming language to enforce semantic properties defined by the programmer. Pluggable type systems are difficult to deploy in legacy codebases because they require…

Software Engineering · Computer Science 2025-10-06 Kazi Amanul Islam Siddiqui , Martin Kellogg

APIs are central to modern software development, yet composing new APIs from large libraries is difficult due to the exponential search space; traditional component-based synthesis relies on costly exploration and hand-crafted…

Software Engineering · Computer Science 2025-10-01 Hua Zhong , Shan Jiang , Sarfraz Khurshid

Agentic AI systems can now generate code with remarkable fluency, but a fundamental question remains: \emph{does the generated code actually do what the user intended?} The gap between informal natural language requirements and precise…

Software Engineering · Computer Science 2026-03-19 Shuvendu K. Lahiri

In program synthesis there is a well-known trade-off between concise and strong specifications: if a specification is too verbose, it might be harder to write than the program; if it is too weak, the synthesised program might not match the…

Programming Languages · Computer Science 2020-01-30 Andreea Costea , Amy Zhu , Nadia Polikarpova , Ilya Sergey

In the past years, software reverse engineering dealt with source code understanding. Nowadays, it is levered to software requirements abstract level, supported by feature model notations, language independent, and simpler than the source…

Software Engineering · Computer Science 2019-04-30 Anas Alhamwieh , Said Ghoul

Context: The complexity of modern safety-critical systems in industries keep on increasing due to the rising number of features and functionalities. This calls for formal methods in order to entrust confidence in such systems. Nevertheless,…

Software Engineering · Computer Science 2021-08-17 Arut Prakash Kaleeswaran , Arne Nordmann , Thomas Vogel , Lars Grunske

Refinement types decorate types with assertions that enable automatic verification. Like assertions, refinements are limited to binders that are in scope, and hence, cannot express higher-order specifications. Ghost variables circumvent…

Programming Languages · Computer Science 2021-05-06 Anish Tondwalkar , Matthew Kolosick , Ranjit Jhala

Smart contracts are computer programs running on blockchains to implement Decentralized Applications. The absence of contract specifications hinders routine tasks, such as contract understanding and testing. In this work, we propose a…

Software Engineering · Computer Science 2025-04-30 Ye Liu , Yixuan Liu , Yi Li , Cyrille Artho

APIs (Application Programming Interfaces) are reusable software libraries and are building blocks for modern rapid software development. Previous research shows that programmers frequently share and search for reviews of APIs on the…

Software Engineering · Computer Science 2022-01-28 chengran Yang , Bowen Xu , Junaed younus Khan , Gias Uddin , Donggyun Han , Zhou Yang , David Lo

This paper proposes a new obfuscation technique of a communication protocol that is aimed at making the reverse engineering of the protocol more complex. The obfuscation is based on the transformation of protocol message format…

Cryptography and Security · Computer Science 2018-07-26 Julien Duchene , Eric Alata , Vincent Nicomette , Mohamed Kaâniche , Colas Le Guernic

Recent works have shown that attaching prompts to the input is effective at conditioning Language Models (LM) to perform specific tasks. However, prompts are always included in the input text during inference, thus incurring substantial…

Machine Learning · Computer Science 2022-07-18 Eunbi Choi , Yongrae Jo , Joel Jang , Minjoon Seo

Session types express and enforce safe communication in concurrent message-passing systems by statically capturing the interaction protocols between processes in the type. Recent works extend session types with arithmetic refinements, which…

Programming Languages · Computer Science 2026-02-09 Toby Ueno , Ankush Das

UL 4600, the safety standard for autonomous products, mandates the use of Safety Performance Indicators (SPIs) to continuously ensure the validity of safety cases by monitoring and taking action when violations are identified. Despite…

Software Engineering · Computer Science 2024-10-02 Daniel Ratiu , Tihomir Rohlinger , Torben Stolte , Stefan Wagner

JSConTest introduced the notions of effect monitoring and dynamic effect inference for JavaScript. It enables the description of effects with path specifications resembling regular expressions. It is implemented by an offline source code…

Programming Languages · Computer Science 2013-12-12 Matthias Keil , Peter Thiemann

Automatic synthesis from a given specification automatically constructs correct implementation. This frees the user from the mundane implementation work, but still requires the specification. But is specifying easier than implementing? In…

Logic in Computer Science · Computer Science 2016-02-04 Ayrat Khalimov

Nowadays, as machine-learned software quickly permeates our society, we are becoming increasingly vulnerable to programming errors in the data pre-processing or training software, as well as errors in the data itself. In this paper, we…

Programming Languages · Computer Science 2020-07-22 Caterina Urban
‹ Prev 1 3 4 5 6 7 10 Next ›