Program analysis is fundamental for program optimizations, debugging, and many other tasks. But developing program analyses has been a challenging and error-prone process for general users. Declarative program analysis has shown the promise to dramatically improve the productivity in the development of program analyses. Current declarative program analysis is however subject to some major limitations in supporting cooperations among analysis tools, guiding program optimizations, and often requires much effort for repeated program preprocessing. In this work, we advocate the integration of ontology into declarative program analysis. As a way to standardize the definitions of concepts in a domain and the representation of the knowledge in the domain, ontology offers a promising way to address the limitations of current declarative program analysis. We develop a prototype framework named PATO for conducting program analysis upon ontology-based program representation. Experiments on six program analyses confirm the potential of ontology for complementing existing declarative program analysis. It supports multiple analyses without separate program preprocessing, promotes cooperative Liveness analysis between two compilers, and effectively guides a data placement optimization for Graphic Processing Units (GPU).
Wed 20 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:45 - 15:00 | Session 2Research Track at Auditorium Loyola Chair(s): James Noble Victoria University of Wellington | ||
13:45 25mTalk | C++ const and Immutability: An Empirical Study of Writes-Through-const Research Track Link to publication DOI Pre-print Media Attached | ||
14:10 25mTalk | Formal Language Recognition with the Java Type Checker Research Track Link to publication DOI | ||
14:35 25mTalk | Towards Ontology-Based Program Analysis Research Track Link to publication DOI Media Attached |