Title | : | Ontology based framework for static program analysis |
Speaker | : | Dileep Kumar Pattipati (IITM) |
Details | : | Thu, 11 Apr, 2019 3:00 PM @ Turing Hall (BSB 361 |
Abstract: | : | Program analysis is an important phase in software engineering and compilers, wherein various properties of a program are computed. Traditionally, the problem of program
analysis has been approached in two ways - either through imperative specification or declarative specification. While the productivity advantages of declarative specifications are well-known it also incurs certain limitations. First, there is no standardization of the format for analysis specification and storage of the analysis results. The latter poses hindrances while integrating various analyses. Second, the existing specifications cannot automatically integrate knowledge from diversified sources such as program knowledge, library knowledge, domain knowledge and carry out the analysis. The root cause of this limitation is the absence of knowledge standardization that accomplishes the integration.
Ontology is a formal framework to represent the knowledge of a domain. It is particularly helpful to integrate the knowledge from diversified sources. We propose a generalized and extensible static program analysis framework, called OPAL, using ontologies. A new salient feature of OPAL is that it allows users to represent not only the syntactic knowledge of the program constructs but also various semantic details such as states of the variables, program paths as Resource Description Framework (RDF, a framework for creating Ontologies) triples. The framework also enables representation of external knowledge such as the correct usage of a set of library functions, and domain knowledge such as explicit relationship between the variables used in a program, in a machine processable way. The results of the common prior analysis techniques like constant propagation are stored as RDF knowledge bases that can be reused during the execution of user specified analysis tasks. Experiments have demonstrated considerable improvement in the productivity factor (measured in lines of code). Also, we show that OPAL system scales better than the existing ontology-based approach PATO, while it outperforms a popular imperative framework called clang when a series of analyses are involved. |