Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
Revised report on the algorithm language ALGOL 60
Communications of the ACM
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
PASCAL user manual and report
Symbolic evaluation of programs: a look at loop analysis
SYMSAC '76 Proceedings of the third ACM symposium on Symbolic and algebraic computation
Calculating properties of programs by valuations on specific models
Proceedings of ACM conference on Proving assertions about programs
An assessment of the programming language PASCAL
Proceedings of the international conference on Reliable software
Simula Begin
Property extraction in well-founded property sets
IEEE Transactions on Software Engineering
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Interprocedural may-alias analysis for pointers: beyond k-limiting
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Model-checking infinite state-space systems with fine-grained abstractions using SPIN
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
Flow analysis and optimization of LISP-like structures
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Modular Static Program Analysis
CC '02 Proceedings of the 11th International Conference on Compiler Construction
SC(R)3: towards usability of formal methods
CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
Precise interprocedural analysis through linear algebra
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parameter validation for software reliability
ACM SIGPLAN Notices
Conditional must not aliasing for static race detection
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Integrating physical systems in the static analysis of embedded control software
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Timing analysis and timing predictability
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
Hi-index | 0.00 |
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.