Source Code Analysis with a Temporal Extension of First-Order Logic

Formal methods and static analysis are widely used in software development, in particular in the context of safety-critical systems. They can be used to prove that the software behavior complies with its specification: the software correctness. In this article, we address another usage of these methods: the verification of the quality of the source code, i.e., the compliance with guidelines, coding rules, design patterns.

[1]  Oscar R. Hernandez,et al.  HERCULES/PL: the pattern language of HERCULES , 2014, PLE@ECOOP.

[2]  Damien Doligez,et al.  A foundation for flow-based program matching: using temporal logic and model checking , 2009, POPL '09.

[3]  Mirko Seifert,et al.  Static Source Code Analysis using OCL , 2008 .

[4]  Martin Gogolla,et al.  Object Constraint Language (OCL): A Definitive Guide , 2012, SFM.

[5]  Peter J. Stuckey,et al.  The MiniZinc Challenge 2008-2013 , 2014, AI Mag..

[6]  David Chemouil,et al.  On Finite Domains in First-Order Linear Temporal Logic , 2016, ATVA.

[7]  Hardi Hungar,et al.  First-Order-CTL Model Checking , 1998, FSTTCS.

[8]  Roger F. Crew ASTLOG: A Language for Examining Abstract Syntax Trees , 1997, DSL.

[9]  Joost Visser,et al.  Static Estimation of Test Coverage , 2009, 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation.

[10]  Bogdan Dit,et al.  Feature location in source code: a taxonomy and survey , 2013, J. Softw. Evol. Process..

[11]  Moshe Y. Vardi The complexity of relational query languages (Extended Abstract) , 1982, STOC '82.

[12]  Mla Citations,et al.  Getting Started with , 2006 .

[13]  Shensheng Zhang,et al.  A practical pattern recovery approach based on both structural and behavioral analysis , 2005, J. Syst. Softw..

[14]  Michael Peyton Jones,et al.  QL: Object-oriented Queries on Relational Data , 2016, ECOOP.

[15]  Marco Roveri,et al.  The nuXmv Symbolic Model Checker , 2014, CAV.

[16]  Jurriaan Hage,et al.  A Comparative Study of Code Query Technologies , 2011, 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation.

[17]  Mark Ryan,et al.  Logic in Computer Science: Modelling and Reasoning about Systems , 2000 .

[18]  Femke van Raamsdonk,et al.  Higher-Order Rewriting , 1999, RTA.

[19]  Cristina Sernadas,et al.  Parameterisation of Logics , 1998, WADT.

[20]  Jürgen Ebert,et al.  Reverse Engineering Using Graph Queries , 2010, Graph Transformations and Model-Driven Engineering.

[21]  Julia L. Lawall,et al.  Enforcing the use of API functions in linux code , 2009, ACP4IS '09.