2015 24th Australasian Software Engineering Conference (ASWEC) (2015)
Adelaide, SA, Australia
Sept. 28, 2015 to Oct. 1, 2015
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/ASWEC.2015.15
Static program analysis has many applications including bug checking for large scale code that requires a points-to analysis. To express static program analysis frameworks concisely, it is advantageous to employ a domain-specific language. In the last two decades, Data log has emerged as a domain-specific language for static program analysis. However, existing Data log systems have problems solving large scale code with millions of program variables. This work reports on techniques that translate a Data log program to SQL queries, which are executed on a relational database system. The advantage of a relational database system as an execution platform is the effective use of memory and disks. Further, we can also use an off-the shelf tool to execute the SQL queries. In order to achieve performance, we explore some of the design choices for a source-to-source translation from Data log to SQL that implement stratified negations, totally ordered domains, and comparisons. For each design point, we explain how Data log can be efficiently translated to SQL using the semi-naive evaluation approach. We report the results of our experiments using large data-sets including the OpenJDK7-b147 dataset for points-to, which guided us in the design of our translation schemes.
Engines, Resource management, Software engineering, Electronic mail, Relational databases, Australia, Semantics,SQWL, Datalog, program analysis, source-to-source translation
Bernhard Scholz, Kostyantyn Vorobyov, Padmanabhan Krishnan, Till Westmann, "A Datalog Source-to-Source Translator for Static Program Analysis: An Experience Report", 2015 24th Australasian Software Engineering Conference (ASWEC), vol. 00, no. , pp. 28-37, 2015, doi:10.1109/ASWEC.2015.15