Abstrakt. Problemet med att lokalt omvandla eller översätta program utan att ändra deras semantik är centralt för att bygga rätt kompilatorer. För samtidiga delade minnesprogram är denna uppgift utmanande eftersom (1) samtidiga trådar kan observera transformationer som skulle vara odetekterbara i ett sekventiellt program, och (2) samtida multiprocessorer använder ofta avslappnade minnesmodeller som komplicerar resonemanget. I detta dokument presenterar vi en ny bevismetod för att verifiera att en lokal programomvandling är sund med avseende på en specifik maskinvaruminnesmodell, i den meningen att den inte är observerbar i något sammanhang. Metoden är baserad på en strukturell induktion och bygger på en ny kompositionell denomineringssemantik för avslappnade minnesmodeller som formaliserar (1) beteendet hos programfragment som en uppsättning spår, och (2) effekten av minnesmodellens avkopplingar som lokala spår skriva om operationer. För att tillämpa denna metod i praktiken har vi implementerat ett semiautomatiserat verktyg som heter Traver och använt det för att verifiera/förfalska flera kompilatortransformationer för ett antal olika maskinvaruminnesmodeller.
Dessutom definierar REF 20] verktyg för att verifiera programomvandlingar.
Verifying local transformations on relaxed memory models
{'venue': 'of Lecture Notes in Computer Science', 'journal': None, 'mag_field_of_study': ['Computer Science']}