Verifying Determinism in Sequential Programs.

Uloženo v:
Podrobná bibliografie
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