Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages)

Patrick Cousot, Radhia Cousot

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

The original formulation of abstract interpretation represents program properties by sets. A property is understood as the set of semantic values satisfying it. Strongest program properties are defined by the collecting semantics which extends the standard semantics to powersets of semantic values. The approximation relation corresponding to the logical implication of program properties is subset inclusion. This was expressed using set and lattice theory in the context of transition systems that is of an operational semantics. This approach was applied to imperative programs, first-order procedures, communicating processes, parallel and logic programs. Some applications of abstract interpretation, such as strictness analysis for lazy functional languages, require infinite behaviors of higher-order functions to be taken into account. In this context denotational semantics is very natural (strictness is f(⊥) = ⊥ where ⊥ denotes non-termination). The set-theoretic approach to abstract interpretation was felt incompatible with denotational semantics. The attempts to express the collecting semantics in denotational form were unsuccessful since properties of functions f ∈ D1 → D2 had to be expressed as continuous functions between powerdomains F ∈ PD1 → PD2 which is not expressive enough. We solve the problem by returning to the sources of abstract interpretation, which consists in considering collecting semantics such that e.g. properties of functions f ∈ D1 → D2 are sets of functions F ∈ p(D1 → D2). Various Galois connection based approximations of F ∈ p(D1 → D2) can then be applied. By using Galois connections, properties of the standard semantics naturally transfer to the collecting and then to the abstract semantics. This set-theoretic abstract interpretation framework is formulated in a way which is independent of both the programming language and the method used to specify its semantics. It is illustrated for a higher-order monomorphically typed lazy functional language starting from its standard denotational semantics. The chosen application is comportment analysis which generalizes strictness, termination, projection (including absence), dual projection (including totality) and PER analysis and is expressed in denotational style.

Original languageEnglish (US)
Title of host publicationIEEE International Conference on Computer Languages
PublisherPubl by IEEE
Pages95-112
Number of pages18
ISBN (Print)0818656425
StatePublished - 1994
EventProceedings of the 1994 International Conference on Computer Languages - Toulouse, Fr
Duration: May 16 1994May 19 1994

Other

OtherProceedings of the 1994 International Conference on Computer Languages
CityToulouse, Fr
Period5/16/945/19/94

Fingerprint

Semantics
Set theory
Lattice theory
Computer programming languages

ASJC Scopus subject areas

  • Software

Cite this

Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages). / Cousot, Patrick; Cousot, Radhia.

IEEE International Conference on Computer Languages. Publ by IEEE, 1994. p. 95-112.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Cousot, P & Cousot, R 1994, Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages). in IEEE International Conference on Computer Languages. Publ by IEEE, pp. 95-112, Proceedings of the 1994 International Conference on Computer Languages, Toulouse, Fr, 5/16/94.
@inproceedings{d714729ac46941c98231989426d181bc,
title = "Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages)",
abstract = "The original formulation of abstract interpretation represents program properties by sets. A property is understood as the set of semantic values satisfying it. Strongest program properties are defined by the collecting semantics which extends the standard semantics to powersets of semantic values. The approximation relation corresponding to the logical implication of program properties is subset inclusion. This was expressed using set and lattice theory in the context of transition systems that is of an operational semantics. This approach was applied to imperative programs, first-order procedures, communicating processes, parallel and logic programs. Some applications of abstract interpretation, such as strictness analysis for lazy functional languages, require infinite behaviors of higher-order functions to be taken into account. In this context denotational semantics is very natural (strictness is f(⊥) = ⊥ where ⊥ denotes non-termination). The set-theoretic approach to abstract interpretation was felt incompatible with denotational semantics. The attempts to express the collecting semantics in denotational form were unsuccessful since properties of functions f ∈ D1 → D2 had to be expressed as continuous functions between powerdomains F ∈ PD1 → PD2 which is not expressive enough. We solve the problem by returning to the sources of abstract interpretation, which consists in considering collecting semantics such that e.g. properties of functions f ∈ D1 → D2 are sets of functions F ∈ p(D1 → D2). Various Galois connection based approximations of F ∈ p(D1 → D2) can then be applied. By using Galois connections, properties of the standard semantics naturally transfer to the collecting and then to the abstract semantics. This set-theoretic abstract interpretation framework is formulated in a way which is independent of both the programming language and the method used to specify its semantics. It is illustrated for a higher-order monomorphically typed lazy functional language starting from its standard denotational semantics. The chosen application is comportment analysis which generalizes strictness, termination, projection (including absence), dual projection (including totality) and PER analysis and is expressed in denotational style.",
author = "Patrick Cousot and Radhia Cousot",
year = "1994",
language = "English (US)",
isbn = "0818656425",
pages = "95--112",
booktitle = "IEEE International Conference on Computer Languages",
publisher = "Publ by IEEE",

}

