JOURNAL ARTICLE

Declarative static analysis for multilingual programs using CodeQL.

  • Published In: Software: Practice & Experience, 2023, v. 53, n. 7. P. 1472 1 of 3

  • Database: Applied Science & Technology Source Ultimate 2 of 3

  • Authored By: Youn, Dongjun; Lee, Sungho; Ryu, Sukyoung 3 of 3

Abstract

Summary: Declarative static program analysis has become one of the widely‐used program analysis techniques. Declarative static analyzers perform three steps: creating databases of facts from program source code, evaluating rules to generate new facts, and running queries over facts to extract all information related to specific properties via query systems. Declarative static analyzers can easily target diverse programming languages by modifying only databases and rules for new languages. Because query systems are independent of programming languages, they are reusable for new languages. However, even when declarative analyzers support multiple programming languages they do not currently support the analysis of multilingual programs written in two or more programming languages. We propose a systematic methodology that extends a declarative static analyzer supporting multiple languages to support multilingual programs as well. The main idea is to reuse existing components of the analyzer. Our approach first generates a merged database of facts, consisting of multiple logical language spaces. It allows existing language‐specific rules to derive new facts for the corresponding language from the facts in the corresponding language space. Then, it defines language‐interoperation rules that handle the language interoperation semantics. Finally, it uses the same query system to get analysis results leveraging the language interoperation semantics. We develop a proof‐of‐concept declarative static analyzer for multilingual programs by extending CodeQL, which can track dataflows across language boundaries. Our evaluation shows that the analyzer successfully tracks dataflows across Java‐C and Python‐C language boundaries and detects genuine interoperation bugs in real‐world multilingual programs. [ABSTRACT FROM AUTHOR]

Additional Information

  • Source:Software: Practice & Experience. 2023/07, Vol. 53, Issue 7, p1472
  • Document Type:Article
  • Subject Area:Computer Science
  • Publication Date:2023
  • ISSN:00380644
  • DOI:10.1002/spe.3199
  • Accession Number:164095816
  • Copyright Statement:Copyright of Software: Practice & Experience is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)

Looking to go deeper into this topic? Look for more articles on EBSCOhost.