Ungefärliga program transformationer såsom hoppa uppgifter [29, 30], loop perforering [21, 22, 35], minskning provtagning [38], flera valbara implementationer [3, 4, 16, 38], dynamiska rattar [16], synkronisering eliminering [20, 32], ungefärlig funktion memoization [11], och ungefärliga datatyper [34] producerar program som kan köra på en mängd olika punkter i en underliggande prestanda kontra noggrannhet avsättning utrymme. Dessa transformerade program har förmågan att handla riktigheten av sina resultat för ökad prestanda genom dynamiskt och icke-deterministiskt modifiera variabler som kontrollerar deras utförande. Vi kallar sådana transformerade program avslappnade program eftersom de har utökats med ytterligare icke-determinism för att slappna av deras semantik och möjliggöra större flexibilitet i deras utförande. Vi presenterar språkkonstruktioner för att utveckla och specificera avslappnade program. Vi lägger också fram bevisregler för resonemang om godtagbarhet egenskaper [28], som programmet måste uppfylla för att vara acceptabelt. Våra bevisregler fungerar med två typer av acceptability egenskaper: relationsacceptabilitet egenskaper, som kännetecknar önskade relationer mellan värden av variabler i de ursprungliga och avslappnade program, och unary acceptability egenskaper, som involverar värden endast från ett enda (original eller avslappnad) program. Bevisreglerna stöder ett iscensatt resonemang där majoriteten av resonemangsansträngningen fungerar med det ursprungliga programmet. Genom att utnyttja den gemensamma struktur som de ursprungliga och avslappnade programmen delar, överför relationellt resonemang resonerande ansträngning från det ursprungliga programmet för att bevisa egenskaper hos det avslappnade programmet. Vi har formaliserat den dynamiska semantiken i vårt målprogrammeringsspråk och bevisreglerna i Coq och verifierat att bevisreglerna är sunda med avseende på den dynamiska semantiken. Vår Coq implementation gör det möjligt för utvecklare att få fullt maskinkontrollerade verifieringar av sina avslappnade program.
Carbin m.fl. REF presenterar språkkonstruktioner för att specificera godtagbarhet egenskaper i ungefärliga program, och utveckla ett system som gör det möjligt för utvecklare att få fullt maskinkontrollerade verifieringar av deras ungefärliga applikationer.
Proving acceptability properties of relaxed nondeterministic approximate programs
{'venue': "PLDI '12", 'journal': None, 'mag_field_of_study': ['Computer Science']}