Static determination of dynamic properties of generalized type unions

Patrick Cousot, Radhia Cousot

Research output: Contribution to conferencePaper

Abstract

The classical programming languages such as PASCAL or ALGOL 68 do not Drovide full data type security. Run-time errors are not precluded on basic operations. Type safety necessitates a refinement of the data type notion which allows subtypes. The compiler must also be able to ensure that basic operations are applicable. This verification consists in determining a local subtype of globally declared variables or constants. This may be achieved by improved compiler capabilities to analyze the program properties or by language constructs which permit the expression of these properties. Both approaches are discussed and illustrated by the problems of access to records via pointers, access to variants of record structures, determination of disjoint collections of linked records, and determination of integer subrange. Both aporoaches are complementary and a balance must be found between what must be specified by the programmer and what must be discovered by the compiler.

Original languageEnglish (US)
Pages77-94
Number of pages18
DOIs
StatePublished - Mar 1 1977
EventACM Conference on Language Design for Reliable Software 1977 - Raleigh, United States
Duration: Mar 28 1977Mar 30 1977

Other

OtherACM Conference on Language Design for Reliable Software 1977
CountryUnited States
CityRaleigh
Period3/28/773/30/77

Fingerprint

ALGOL (programming language)
Computer programming languages

Keywords

  • Abstract interoretation of programs
  • ALGOL 68
  • Data type
  • Domains/collections
  • Error detection caoabilities
  • Euclid
  • Integer subrange type
  • PASCAL
  • Secure use of pointers/variants of record structures
  • Subtype
  • System of equations
  • Type safety
  • Type unions
  • Type verification/discovery

ASJC Scopus subject areas

  • Software

Cite this

Cousot, P., & Cousot, R. (1977). Static determination of dynamic properties of generalized type unions. 77-94. Paper presented at ACM Conference on Language Design for Reliable Software 1977, Raleigh, United States. https://doi.org/10.1145/800022.808314

Static determination of dynamic properties of generalized type unions. / Cousot, Patrick; Cousot, Radhia.

1977. 77-94 Paper presented at ACM Conference on Language Design for Reliable Software 1977, Raleigh, United States.

Research output: Contribution to conferencePaper

Cousot, P & Cousot, R 1977, 'Static determination of dynamic properties of generalized type unions' Paper presented at ACM Conference on Language Design for Reliable Software 1977, Raleigh, United States, 3/28/77 - 3/30/77, pp. 77-94. https://doi.org/10.1145/800022.808314
Cousot P, Cousot R. Static determination of dynamic properties of generalized type unions. 1977. Paper presented at ACM Conference on Language Design for Reliable Software 1977, Raleigh, United States. https://doi.org/10.1145/800022.808314
Cousot, Patrick ; Cousot, Radhia. / Static determination of dynamic properties of generalized type unions. Paper presented at ACM Conference on Language Design for Reliable Software 1977, Raleigh, United States.18 p.
@conference{5c1e6fffbc644258b5ae36c8daa1760a,
title = "Static determination of dynamic properties of generalized type unions",
abstract = "The classical programming languages such as PASCAL or ALGOL 68 do not Drovide full data type security. Run-time errors are not precluded on basic operations. Type safety necessitates a refinement of the data type notion which allows subtypes. The compiler must also be able to ensure that basic operations are applicable. This verification consists in determining a local subtype of globally declared variables or constants. This may be achieved by improved compiler capabilities to analyze the program properties or by language constructs which permit the expression of these properties. Both approaches are discussed and illustrated by the problems of access to records via pointers, access to variants of record structures, determination of disjoint collections of linked records, and determination of integer subrange. Both aporoaches are complementary and a balance must be found between what must be specified by the programmer and what must be discovered by the compiler.",
keywords = "Abstract interoretation of programs, ALGOL 68, Data type, Domains/collections, Error detection caoabilities, Euclid, Integer subrange type, PASCAL, Secure use of pointers/variants of record structures, Subtype, System of equations, Type safety, Type unions, Type verification/discovery",
author = "Patrick Cousot and Radhia Cousot",
year = "1977",
month = "3",
day = "1",
doi = "10.1145/800022.808314",
language = "English (US)",
pages = "77--94",
note = "ACM Conference on Language Design for Reliable Software 1977 ; Conference date: 28-03-1977 Through 30-03-1977",

}

TY - CONF

T1 - Static determination of dynamic properties of generalized type unions

AU - Cousot, Patrick

AU - Cousot, Radhia

PY - 1977/3/1

Y1 - 1977/3/1

N2 - The classical programming languages such as PASCAL or ALGOL 68 do not Drovide full data type security. Run-time errors are not precluded on basic operations. Type safety necessitates a refinement of the data type notion which allows subtypes. The compiler must also be able to ensure that basic operations are applicable. This verification consists in determining a local subtype of globally declared variables or constants. This may be achieved by improved compiler capabilities to analyze the program properties or by language constructs which permit the expression of these properties. Both approaches are discussed and illustrated by the problems of access to records via pointers, access to variants of record structures, determination of disjoint collections of linked records, and determination of integer subrange. Both aporoaches are complementary and a balance must be found between what must be specified by the programmer and what must be discovered by the compiler.

AB - The classical programming languages such as PASCAL or ALGOL 68 do not Drovide full data type security. Run-time errors are not precluded on basic operations. Type safety necessitates a refinement of the data type notion which allows subtypes. The compiler must also be able to ensure that basic operations are applicable. This verification consists in determining a local subtype of globally declared variables or constants. This may be achieved by improved compiler capabilities to analyze the program properties or by language constructs which permit the expression of these properties. Both approaches are discussed and illustrated by the problems of access to records via pointers, access to variants of record structures, determination of disjoint collections of linked records, and determination of integer subrange. Both aporoaches are complementary and a balance must be found between what must be specified by the programmer and what must be discovered by the compiler.

KW - Abstract interoretation of programs

KW - ALGOL 68

KW - Data type

KW - Domains/collections

KW - Error detection caoabilities

KW - Euclid

KW - Integer subrange type

KW - PASCAL

KW - Secure use of pointers/variants of record structures

KW - Subtype

KW - System of equations

KW - Type safety

KW - Type unions

KW - Type verification/discovery

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

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

U2 - 10.1145/800022.808314

DO - 10.1145/800022.808314

M3 - Paper

SP - 77

EP - 94

ER -