SmallRace: Static Race Detection for Dynamic Languages - A Case on Smalltalk.

Saved in:
Bibliographic Details
Title: SmallRace: Static Race Detection for Dynamic Languages - A Case on Smalltalk.
Authors: Cui, Siwei1 siweicui@tamu.edu, Gao, Yifei1 keizoku-pravda@tamu.edu, Unterguggenberger, Rainer2 rainer.unterguggenberger@lamresearch.com, Pichler, Wilfried2 wilfried.pichler@lamresearch.com, Livingstone, Sean1 seanlivingstone@tamu.edu, Huang, Jeff1 jeff@cse.tamu.edu
Source: ICSE: International Conference on Software Engineering. 2023, p1136-1147. 12p.
Subjects: Dylan (Computer program language), Smalltalk (Computer program language), Computer software, Object-oriented programming, Source code
Abstract: Smalltalk, one of the first object-oriented programming languages, has had a tremendous influence on the evolution of computer technology. Due to the simplicity and productivity provided by the language, Smalltalk is still in active use today by many companies with large legacy codebases and with new code written every day. A crucial problem in Smalltalk programming is the race condition. Like in any other parallel language, debugging race conditions is inherently challenging, but in Smalltalk, it is even more challenging due to its dynamic nature. Being a purely dynamically-typed language, Smalltalk allows assigning any object to any variable without type restrictions, and allows forking new threads to execute arbitrary anonymous code blocks passed as objects. In Smalltalk, race conditions can be introduced easily, but are difficult to prevent at runtime. We present SmallRace, a novel static race detection framework designed for multithreaded dynamic languages, with a focus on Smalltalk. A key component of SmallRace is SmallIR, a subset of LLVM IR, in which all variables are declared with the same type---a generic pointer i8*. This allows SmallRace to design an effective interprocedural thread-sensitive pointer analysis to infer the concrete types of dynamic variables. SmallRace automatically translates Smalltalk source code into SmallIR, supports most of the modern Smalltalk syntax in Visual Works, and generates actionable race reports with detailed debugging information. Importantly, SmallRace has been used to analyze a production codebase in a large company with over a million lines of code, and it has found tens of complex race conditions in the production code. [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.)
Database: Engineering Source
Full text is not displayed to guests.
FullText Links:
  – Type: pdflink
Text:
  Availability: 1
Header DbId: egs
DbLabel: Engineering Source
An: 185196072
AccessLevel: 6
PubType: Conference
PubTypeId: conference
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: SmallRace: Static Race Detection for Dynamic Languages - A Case on Smalltalk.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Cui%2C+Siwei%22">Cui, Siwei</searchLink><relatesTo>1</relatesTo><i> siweicui@tamu.edu</i><br /><searchLink fieldCode="AR" term="%22Gao%2C+Yifei%22">Gao, Yifei</searchLink><relatesTo>1</relatesTo><i> keizoku-pravda@tamu.edu</i><br /><searchLink fieldCode="AR" term="%22Unterguggenberger%2C+Rainer%22">Unterguggenberger, Rainer</searchLink><relatesTo>2</relatesTo><i> rainer.unterguggenberger@lamresearch.com</i><br /><searchLink fieldCode="AR" term="%22Pichler%2C+Wilfried%22">Pichler, Wilfried</searchLink><relatesTo>2</relatesTo><i> wilfried.pichler@lamresearch.com</i><br /><searchLink fieldCode="AR" term="%22Livingstone%2C+Sean%22">Livingstone, Sean</searchLink><relatesTo>1</relatesTo><i> seanlivingstone@tamu.edu</i><br /><searchLink fieldCode="AR" term="%22Huang%2C+Jeff%22">Huang, Jeff</searchLink><relatesTo>1</relatesTo><i> jeff@cse.tamu.edu</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22ICSE%3A+International+Conference+on+Software+Engineering%22">ICSE: International Conference on Software Engineering</searchLink>. 2023, p1136-1147. 12p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Dylan+%28Computer+program+language%29%22">Dylan (Computer program language)</searchLink><br /><searchLink fieldCode="DE" term="%22Smalltalk+%28Computer+program+language%29%22">Smalltalk (Computer program language)</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+software%22">Computer software</searchLink><br /><searchLink fieldCode="DE" term="%22Object-oriented+programming%22">Object-oriented programming</searchLink><br /><searchLink fieldCode="DE" term="%22Source+code%22">Source code</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Smalltalk, one of the first object-oriented programming languages, has had a tremendous influence on the evolution of computer technology. Due to the simplicity and productivity provided by the language, Smalltalk is still in active use today by many companies with large legacy codebases and with new code written every day. A crucial problem in Smalltalk programming is the race condition. Like in any other parallel language, debugging race conditions is inherently challenging, but in Smalltalk, it is even more challenging due to its dynamic nature. Being a purely dynamically-typed language, Smalltalk allows assigning any object to any variable without type restrictions, and allows forking new threads to execute arbitrary anonymous code blocks passed as objects. In Smalltalk, race conditions can be introduced easily, but are difficult to prevent at runtime. We present SmallRace, a novel static race detection framework designed for multithreaded dynamic languages, with a focus on Smalltalk. A key component of SmallRace is SmallIR, a subset of LLVM IR, in which all variables are declared with the same type---a generic pointer i8*. This allows SmallRace to design an effective interprocedural thread-sensitive pointer analysis to infer the concrete types of dynamic variables. SmallRace automatically translates Smalltalk source code into SmallIR, supports most of the modern Smalltalk syntax in Visual Works, and generates actionable race reports with detailed debugging information. Importantly, SmallRace has been used to analyze a production codebase in a large company with over a million lines of code, and it has found tens of complex race conditions in the production code. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  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://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=185196072
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1109/ICSE48619.2023.00102
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 12
        StartPage: 1136
    Subjects:
      – SubjectFull: Dylan (Computer program language)
        Type: general
      – SubjectFull: Smalltalk (Computer program language)
        Type: general
      – SubjectFull: Computer software
        Type: general
      – SubjectFull: Object-oriented programming
        Type: general
      – SubjectFull: Source code
        Type: general
    Titles:
      – TitleFull: SmallRace: Static Race Detection for Dynamic Languages - A Case on Smalltalk.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Cui, Siwei
      – PersonEntity:
          Name:
            NameFull: Gao, Yifei
      – PersonEntity:
          Name:
            NameFull: Unterguggenberger, Rainer
      – PersonEntity:
          Name:
            NameFull: Pichler, Wilfried
      – PersonEntity:
          Name:
            NameFull: Livingstone, Sean
      – PersonEntity:
          Name:
            NameFull: Huang, Jeff
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 05
              Text: 2023
              Type: published
              Y: 2023
          Titles:
            – TitleFull: ICSE: International Conference on Software Engineering
              Type: main
ResultId 1