A true positives theorem for a static race detector

RacerD is a static race detector that has been proven to be effective in engineering practice: it has seen thousands of data races fixed by developers before reaching production, and has supported the migration of Facebook's Android app rendering infrastructure from a single-threaded to a multi...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Proceedings of ACM on programming languages 2019-01, Vol.3 (POPL), p.1-29
Hauptverfasser: Gorogiannis, Nikos, O'Hearn, Peter W., Sergey, Ilya
Format: Artikel
Sprache:eng
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 29
container_issue POPL
container_start_page 1
container_title Proceedings of ACM on programming languages
container_volume 3
creator Gorogiannis, Nikos
O'Hearn, Peter W.
Sergey, Ilya
description RacerD is a static race detector that has been proven to be effective in engineering practice: it has seen thousands of data races fixed by developers before reaching production, and has supported the migration of Facebook's Android app rendering infrastructure from a single-threaded to a multi-threaded architecture. We prove a True Positives Theorem stating that, under certain assumptions, an idealized theoretical version of the analysis never reports a false positive. We also provide an empirical evaluation of an implementation of this analysis, versus the original RacerD. The theorem was motivated in the first case by the desire to understand the observation from production that RacerD was providing remarkably accurate signal to developers, and then the theorem guided further analyzer design decisions. Technically, our result can be seen as saying that the analysis computes an under-approximation of an over-approximation, which is the reverse of the more usual (over of under) situation in static analysis. Until now, static analyzers that are effective in practice but unsound have often been regarded as ad hoc; in contrast, we suggest that, in the future, theorems of this variety might be generally useful in understanding, justifying and designing effective static analyses for bug catching.
doi_str_mv 10.1145/3290370
format Article
fullrecord <record><control><sourceid>crossref</sourceid><recordid>TN_cdi_crossref_primary_10_1145_3290370</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>10_1145_3290370</sourcerecordid><originalsourceid>FETCH-LOGICAL-c258t-fbe49bd39b697aaf7286d0386c5a056097ec46c7760fd37189d761d71774a1eb3</originalsourceid><addsrcrecordid>eNpNj8tKAzEUQIMoWNriL2TnavTeyeMmy1J8FApu7HrIJDc4YpmSRMG_F7ELV-esDhwhbhDuELW5V70HRXAhFr0m06Hu8fKfX4t1re8AgF5pp_xCqI1s5ZPlaa5Tm764yvbGc-GjzHORQdYW2hRlCZFl4saxzWUlrnL4qLw-cykOjw-v2-du__K02272XeyNa10eWfsxKT9aTyFk6p1NoJyNJoCx4ImjtpHIQk6K0PlEFhMhkQ7Io1qK279uLHOthfNwKtMxlO8BYfjdHc676gcLrUU2</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>A true positives theorem for a static race detector</title><source>ACM Digital Library Complete</source><source>EZB-FREE-00999 freely available EZB journals</source><creator>Gorogiannis, Nikos ; O'Hearn, Peter W. ; Sergey, Ilya</creator><creatorcontrib>Gorogiannis, Nikos ; O'Hearn, Peter W. ; Sergey, Ilya</creatorcontrib><description>RacerD is a static race detector that has been proven to be effective in engineering practice: it has seen thousands of data races fixed by developers before reaching production, and has supported the migration of Facebook's Android app rendering infrastructure from a single-threaded to a multi-threaded architecture. We prove a True Positives Theorem stating that, under certain assumptions, an idealized theoretical version of the analysis never reports a false positive. We also provide an empirical evaluation of an implementation of this analysis, versus the original RacerD. The theorem was motivated in the first case by the desire to understand the observation from production that RacerD was providing remarkably accurate signal to developers, and then the theorem guided further analyzer design decisions. Technically, our result can be seen as saying that the analysis computes an under-approximation of an over-approximation, which is the reverse of the more usual (over of under) situation in static analysis. Until now, static analyzers that are effective in practice but unsound have often been regarded as ad hoc; in contrast, we suggest that, in the future, theorems of this variety might be generally useful in understanding, justifying and designing effective static analyses for bug catching.</description><identifier>ISSN: 2475-1421</identifier><identifier>EISSN: 2475-1421</identifier><identifier>DOI: 10.1145/3290370</identifier><language>eng</language><ispartof>Proceedings of ACM on programming languages, 2019-01, Vol.3 (POPL), p.1-29</ispartof><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c258t-fbe49bd39b697aaf7286d0386c5a056097ec46c7760fd37189d761d71774a1eb3</citedby><cites>FETCH-LOGICAL-c258t-fbe49bd39b697aaf7286d0386c5a056097ec46c7760fd37189d761d71774a1eb3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,780,784,27922,27923</link.rule.ids></links><search><creatorcontrib>Gorogiannis, Nikos</creatorcontrib><creatorcontrib>O'Hearn, Peter W.</creatorcontrib><creatorcontrib>Sergey, Ilya</creatorcontrib><title>A true positives theorem for a static race detector</title><title>Proceedings of ACM on programming languages</title><description>RacerD is a static race detector that has been proven to be effective in engineering practice: it has seen thousands of data races fixed by developers before reaching production, and has supported the migration of Facebook's Android app rendering infrastructure from a single-threaded to a multi-threaded architecture. We prove a True Positives Theorem stating that, under certain assumptions, an idealized theoretical version of the analysis never reports a false positive. We also provide an empirical evaluation of an implementation of this analysis, versus the original RacerD. The theorem was motivated in the first case by the desire to understand the observation from production that RacerD was providing remarkably accurate signal to developers, and then the theorem guided further analyzer design decisions. Technically, our result can be seen as saying that the analysis computes an under-approximation of an over-approximation, which is the reverse of the more usual (over of under) situation in static analysis. Until now, static analyzers that are effective in practice but unsound have often been regarded as ad hoc; in contrast, we suggest that, in the future, theorems of this variety might be generally useful in understanding, justifying and designing effective static analyses for bug catching.</description><issn>2475-1421</issn><issn>2475-1421</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2019</creationdate><recordtype>article</recordtype><recordid>eNpNj8tKAzEUQIMoWNriL2TnavTeyeMmy1J8FApu7HrIJDc4YpmSRMG_F7ELV-esDhwhbhDuELW5V70HRXAhFr0m06Hu8fKfX4t1re8AgF5pp_xCqI1s5ZPlaa5Tm764yvbGc-GjzHORQdYW2hRlCZFl4saxzWUlrnL4qLw-cykOjw-v2-du__K02272XeyNa10eWfsxKT9aTyFk6p1NoJyNJoCx4ImjtpHIQk6K0PlEFhMhkQ7Io1qK279uLHOthfNwKtMxlO8BYfjdHc676gcLrUU2</recordid><startdate>20190101</startdate><enddate>20190101</enddate><creator>Gorogiannis, Nikos</creator><creator>O'Hearn, Peter W.</creator><creator>Sergey, Ilya</creator><scope>AAYXX</scope><scope>CITATION</scope></search><sort><creationdate>20190101</creationdate><title>A true positives theorem for a static race detector</title><author>Gorogiannis, Nikos ; O'Hearn, Peter W. ; Sergey, Ilya</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c258t-fbe49bd39b697aaf7286d0386c5a056097ec46c7760fd37189d761d71774a1eb3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2019</creationdate><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Gorogiannis, Nikos</creatorcontrib><creatorcontrib>O'Hearn, Peter W.</creatorcontrib><creatorcontrib>Sergey, Ilya</creatorcontrib><collection>CrossRef</collection><jtitle>Proceedings of ACM on programming languages</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Gorogiannis, Nikos</au><au>O'Hearn, Peter W.</au><au>Sergey, Ilya</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>A true positives theorem for a static race detector</atitle><jtitle>Proceedings of ACM on programming languages</jtitle><date>2019-01-01</date><risdate>2019</risdate><volume>3</volume><issue>POPL</issue><spage>1</spage><epage>29</epage><pages>1-29</pages><issn>2475-1421</issn><eissn>2475-1421</eissn><abstract>RacerD is a static race detector that has been proven to be effective in engineering practice: it has seen thousands of data races fixed by developers before reaching production, and has supported the migration of Facebook's Android app rendering infrastructure from a single-threaded to a multi-threaded architecture. We prove a True Positives Theorem stating that, under certain assumptions, an idealized theoretical version of the analysis never reports a false positive. We also provide an empirical evaluation of an implementation of this analysis, versus the original RacerD. The theorem was motivated in the first case by the desire to understand the observation from production that RacerD was providing remarkably accurate signal to developers, and then the theorem guided further analyzer design decisions. Technically, our result can be seen as saying that the analysis computes an under-approximation of an over-approximation, which is the reverse of the more usual (over of under) situation in static analysis. Until now, static analyzers that are effective in practice but unsound have often been regarded as ad hoc; in contrast, we suggest that, in the future, theorems of this variety might be generally useful in understanding, justifying and designing effective static analyses for bug catching.</abstract><doi>10.1145/3290370</doi><tpages>29</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 2475-1421
ispartof Proceedings of ACM on programming languages, 2019-01, Vol.3 (POPL), p.1-29
issn 2475-1421
2475-1421
language eng
recordid cdi_crossref_primary_10_1145_3290370
source ACM Digital Library Complete; EZB-FREE-00999 freely available EZB journals
title A true positives theorem for a static race detector
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-09T12%3A12%3A59IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=A%20true%20positives%20theorem%20for%20a%20static%20race%20detector&rft.jtitle=Proceedings%20of%20ACM%20on%20programming%20languages&rft.au=Gorogiannis,%20Nikos&rft.date=2019-01-01&rft.volume=3&rft.issue=POPL&rft.spage=1&rft.epage=29&rft.pages=1-29&rft.issn=2475-1421&rft.eissn=2475-1421&rft_id=info:doi/10.1145/3290370&rft_dat=%3Ccrossref%3E10_1145_3290370%3C/crossref%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true