Lightweight Syntactic API Usage Analysis with UCov
- URL: http://arxiv.org/abs/2402.12024v1
- Date: Mon, 19 Feb 2024 10:33:41 GMT
- Title: Lightweight Syntactic API Usage Analysis with UCov
- Authors: Gustave Monce (LaBRI), Thomas Couturou (LaBRI), Yasmine Hamdaoui
(LaBRI), Thomas Degueule (LaBRI), Jean-R\'emy Falleri (LaBRI, IUF)
- Abstract summary: We present a novel conceptual framework designed to assist library maintainers in understanding the interactions allowed by their APIs.
These customizable models enable library maintainers to improve their design ahead of release, reducing friction during evolution.
We implement these models for Java libraries in a new tool UCov and demonstrate its capabilities on three libraries exhibiting diverse styles of interaction.
- Score: 0.0
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Designing an effective API is essential for library developers as it is the
lens through which clients will judge its usability and benefits, as well as
the main friction point when the library evolves. Despite its importance,
defining the boundaries of an API is a challenging task, mainly due to the
diverse mechanisms provided by programming languages that have non-trivial
interplays. In this paper, we present a novel conceptual framework designed to
assist library maintainers in understanding the interactions allowed by their
APIs via the use of syntactic usage models. These customizable models enable
library maintainers to improve their design ahead of release, reducing friction
during evolution. The complementary syntactic usage footprints and coverage
scores, inferred from client code using the API (e.g., documentation samples,
tests, third-party clients), enable developers to understand in-the-wild uses
of their APIs and to reflect on the adequacy of their tests and documentation.
We implement these models for Java libraries in a new tool UCov and demonstrate
its capabilities on three libraries exhibiting diverse styles of interaction:
jsoup, commons-cli, and spark. Our exploratory case study shows that UCov
provides valuable information regarding API design and fine-grained analysis of
client code to identify under-tested and under-documented library code.
Related papers
- Demystifying Application Programming Interfaces (APIs): Unlocking the Power of Large Language Models and Other Web-based AI Services in Social Work Research [0.0]
Application Programming Interfaces (APIs) are essential tools for social work researchers aiming to harness advanced technologies like Large Language Models (LLMs) and other AI services.
This paper demystifies APIs and illustrates how they can enhance research methodologies.
Practical code examples demonstrate how LLMs can generate API code for accessing specialized services, such as extracting data from unstructured text.
arXiv Detail & Related papers (2024-10-26T16:07:12Z) - A Systematic Evaluation of Large Code Models in API Suggestion: When, Which, and How [53.65636914757381]
API suggestion is a critical task in modern software development.
Recent advancements in large code models (LCMs) have shown promise in the API suggestion task.
arXiv Detail & Related papers (2024-09-20T03:12:35Z) - FANTAstic SEquences and Where to Find Them: Faithful and Efficient API Call Generation through State-tracked Constrained Decoding and Reranking [57.53742155914176]
API call generation is the cornerstone of large language models' tool-using ability.
Existing supervised and in-context learning approaches suffer from high training costs, poor data efficiency, and generated API calls that can be unfaithful to the API documentation and the user's request.
We propose an output-side optimization approach called FANTASE to address these limitations.
arXiv Detail & Related papers (2024-07-18T23:44:02Z) - Semantic API Alignment: Linking High-level User Goals to APIs [6.494714497852088]
We present a vision to span multiple steps from requirements engineering to implementation using existing libraries.
This approach, which we call Semantic API Alignment (SEAL), aims to bridge the gap between a user's high-level goals and the specific functions of one or more APIs.
arXiv Detail & Related papers (2024-05-07T11:54:32Z) - LILO: Learning Interpretable Libraries by Compressing and Documenting Code [71.55208585024198]
We introduce LILO, a neurosymbolic framework that iteratively synthesizes, compresses, and documents code.
LILO combines LLM-guided program synthesis with recent algorithmic advances in automated from Stitch.
We find that AutoDoc boosts performance by helping LILO's synthesizer to interpret and deploy learned abstractions.
arXiv Detail & Related papers (2023-10-30T17:55:02Z) - Enhancing API Documentation through BERTopic Modeling and Summarization [0.0]
This paper focuses on the complexities of interpreting Application Programming Interface (API) documentation.
Official API documentation serves as a primary source of information for developers, but it can often be extensive and lacks user-friendliness.
Our novel approach employs the strengths of BERTopic for topic modeling and Natural Language Processing (NLP) to automatically generate summaries of API documentation.
arXiv Detail & Related papers (2023-08-17T15:57:12Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
This paper focuses on utilizing large language models (LLMs) for code generation in private libraries.
We propose a novel framework that emulates the process of programmers writing private code.
We create four private library benchmarks, including TorchDataEval, TorchDataComplexEval, MonkeyEval, and BeatNumEval.
arXiv Detail & Related papers (2023-07-28T07:43:13Z) - SequeL: A Continual Learning Library in PyTorch and JAX [50.33956216274694]
SequeL is a library for Continual Learning that supports both PyTorch and JAX frameworks.
It provides a unified interface for a wide range of Continual Learning algorithms, including regularization-based approaches, replay-based approaches, and hybrid approaches.
We release SequeL as an open-source library, enabling researchers and developers to easily experiment and extend the library for their own purposes.
arXiv Detail & Related papers (2023-04-21T10:00:22Z) - Neural Transition-based Parsing of Library Deprecations [3.6382354548339295]
This paper tackles the problem of automating code updates to fix deprecated API usages of open source libraries by analyzing their release notes.
Our system employs a three-tier architecture: first, a web crawler service retrieves deprecation documentation from the web; then a specially built text processes those documents into tree-structured representations.
To confirm the effectiveness of our method, we gathered and labeled a set of 426 API deprecations from 7 well-known Python data science libraries, and demonstrated our approach decisively outperforms a non-trivial neural machine translation baseline.
arXiv Detail & Related papers (2022-12-23T20:48:33Z) - LAVIS: A Library for Language-Vision Intelligence [98.88477610704938]
LAVIS is an open-source library for LAnguage-VISion research and applications.
It features a unified interface to easily access state-of-the-art image-language, video-language models and common datasets.
arXiv Detail & Related papers (2022-09-15T18:04:10Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.