Verifying Determinism in Sequential Programs.
Uloženo v:
| Název: | Verifying Determinism in Sequential Programs. |
|---|---|
| Autoři: | Mudduluru, Rashmi, Waataja, Jason, Millstein, Suzanne, Ernst, Michael D. |
| Zdroj: | ICSE: International Conference on Software Engineering; 5/22/2021, p37-49, 13p |
| Témata: | DEBUGGING, ARTIFICIAL intelligence, SOFTWARE engineering, COMPUTER software development, HASHING |
| Abstrakt: | When a program is nondeterministic, it is difficult to test and debug. Nondeterminism occurs even in sequential programs: e.g., by 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. While state-ofthe- art nondeterminism detection tools rely on observing output from specific runs, our approach soundly verifies determinism at compile time. 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 case studies of 90097 lines of code, the Determinism Checker found 87 previously-unknown nondeterminism errors, even in programs that had been heavily vetted by developers who were greatly concerned about nondeterminism errors. In experiments, the Determinism Checker found all of the non-concurrency-related nondeterminism that was found by state-of-the-art dynamic approaches for detecting flaky tests. [ABSTRACT FROM AUTHOR] |
| Copyright of ICSE: International Conference on Software Engineering is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.) | |
| Databáze: | Complementary Index |
| FullText | Text: Availability: 0 |
|---|---|
| Header | DbId: edb DbLabel: Complementary Index An: 155538672 RelevancyScore: 931 AccessLevel: 6 PubType: Conference PubTypeId: conference PreciseRelevancyScore: 930.638366699219 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: Verifying Determinism in Sequential Programs. – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Mudduluru%2C+Rashmi%22">Mudduluru, Rashmi</searchLink><br /><searchLink fieldCode="AR" term="%22Waataja%2C+Jason%22">Waataja, Jason</searchLink><br /><searchLink fieldCode="AR" term="%22Millstein%2C+Suzanne%22">Millstein, Suzanne</searchLink><br /><searchLink fieldCode="AR" term="%22Ernst%2C+Michael+D%2E%22">Ernst, Michael D.</searchLink> – Name: TitleSource Label: Source Group: Src Data: ICSE: International Conference on Software Engineering; 5/22/2021, p37-49, 13p – Name: Subject Label: Subject Terms Group: Su Data: <searchLink fieldCode="DE" term="%22DEBUGGING%22">DEBUGGING</searchLink><br /><searchLink fieldCode="DE" term="%22ARTIFICIAL+intelligence%22">ARTIFICIAL intelligence</searchLink><br /><searchLink fieldCode="DE" term="%22SOFTWARE+engineering%22">SOFTWARE engineering</searchLink><br /><searchLink fieldCode="DE" term="%22COMPUTER+software+development%22">COMPUTER software development</searchLink><br /><searchLink fieldCode="DE" term="%22HASHING%22">HASHING</searchLink> – Name: Abstract Label: Abstract Group: Ab Data: When a program is nondeterministic, it is difficult to test and debug. Nondeterminism occurs even in sequential programs: e.g., by 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. While state-ofthe- art nondeterminism detection tools rely on observing output from specific runs, our approach soundly verifies determinism at compile time. 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 case studies of 90097 lines of code, the Determinism Checker found 87 previously-unknown nondeterminism errors, even in programs that had been heavily vetted by developers who were greatly concerned about nondeterminism errors. In experiments, the Determinism Checker found all of the non-concurrency-related nondeterminism that was found by state-of-the-art dynamic approaches for detecting flaky tests. [ABSTRACT FROM AUTHOR] – Name: Abstract Label: Group: Ab Data: <i>Copyright of ICSE: International Conference on Software Engineering is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.) |
| PLink | https://erproxy.cvtisr.sk/sfx/access?url=https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edb&AN=155538672 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1109/ICSE43902.2021.00017 Languages: – Code: eng Text: English PhysicalDescription: Pagination: PageCount: 13 StartPage: 37 Subjects: – SubjectFull: DEBUGGING Type: general – SubjectFull: ARTIFICIAL intelligence Type: general – SubjectFull: SOFTWARE engineering Type: general – SubjectFull: COMPUTER software development Type: general – SubjectFull: HASHING Type: general Titles: – TitleFull: Verifying Determinism in Sequential Programs. Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Mudduluru, Rashmi – PersonEntity: Name: NameFull: Waataja, Jason – PersonEntity: Name: NameFull: Millstein, Suzanne – PersonEntity: Name: NameFull: Ernst, Michael D. IsPartOfRelationships: – BibEntity: Dates: – D: 22 M: 05 Text: 5/22/2021 Type: published Y: 2021 Titles: – TitleFull: ICSE: International Conference on Software Engineering Type: main |
| ResultId | 1 |