Inference Graphs: A Computational Structure Supporting Generation of Customizable and Correct Analysis Components

Amalia is a generator framework for constructing analyzers for operationally defined formal notations. These generated analyzers are components that are designed for customization and integration into a larger environment. The customizability, and efficiency of Amalia analyzers owe to a computational structure called an inference graph. This paper describes this structure, how inference graphs enable Amalia to generate analyzers for operational specifications, and how we build in assurance. On another level, this paper illustrates how to balance the need for assurance, which typically implies a formal proof obligation, against other design concerns, whose solutions leverage design techniques that are not (yet) accompanied by mature proof methods. We require Amalia-generated designs to be transparent with respect to the formal semantic models upon which they are based. Inference graphs are complex structures that incorporate many design optimizations. While not formally verifiable, their fidelity with respect to a formal operational semantics can be discharged by inspection.

[1]  R. E. Kurt Stirewalt,et al.  A component-based approach to building formal analysis tools , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[2]  M. W. Shields An Introduction to Automata Theory , 1988 .

[3]  Lawrence C. Paulson Strategic Principles in the Design of Isabelle , 2003 .

[4]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[5]  Jason E. Robbins,et al.  Cognitive support, UML adherence, and XMI interchange in Argo/UML , 2000, Inf. Softw. Technol..

[6]  Christoph Kreitz,et al.  Building reliable, high-performance communication systems from components , 2000, OPSR.

[7]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[8]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[9]  Kathi Fisler,et al.  Modular verification of collaboration-based software designs , 2001, ESEC/FSE-9.

[10]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[11]  Albert John Camilleri Mechanizing CSP Trace Theory in Higher Order Logic , 1990, IEEE Trans. Software Eng..

[12]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

[13]  BolognesiTommaso,et al.  Introduction to the ISO specification language LOTOS , 1987 .

[14]  Bjarne Stroustrup,et al.  The Design and Evolution of C , 1994 .

[15]  Louise E. Moser,et al.  A graphical interval logic for specifying concurrent systems , 1994, TSEM.

[16]  Charles N. Fischer,et al.  SPARE: A Development Environment For Program Analysis Algorithms , 1992, IEEE Trans. Software Eng..

[17]  R. Stephenson A and V , 1962, The British journal of ophthalmology.

[18]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[19]  R. E. Kurt Stirewalt,et al.  Lightweight analysis of operational specifications using inference graphs , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[20]  Didier Parigot,et al.  Integrating Natural Semantics and Attribute Grammars : the Minotaur System , 1993 .

[21]  Rance Cleaveland,et al.  Generic tools for verifying concurrent systems , 2002, Sci. Comput. Program..

[22]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[23]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[24]  Mauro Pezzè,et al.  Constructing Multi-Formalism State-Space Analysis Tools: Using rules to specify dynamic semantics of models , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[25]  Jeffrey J. Joyce,et al.  Symbolic Functional Evaluation , 1999, TPHOLs.

[26]  Hubert Garavel,et al.  OPEN/CÆSAR: An OPen Software Architecture for Verification, Simulation, and Testing , 1998, TACAS.

[27]  Rance Cleaveland,et al.  A compositional approach to statecharts semantics , 2000, SIGSOFT '00/FSE-8.

[28]  Mark A. Neerincx,et al.  Cognitive support: designing aiding to supplement human knowledge , 1995, Int. J. Hum. Comput. Stud..

[29]  Andrew W. Appel,et al.  Compiling with Continuations , 1991 .

[30]  James M. Boyle,et al.  Do You Trust Your Compiler? , 1999, Computer.

[31]  Karl J. Lieberherr,et al.  Object-Oriented Software Evolution , 1993, IEEE Trans. Software Eng..

[32]  Jeffrey J. Joyce,et al.  A framework for multi-notation requirements specification and analysis , 2000, Proceedings Fourth International Conference on Requirements Engineering. ICRE 2000. (Cat. No.98TB100219).

[33]  Tommaso Bolognesi,et al.  Tableau methods to describe strong bisimilarity on LOTOS processes involving pure interleaving and enabling , 1994, FORTE.

[34]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[35]  Yannis Smaragdakis,et al.  Implementing Layered Designs with Mixin Layers , 1998, ECOOP.