Supporting Program Analysis for Non-Mainstream Languages: Experiences and Lessons Learned

Andreas Grimmer, Florian Angerer, Herbert Prähofer, Paul Grünbacher

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

Static code analysis techniques are widely and successfully used for mainstream programming languages. However, domain-specific languages and company-specific variations of languages often lack the same level of support. An example is the domain of industrial automation, where programmable logic controller programs are mainly written in languages conforming to the IEC 61131-3 standard, a non-mainstream family of languages. This experience paper reports about the development of a program analysis framework for the IEC 61131-3 languages. We use OMG's Abstract Syntax Tree Meta-Model (ASTM) as an abstract representation and show our extensions of this model to represent the different IEC 61131-3 languages. Using this representation our approach generates Jimple code, an intermediate representation used by the Soot program analysis framework. We use Soot's standard analysis methods to compute a system dependence graph, which is then used for change impact analysis. We apply our approach to industrial-size product lines of our industry partner to demonstrate its correctness and performance. Finally, we discuss experiences and lessons learned intended for developers of program analysis methods for nonmainstream languages.
Original languageEnglish
Title of host publicationIEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016)
Editors Proceedings 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016)
PublisherIEEE
Pages460-469
Number of pages10
ISBN (Print)978-1-5090-1855-0
DOIs
Publication statusPublished - Mar 2016

Fields of science

  • 102 Computer Sciences
  • 102009 Computer simulation
  • 102011 Formal languages
  • 102013 Human-computer interaction
  • 102022 Software development
  • 102029 Practical computer science

JKU Focus areas

  • Computation in Informatics and Mathematics
  • Engineering and Natural Sciences (in general)

Cite this