Abstrakt. Vi utvecklar programsyntestekniker som kan hjälpa programmerare att fixa konvergensrelaterade fel. Vi lämnar två nya bidrag till syntesen för samstämmighet, den första förbättringen av den syntetiserade kodens effektivitet och den andra förbättringen av själva syntesförfarandets effektivitet. Det första bidraget är att ha syntesproceduren utforska en mängd (sekvens) semantik-bevarande program transformationer. Klassiskt har endast en sådan omvandling övervägts, nämligen införandet av synkronisering primitiva (såsom lås). Baserat på vanliga manuella felfixeringstekniker som används av Linux enhetsdriverutvecklare, utforskar vi ytterligare, effektivare omvandlingar, såsom omordning av oberoende instruktioner. Det andra bidraget är att påskynda det motexempelstyrda avlägsnandet av konvergensfel inom syntesförfarandet genom att betrakta partiella spår (i stället för linjära spår) som kontraexempel. En partiell ordning felspår representerar en uppsättning linjära (interleaved) spår av en samtidig program som alla leder till samma fel. Genom att eliminera en partiell ordning felspår, eliminerar vi i en enda iteration av syntesproceduren alla linjäriseringar av den partiella ordningen spår. Vi utvärderade våra tekniker på flera förenklade exempel på verkliga konvergensfel som förekom i Linux enhetsdrivrutiner.
En sådan inställning är motexempel generation baserad på partiella (Mazurkiewicz) spår i stället för linjära utföranden REF.
Efficient Synthesis for Concurrency by Semantics-Preserving Transformations ⋆
{'venue': 'CAV', 'journal': None, 'mag_field_of_study': ['Computer Science']}