Bland de ramar för dubbelriktade omvandlingar som föreslås för att ta itu med olika synkroniseringsproblem (konsistensunderhåll), Foster m.fl. 's [2007] asymmetriska linser har påverkat utformningen av en generation av tvåriktade programmeringsspråk. De flesta av dessa språk är baserade på en deklarativ programmeringsmodell och gör det bara möjligt för programmeraren att beskriva en överensstämmelsespecifikation med ad hoc och/eller besvärlig kontroll över beteendet för att återställa överensstämmelse. Synkroniseringsproblemen är dock olika och kräver mycket olika strategier för att återställa enhetligheten, och för att kunna hantera mångfalden måste programmeraren med dubbelriktade program ha förmåga att till fullo kontrollera och resonera om beteendet för att återställa enhetligheten. Syftet med den putback-baserade metoden för dubbelriktad programmering är att ge exakt denna förmåga, och detta dokument stärker den putback-baserade positionen genom att föreslå den första fullfjädrade resonemangsramen för ett dubbelriktat språk — en Hoare-logik för Ko et al. 's [2016] putback-baserat språk BiGUL. Den Hoarestyle logiken låter BiGUL programmeraren exakt karakterisera dubbelriktade beteende av sina program genom att resonera enbart i backriktningen, vilket erbjuder en enkelriktad programmering abstraktion som är ganska enkelt att arbeta med och ändå ger full kontroll inte uppnås genom tidigare metoder. Teorin har formaliserats och kontrollerats i Agda, men denna uppsats presenterar Hoare-logiken på ett semiformellt sätt för att göra den lättbegriplig och användbar av den arbetande BiGUL-programmeraren.
REF föreslog nyligen en Hoare-stil logik för resonemang om BiGUL-program i Agda, som kanske skulle kunna utvidgas till resonera om relationella linser.
An axiomatic basis for bidirectional programming
{'venue': 'PACMPL', 'journal': None, 'mag_field_of_study': ['Computer Science']}