On Fast Large-Scale Program Analysis in Datalog

被引:49
|
作者
Scholz, Bernhard [1 ,2 ]
Jordan, Herbert [1 ]
Subotic, Pavle [2 ]
Westmann, Till [3 ]
机构
[1] Oracle Labs, Bristol, Avon, England
[2] UCL, London WC1E 6BT, England
[3] Oracle Labs, Austin, TX USA
关键词
Static Program Analysis; Datalog; Program Synthesis; Compiler;
D O I
10.1145/2892208.2892226
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Designing and crafting a static program analysis is challenging due to the complexity of the task at hand. Among the challenges are modelling the semantics of the input language, finding suitable abstractions for the analysis, and handwriting efficient code for the analysis in a traditional imperative language such as C++. Hence, the development of static program analysis tools is costly in terms of development time and resources for real world languages. To overcome, or at least alleviate the costs of developing a static program analysis, Datalog has been proposed as a domain specific language (DSL). With Datalog, a designer expresses a static program analysis in the form of a logical specification. While a domain specific language approach aids in the ease of development of program analyses, it is commonly accepted that such an approach has worse runtime performance than handcrafted static analysis tools. In this work, we introduce a new program synthesis methodology for Datalog specifications to produce highly efficient monolithic C++ analyzers. The synthesis technique requires the re-interpretation of the semi-naive evaluation as a scaffolding for translation using partial evaluation. To achieve high-performance, we employ staged-compilation techniques and specialize the underlying relational data structures for a given Datalog specification. Experimentation on benchmarks for large-scale program analysis validates the superior performance of our approach over available Datalog tools and demonstrates our competitiveness with state-of-the-art handcrafted tools.
引用
收藏
页码:196 / 206
页数:11
相关论文
共 50 条
  • [1] Using datalog for fast and easy program analysis
    Smaragdakis, Yannis
    Bravenboer, Martin
    [J]. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2011, 6702 LNCS : 245 - 251
  • [2] Using Datalog for Fast and Easy Program Analysis
    Smaragdakis, Yannis
    Bravenboer, Martin
    [J]. DATALOG RELOADED: FIRST INTERNATIONALWORKSHOP, DATALOG 2010, 2011, 6702 : 245 - 251
  • [3] Distributed SociaLite: A Datalog-Based Language for Large-Scale Graph Analysis
    Seo, Jiwon
    Park, Jongsoo
    Shin, Jaeho
    Lam, Monica S.
    [J]. PROCEEDINGS OF THE VLDB ENDOWMENT, 2013, 6 (14): : 1906 - 1917
  • [4] Precomputing Datalog Evaluation Plans in Large-Scale Scenarios
    Fiorentino, Alessio
    Leone, Nicola
    Manna, Marco
    Perri, Simona
    Zangari, Jessica
    [J]. THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2019, 19 (5-6) : 1073 - 1089
  • [5] Automatic Index Selection for Large-Scale Datalog Computation
    Subotic, Pavle
    Jordan, Herbert
    Chang, Lijun
    Fekete, Alan
    Scholz, Bernhard
    [J]. PROCEEDINGS OF THE VLDB ENDOWMENT, 2018, 12 (02): : 141 - 153
  • [6] Debugging Large-scale Datalog: A Scalable Provenance Evaluation Strategy
    Zhao, David
    Subotic, Pavle
    Scholz, Bernhard
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2020, 42 (02):
  • [7] Supporting Program Comprehension through Fast Query response in Large-Scale Systems
    Lin, Jinfeng
    Liu, Yalin
    Cleland-Huang, Jane
    [J]. 2020 IEEE/ACM 28TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, ICPC, 2020, : 285 - 295
  • [8] PROGRAM CALLED ASTAP MAKES FAST WORK OF ANALYZING LARGE-SCALE CIRCUITS
    MAHONEY, GW
    MEHTA, DA
    QASSEMZADEH, H
    SCOTT, TR
    WEEKS, WT
    [J]. ELECTRONICS-US, 1974, 47 (08): : 109 - 113
  • [9] Large-Scale Characteristic Mode Analysis With Fast Multipole Algorithms
    Dai, Qi I.
    Wu, Junwei
    Gan, Hui
    Liu, Qin S.
    Chew, Weng Cho
    Sha, Wei E. I.
    [J]. IEEE TRANSACTIONS ON ANTENNAS AND PROPAGATION, 2016, 64 (07) : 2608 - 2616
  • [10] Technical Perspective Large-Scale Sound and Precise Program Analysis
    Henglein, Fritz
    [J]. COMMUNICATIONS OF THE ACM, 2010, 53 (08) : 114 - 114