M3: Semantic API Migrations

@article{Collie2020M3SA,
  title={M3: Semantic API Migrations},
  author={Bruce Collie and Philip Ginsbach and Jackson Woodruff and Ajitha Rajan and Michael F. P. O’Boyle},
  journal={2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)},
  year={2020},
  pages={90-102}
}
Library migration is a challenging problem, where most existing approaches rely on prior knowledge. This can be, for example, information derived from changelogs or statistical models of API usage. This paper addresses a different API migration scenario where there is no prior knowledge of the target library. We have no historical changelogs and no access to its internal representation. To tackle this problem, this paper proposes a novel approach (M3), where probabilistic program synthesis is… Expand

Figures and Tables from this paper

A Large-Scale Empirical Study on Java Library Migrations: Prevalence, Trends, and Rationales
  • Hao He
  • 2021
With the rise of open-source software and package hosting platforms, reusing 3rd-party libraries has become a common practice. Due to various failures during software evolution, a project may removeExpand
A Large-Scale Empirical Study on Java Library Migrations: Prevalence, Trends, and Rationales
  • Hao He
  • 2021
With the rise of open-source software and package hosting platforms, reusing 3rd-party libraries has become a common practice. Due to various failures during software evolution, a project may removeExpand
Promises are made to be broken: migrating R to strict semantics
TLDR
A dynamic analysis is reported on that infers strictness signatures for functions to capture both intentional and accidental laziness and over 99% of the inferred signatures were correct when tested against clients of the libraries. Expand
A Multi-Metric Ranking Approach for Library Migration Recommendations
TLDR
This paper presents a novel approach that utilizes multiple metrics to rank and therefore recommend library migrations and shows that the metrics are effective to help identify real migration targets, and the approach significantly outperforms existing works. Expand
A large-scale empirical study on Java library migrations: prevalence, trends, and rationales
  • Hao He, Runzhi He, Haiqiao Gu, Minghui Zhou
  • Computer Science
  • ESEC/SIGSOFT FSE
  • 2021
TLDR
Through a fine-grained commit-level analysis of 19,652 Java GitHub projects, the largest migration dataset to-date is extracted and it is discovered that library migrations are dominated by several domains (logging, JSON, testing and web service) presenting a long tail distribution. Expand
Modeling black-box components with probabilistic synthesis
TLDR
This paper detail Presyn: a program synthesizer designed for flexible interoperation with existing programs and compiler toolchains, and shows that Presyn is able to synthesize a wider range of programs than each of them with less human input. Expand

References

SHOWING 1-10 OF 67 REFERENCES
Automating the detection of third-party Java library migration at the function level
TLDR
This paper proposes a mining approach that extracts all the manually-performed function replacements for a given library migration, and combines the mined function-change patterns with function-related lexical similarity to accurately detect mappings between replacing/replaced functions. Expand
A graph-based approach to API usage adaptation
TLDR
LIBSYNC is presented that guides developers in adapting API usage code by learning complex API usage adaptation patterns from other clients that already migrated to a new library version (and also from the API usages within the library's test code). Expand
Statistical Migration of API Usages
TLDR
This work introduces JV2CS, a tool to generate a sequence of C# API elements and related control units that are needed to migrate a given Java code fragment via a phrase-based translation model. Expand
Discovering likely mappings between APIs using text mining
TLDR
This paper proposes TMAP: Text Mining based approach to discover likely API mappings using the similarity in the textual description of the source and target API documents to address the shortcoming of manually writingAPI mappings. Expand
Automatic discovery of function mappings between similar libraries
TLDR
This work introduces an approach that analyzes source code changes from software projects that already underwent a given library migration to extract mappings between functions and demonstrates the applicability of this approach on several library migrations performed on the Java open source software projects. Expand
Mining API mapping for language migration
TLDR
This paper proposes a novel approach, called MAM (Mining API Mapping), that mines API mapping relations from one language to another using API client code, and shows the effectiveness of MAM. Expand
Meditor: Inference and Application of API Migration Edits
TLDR
The novel approach, Meditor, which extracts and applies the necessary edits together with API replacement changes and correctly applied code migrations in 218 out of 225 cases will help developers automatically adapt client code to different library versions. Expand
AURA: a hybrid approach to identify framework evolution
TLDR
AURA, a novel hybrid approach that combines call dependency and text similarity analyses to overcome limitations of one-replaced-by-many and many-re replaced- by-one methods, is introduced. Expand
Automatic Matching of Legacy Code to Heterogeneous APIs: An Idiomatic Approach
TLDR
A novel approach to automatically detect opportunities for accelerator exploitation by identifying idioms that are well supported by established APIs: sparse and dense linear algebra, stencil codes and generalized reductions and histograms. Expand
LLVM: AN INFRASTRUCTURE FOR MULTI-STAGE OPTIMIZATION
TLDR
The LLVM compiler infrastructure is a maturing and efficient system, which is a good host for a variety of research and is designed to support optimization in the field, both at run-time and during otherwise unused idle time on the machine. Expand
...
1
2
3
4
5
...