Compilers borde vara korrekta. För att förbättra kvaliteten på C kompilatorer, skapade vi Csmith, en randomiserad test-case generation verktyg, och tillbringade tre år med att använda den för att hitta kompilator buggar. Under denna period rapporterade vi mer än 325 tidigare okända fel till kompilatorutvecklare. Varje kompilator vi testade befanns krascha och även att tyst generera fel kod när presenteras med giltig ingång. I denna uppsats presenterar vi vår kompilator-testningsverktyget och resultaten av vår bug-jakt studie. Vårt första bidrag är att utveckla den senaste tekniken inom kompilatortestning. Till skillnad från tidigare verktyg, Csmith genererar program som täcker en stor delmängd av C samtidigt undvika odefinierade och ospecificerade beteenden som skulle förstöra dess förmåga att automatiskt hitta felkod buggar. Vårt andra bidrag är en samling kvalitativa och kvantitativa resultat om de fel vi har hittat i C-kompilatorer med öppen källkod.
CSmith REF är ett kompilatortestverktyg som genererar slumpmässiga C-program för differentialtestning.
Finding and understanding bugs in C compilers
{'venue': "PLDI '11", 'journal': None, 'mag_field_of_study': ['Computer Science']}