TY - GEN

T1 - Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages)

AU - Cousot, Patrick

AU - Cousot, Radhia

PY - 1994

Y1 - 1994

N2 - The original formulation of abstract interpretation represents program properties by sets. A property is understood as the set of semantic values satisfying it. Strongest program properties are defined by the collecting semantics which extends the standard semantics to powersets of semantic values. The approximation relation corresponding to the logical implication of program properties is subset inclusion. This was expressed using set and lattice theory in the context of transition systems that is of an operational semantics. This approach was applied to imperative programs, first-order procedures, communicating processes, parallel and logic programs. Some applications of abstract interpretation, such as strictness analysis for lazy functional languages, require infinite behaviors of higher-order functions to be taken into account. In this context denotational semantics is very natural (strictness is f(⊥) = ⊥ where ⊥ denotes non-termination). The set-theoretic approach to abstract interpretation was felt incompatible with denotational semantics. The attempts to express the collecting semantics in denotational form were unsuccessful since properties of functions f ∈ D1 → D2 had to be expressed as continuous functions between powerdomains F ∈ PD1 → PD2 which is not expressive enough. We solve the problem by returning to the sources of abstract interpretation, which consists in considering collecting semantics such that e.g. properties of functions f ∈ D1 → D2 are sets of functions F ∈ p(D1 → D2). Various Galois connection based approximations of F ∈ p(D1 → D2) can then be applied. By using Galois connections, properties of the standard semantics naturally transfer to the collecting and then to the abstract semantics. This set-theoretic abstract interpretation framework is formulated in a way which is independent of both the programming language and the method used to specify its semantics. It is illustrated for a higher-order monomorphically typed lazy functional language starting from its standard denotational semantics. The chosen application is comportment analysis which generalizes strictness, termination, projection (including absence), dual projection (including totality) and PER analysis and is expressed in denotational style.

AB - The original formulation of abstract interpretation represents program properties by sets. A property is understood as the set of semantic values satisfying it. Strongest program properties are defined by the collecting semantics which extends the standard semantics to powersets of semantic values. The approximation relation corresponding to the logical implication of program properties is subset inclusion. This was expressed using set and lattice theory in the context of transition systems that is of an operational semantics. This approach was applied to imperative programs, first-order procedures, communicating processes, parallel and logic programs. Some applications of abstract interpretation, such as strictness analysis for lazy functional languages, require infinite behaviors of higher-order functions to be taken into account. In this context denotational semantics is very natural (strictness is f(⊥) = ⊥ where ⊥ denotes non-termination). The set-theoretic approach to abstract interpretation was felt incompatible with denotational semantics. The attempts to express the collecting semantics in denotational form were unsuccessful since properties of functions f ∈ D1 → D2 had to be expressed as continuous functions between powerdomains F ∈ PD1 → PD2 which is not expressive enough. We solve the problem by returning to the sources of abstract interpretation, which consists in considering collecting semantics such that e.g. properties of functions f ∈ D1 → D2 are sets of functions F ∈ p(D1 → D2). Various Galois connection based approximations of F ∈ p(D1 → D2) can then be applied. By using Galois connections, properties of the standard semantics naturally transfer to the collecting and then to the abstract semantics. This set-theoretic abstract interpretation framework is formulated in a way which is independent of both the programming language and the method used to specify its semantics. It is illustrated for a higher-order monomorphically typed lazy functional language starting from its standard denotational semantics. The chosen application is comportment analysis which generalizes strictness, termination, projection (including absence), dual projection (including totality) and PER analysis and is expressed in denotational style.

UR - http://www.scopus.com/inward/record.url?scp=0028196382&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0028196382&partnerID=8YFLogxK

M3 - Conference contribution

SN - 0818656425

SP - 95

EP - 112

BT - IEEE International Conference on Computer Languages

PB - Publ by IEEE

ER -