Verifying Determinism in Sequential Programs
When a program is nondeterministic, it is difficult to test and debug. Nondeterminism occurs even in sequential programs iterating over the elements of a hash table. We have created a type system that expresses determinism specifications in a program. The key ideas in the type system are type qualif...
Saved in:
| Published in | 2021 IEEE/ACM 43rd International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) pp. 213 - 214 |
|---|---|
| Main Authors | , , , |
| Format | Conference Proceeding |
| Language | English |
| Published |
IEEE
01.05.2021
|
| Subjects | |
| Online Access | Get full text |
| ISBN | 1665412194 9781665412193 |
| DOI | 10.1109/ICSE-Companion52605.2021.00095 |
Cover
| Summary: | When a program is nondeterministic, it is difficult to test and debug. Nondeterminism occurs even in sequential programs iterating over the elements of a hash table. We have created a type system that expresses determinism specifications in a program. The key ideas in the type system are type qualifiers for nondeterminism, order-nondeterminism, and determinism; type well-formedness rules to restrict collection types; and enhancements to polymorphism that improve precision when analyzing collection operations. We implemented our type system for Java. Our type checker, the Determinism Checker, warns if a program is nondeterministic or verifies that the program is deterministic. In this paper, we explain how to obtain our tool and reproduce the results described inhttps://homes.cs.washington.edu/ mernst/pubs/determinismicse2021.pdf. Additionally, our tool and subject programs are available at https://zenodo.org/record/4536285#.YEaCxZNKiWw. |
|---|---|
| ISBN: | 1665412194 9781665412193 |
| DOI: | 10.1109/ICSE-Companion52605.2021.00095 |