The University of Southampton
University of Southampton Institutional Repository

Analyzing recursive programs using a fixed-point calculus

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
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. pp. 211-222 . (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
Download (451kB)

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

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of http://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×