Abstract
The classical programming languages such as PASCAL or ALGOL 68 do not provide 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 approaches 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 language | English (US) |
---|---|
Pages (from-to) | 77-94 |
Number of pages | 18 |
Journal | ACM SIGPLAN Notices |
Volume | 12 |
Issue number | 3 |
DOIs | |
State | Published - Mar 1 1977 |
Keywords
- ALGOL 68
- Abstract interpretation of programs
- Data type
- Domains/collections
- EUCLIO
- Error detection capabilities
- 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
- Computer Graphics and Computer-Aided Design