posted on 2020-07-30, 15:35authored byRoy Crole, Samuele Buro, Isabella Mastroeni
Modern software development rarely takes place within a single programming language. Often, programmers appeal to cross-language interoperability. Examples are exploitation of novel features of one language within another, and cross-language code reuse. Previous works developed a theory of so-called multi-languages, which arise by combining existing languages, defining a precise notion of (algebraic) multi-language semantics. As regards static analysis, the heterogeneity of the multi-language context opens up new and unexplored scenarios. In this paper, we provide a general theory for the combination of abstract interpretations of existing languages, regardless of their inherent nature, in order to gain an abstract semantics of multi-language programs. As a part of this general theory, we show that formal properties of interest of multi-language abstractions (e.g., soundness and completeness) boil down to the features of the interoperability mechanism that binds the underlying languages together. We extend many of the standard concepts of abstract interpretation to the framework of multi-languages.
History
Citation
Static Analysis. SAS 2020. Lecture Notes in Computer Science, vol 12389. Springer, Cham. https://doi.org/10.1007/978-3-030-65474-0_14
Author affiliation
School of Informatics
Source
SAS 2020 - 27th Static Analysis Symposium, Wed 18 - Fri 20 November 2020 Illinois, United States
Version
AM (Accepted Manuscript)
Published in
Static Analysis 27th International Symposium, SAS 2020, Virtual Event, November 18–20, 2020, Proceedings