Traditionella påståenden uttrycker korrekthet egenskaper som måste hålla på varje program exekvering. Men många program har probabilistiska resultat och följaktligen deras korrekthet egenskaper är också probabilistiska (t.ex., de identifierar ansikten i bilder, förbrukar sensordata, eller körs på opålitlig hårdvara). Traditionella påståenden fångar inte dessa korrekthetsegenskaper. I detta dokument föreslås att programmerare uttrycker probabilistiska korrekthetsegenskaper med probabilistiska påståenden och beskriver en ny probabilistisk utvärderingsmetod för att effektivt verifiera dessa påståenden. Probabilistiska påståenden är booleska uttryck som uttrycker sannolikheten för att en fastighet kommer att vara sann i ett givet utförande snarare än att hävda att egendomen alltid måste vara sann. Eftersom antingen specifika ingångar eller distributioner på inmatningsutrymmet, probabilistisk utvärdering verifierar probabilistiska påståenden genom att först utföra distributionsextraktion för att representera programmet som ett Bayesian nätverk. Probabilistisk utvärdering använder sedan statistiska egenskaper för att förenkla denna representation för att effektivt beräkna sannolikheter direkt eller med provtagning. Vår strategi är en blandning av både statisk och dynamisk analys: distributionsextraktion bygger statiskt och optimerar Bayesians nätverksrepresentation och provtagning tolkar dynamiskt denna representation. Vi implementerar vår strategi i ett verktyg som kallas MAYHAP för C- och C++-program. Vi utvärderar uttrycklighet, korrekthet och prestanda av MAYHAP på program som använder sensorer, utför ungefärlig beräkning, och fördunkla data för integritet. Våra fallstudier visar att probabilistiska påståenden beskriver användbara korrekthetsegenskaper och att MAYHAP effektivt verifierar dem.
Slutligen finns det metoder som inbegriper symboliskt utförande; REF använder en blandning av statisk och dynamisk analys för att kontrollera probabilistiska program från den ungefärliga datorlitteraturen.
Expressing and verifying probabilistic assertions
{'venue': "PLDI '14", 'journal': None, 'mag_field_of_study': ['Computer Science']}