Analyzing recursive programs using a fixed-point calculus
Analyzing recursive programs using a fixed-point calculus
We show that recursive programs where variables range over finite domains can be effectively and efficiently analyzed by describing the analysis algorithm using a formula in a fixed-point calculus. In contrast with programming in traditional languages, a fixed-point calculus serves as a high-level programming language to easily, correctly, and succinctly describe model-checking algorithms While there have been declarative high-level formalisms that have been proposed earlier for analysis problems (e.g., Datalog the fixed-point calculus we propose has the salient feature that it also allows algorithmic aspects to be specified.
We exhibit two classes of algorithms of symbolic (BDD-based) algorithms written using this framework-- one for checking for errors in sequential recursive Boolean programs, and the other to check for errors reachable within a bounded number of context-switches in a concurrent recursive Boolean program. Our formalization of these otherwise complex algorithms is extremely simple, and spans just a page of fixed-point formulae. Moreover, we implement these algorithms in a tool called Getafix which expresses algorithms as fixed-point formulae and evaluates them efficiently using a symbolic fixed-point solver called Mucke. The resulting model-checking tools are surprisingly efficient and are competitive in performance with mature existing tools that have been fine-tuned for these problems.
978-1-60558-392-1
211-222
Torre, Salvatore La
41a7e97d-f8db-4e87-92f3-9622bb9fadc8
Madhusudan, Parthasarathy
8897ebc7-adbb-454f-a718-829b7c1f0dd1
Parlato, Gennaro
c28428a0-d3f3-4551-a4b5-b79e410f4923
2009
Torre, Salvatore La
41a7e97d-f8db-4e87-92f3-9622bb9fadc8
Madhusudan, Parthasarathy
8897ebc7-adbb-454f-a718-829b7c1f0dd1
Parlato, Gennaro
c28428a0-d3f3-4551-a4b5-b79e410f4923
Torre, Salvatore La, Madhusudan, Parthasarathy and Parlato, Gennaro
(2009)
Analyzing recursive programs using a fixed-point calculus.
PLDI '09. Proceedings of the 2009 ACM SIGPLAN conference on Programming Language Design and Implementation, Dublin, Ireland.
15 - 21 Jun 2009.
.
(doi:10.1145/1543135.1542500).
Record type:
Conference or Workshop Item
(Paper)
Abstract
We show that recursive programs where variables range over finite domains can be effectively and efficiently analyzed by describing the analysis algorithm using a formula in a fixed-point calculus. In contrast with programming in traditional languages, a fixed-point calculus serves as a high-level programming language to easily, correctly, and succinctly describe model-checking algorithms While there have been declarative high-level formalisms that have been proposed earlier for analysis problems (e.g., Datalog the fixed-point calculus we propose has the salient feature that it also allows algorithmic aspects to be specified.
We exhibit two classes of algorithms of symbolic (BDD-based) algorithms written using this framework-- one for checking for errors in sequential recursive Boolean programs, and the other to check for errors reachable within a bounded number of context-switches in a concurrent recursive Boolean program. Our formalization of these otherwise complex algorithms is extremely simple, and spans just a page of fixed-point formulae. Moreover, we implement these algorithms in a tool called Getafix which expresses algorithms as fixed-point formulae and evaluates them efficiently using a symbolic fixed-point solver called Mucke. The resulting model-checking tools are surprisingly efficient and are competitive in performance with mature existing tools that have been fine-tuned for these problems.
Text
p211-latorre.pdf
- Version of Record
More information
Published date: 2009
Venue - Dates:
PLDI '09. Proceedings of the 2009 ACM SIGPLAN conference on Programming Language Design and Implementation, Dublin, Ireland, 2009-06-15 - 2009-06-21
Organisations:
Electronic & Software Systems
Identifiers
Local EPrints ID: 272457
URI: http://eprints.soton.ac.uk/id/eprint/272457
ISBN: 978-1-60558-392-1
PURE UUID: b6a8ac0f-dd06-4eb3-98f2-b1e12ddbb272
Catalogue record
Date deposited: 13 Jun 2011 13:53
Last modified: 14 Mar 2024 10:01
Export record
Altmetrics
Contributors
Author:
Salvatore La Torre
Author:
Parthasarathy Madhusudan
Author:
Gennaro Parlato
Download statistics
Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.
View more statistics