Polyvariant Program Specialisation with Property-based Abstraction

John P. Gallagher
(Roskilde University and IMDEA Software Institute)

In this paper we show that property-based abstraction, an established technique originating in software model checking, is a flexible method of controlling polyvariance in program specialisation in a standard online specialisation algorithm. Specialisation is a program transformation that transforms a program with respect to given constraints that restrict its behaviour. Polyvariant specialisation refers to the generation of two or more specialised versions of the same program code. The same program point can be reached more than once during a computation, with different constraints applying in each case, and polyvariant specialisation allows different specialisations to be realised. A property-based abstraction uses a finite set of properties to define a finite set of abstract versions of predicates, ensuring that only a finite number of specialised versions is generated. The particular choice of properties is critical for polyvariance; too few versions can result in insufficient specialisation, while too many can result in an increase of code size with no corresponding efficiency gains. Using examples, we show the flexibility of specialisation with property-based abstraction and discuss its application in control flow refinement, verification, termination analysis and dimension-based specialisation.

In Alexei Lisitsa and Andrei Nemytykh: Proceedings Seventh International Workshop on Verification and Program Transformation (VPT 2019), Genova, Italy, 2nd April 2019, Electronic Proceedings in Theoretical Computer Science 299, pp. 34–48.
Published: 20th August 2019.

ArXived at: https://dx.doi.org/10.4204/EPTCS.299.6 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org