Pushdown System Representation for Unbounded Object Creation

We introduce a block-structured programming language which supports object creation, global variables, static scope and recursive procedures with local variables. Because of the combination of recursion, local variables and object creation, the number of objects stored during a computation is potentially unbounded. However, we show that a program can be viewed as a type of pushdown automata, for which the halting problem as well as LTL and CTL model checking are decidable.

[1]  Andrew M. Pitts,et al.  A new approach to abstract syntax involving binders , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[2]  Stefan Schwoon,et al.  Model checking pushdown systems , 2002 .

[3]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[4]  Claudio Demartini,et al.  A deadlock detection tool for concurrent Java programs , 1999, Softw. Pract. Exp..

[5]  Davide Sangiorgi,et al.  On the bisimulation proof method , 1998, Mathematical Structures in Computer Science.

[6]  Edmund M. Clarke Programming language constructs for which it is impossible to obtain good hoare-like axiom systems , 1977, POPL '77.

[7]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[8]  Christel Baier,et al.  Principles of model checking , 2008 .

[9]  David L. Dill,et al.  Java model checking , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[10]  Joost-Pieter Katoen,et al.  Who is Pointing When to Whom? , 2004, FSTTCS.

[11]  Javier Esparza,et al.  Reachability Analysis of Pushdown Automata: Application to Model-Checking , 1997, CONCUR.

[12]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[13]  Marcello M. Bonsangue,et al.  Pi-Calculus in Logical Form , 2007, 22nd Annual IEEE Symposium on Logic in Computer Science (LICS 2007).

[14]  Brian Randell,et al.  Algol 60 Implementation: The Translation And Use Of Algol 60 Programs On A Computer , 1975 .

[15]  Marco Pistore,et al.  An Introduction to History Dependent Automata , 1998, HOOTS.

[16]  John C. Mitchell,et al.  Concepts in programming languages , 2002 .

[17]  Javier Esparza,et al.  A BDD-Based Model Checker for Recursive Programs , 2001, CAV.

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

[19]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[20]  Rajeev Alur,et al.  Visibly pushdown languages , 2004, STOC '04.

[21]  Frank S. de Boer,et al.  Automated Deadlock Detection in Synchronized Reentrant Multithreaded Call-Graphs , 2010, SOFSEM.

[22]  Ahmed Bouajjani,et al.  Context-Bounded Analysis of Multithreaded Programs with Dynamic Linked Structures , 2007, CAV.