Declarative static analysis for multilingual programs using CodeQL

互操作性 计算机科学 程序设计语言 数据记录 查询语言 声明式编程 语言建构 第五代程序设计语言 语义学(计算机科学) 程序设计范式 数据库 归纳程序设计 万维网 互操作性
作者
Dongjun Youn,Sungho Lee,Sukyoung Ryu
出处
期刊:Software - Practice and Experience [Wiley]
卷期号:53 (7): 1472-1495 被引量:7
标识
DOI:10.1002/spe.3199
摘要

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.
最长约 10秒,即可获得该文献文件

科研通智能强力驱动
Strongly Powered by AbleSci AI
科研通是完全免费的文献互助平台,具备全网最快的应助速度,最高的求助完成率。 对每一个文献求助,科研通都将尽心尽力,给求助人一个满意的交代。
实时播报
跳跃绿竹发布了新的文献求助10
1秒前
1秒前
小美完成签到 ,获得积分10
1秒前
哈哈哈完成签到 ,获得积分10
2秒前
初月朔完成签到,获得积分10
2秒前
英姑应助jjgogogog采纳,获得10
3秒前
3秒前
3秒前
高兴的青发布了新的文献求助10
3秒前
5秒前
xxiao完成签到 ,获得积分10
6秒前
jiangmj1990发布了新的文献求助10
6秒前
xixi完成签到,获得积分10
7秒前
知性的老三完成签到,获得积分10
8秒前
阿飞完成签到,获得积分10
8秒前
搞怪大炮完成签到 ,获得积分10
8秒前
qeqeq完成签到,获得积分20
8秒前
8秒前
萌萌雨发布了新的文献求助10
9秒前
宇文青寒发布了新的文献求助20
9秒前
11秒前
专炸油条完成签到 ,获得积分10
11秒前
11秒前
喜洋洋完成签到,获得积分20
11秒前
舒心的冥完成签到 ,获得积分10
12秒前
记录者完成签到 ,获得积分10
12秒前
CynthiaaaCat发布了新的文献求助10
12秒前
嗝嗝完成签到,获得积分10
13秒前
13秒前
隐形曼青应助蔬菜狗狗采纳,获得10
14秒前
14秒前
14秒前
LC发布了新的文献求助10
15秒前
成成完成签到,获得积分0
16秒前
哈哈发布了新的文献求助30
17秒前
huangyu发布了新的文献求助10
18秒前
ymx1229完成签到,获得积分10
19秒前
Ying发布了新的文献求助10
19秒前
19秒前
19秒前
高分求助中
Continuum Thermodynamics and Material Modelling 4000
Production Logging: Theoretical and Interpretive Elements 2700
Ensartinib (Ensacove) for Non-Small Cell Lung Cancer 1000
Les Mantodea de Guyane Insecta, Polyneoptera 1000
Unseen Mendieta: The Unpublished Works of Ana Mendieta 1000
El viaje de una vida: Memorias de María Lecea 800
Luis Lacasa - Sobre esto y aquello 700
热门求助领域 (近24小时)
化学 材料科学 生物 医学 工程类 有机化学 生物化学 物理 纳米技术 计算机科学 内科学 化学工程 复合材料 基因 遗传学 物理化学 催化作用 量子力学 光电子学 冶金
热门帖子
关注 科研通微信公众号,转发送积分 3522922
求助须知:如何正确求助?哪些是违规求助? 3103872
关于积分的说明 9267825
捐赠科研通 2800626
什么是DOI,文献DOI怎么找? 1537038
邀请新用户注册赠送积分活动 715354
科研通“疑难数据库(出版商)”最低求助积分说明 708759