Dataflödesanalyser för samtidiga program skiljer sig från deras enkelgängade motsvarigheter genom att de måste redogöra för delade minnesplatser som skrivs över av samtidiga trådar. Befintliga dataflödesanalystekniker för samtidiga program faller vanligtvis i ena änden av ett spektrum: i ena änden dödar analysen konservativt fakta om alla data som eventuellt kan delas av flera trådar; i den andra änden bestämmer en exakt trådlösande analys vilka data som kan delas, och därmed vilka dataflödesfakta som måste ogiltigförklaras. Det tidigare tillvägagångssättet kan lida av oförutseddhet, medan det senare inte skalas. Vi presenterar RADAR, ett ramverk som automatiskt omvandlar en dataflödesanalys för sekventiella program till ett som är korrekt för samtidiga program. RADAR använder en race detektion motor för att döda dataflöde fakta, genereras och förökas av den sekventiella analysen, som blir ogiltig på grund av samtidiga skriver. Vårt tillvägagångssätt att ta hänsyn till alla resonemang om samstämmighet i en race detektion motor ger två fördelar. För att få fram analyser för kod med hjälp av nya konvergenskonstruktioner behöver man först konstruera en lämplig racedetektionsmotor för konstruktionerna. För det andra ger det analysdesigners ett enkelt sätt att justera skalbarheten och precisionen i den övergripande analysen genom att endast modifiera tävlingsdetekteringsmotorn. Vi beskriver RADAR ramverket och dess genomförande med hjälp av en befintlig race detektion motor. Vi visar hur RADAR användes för att generera en samtidig version av en null-pointer-dereferensanalys, och vi analyserar resultatet av att köra den genererade samtidiga analysen på flera riktmärken.
På samma sätt använder Radar REF en datarace detektion motor för att konservativt döda ett dataflöde faktum när det finns en möjlig ras på l-värden motsvarande det faktum.
Dataflow analysis for concurrent programs using datarace detection
{'venue': "PLDI '08", 'journal': None, 'mag_field_of_study': ['Computer Science']}