Programvara Transaktionsminne (STM) är en attraktiv grund för utveckling av språkfunktioner för samtidig programmering. Men semantiken i dessa drag kan vara känslig och problematisk. I detta dokument undersöker vi kompromisserna mellan semantisk enkelhet, genomförbarheten av effektiva genomförandestrategier, och flexibiliteten i språkkonstruktioner. Speciellt utvecklar vi semantik och typsystem för konstruktionerna av programmeringsmodellen Automatic Mutual Exclusion (AME); våra resultat gäller även andra konstruktioner, såsom atomblock. Med denna semantik som referenspunkt studerar vi flera genomförandestrategier. Vi modellerar STM-system som använder på plats uppdatering, optimistisk konvergens, lat konfliktdetektering, och roll-back. Dessa strategier är korrekta endast under icke-triviala antaganden som vi identifierar och analyserar. En viktig källa till fel är att vissa effektiva implementationer skapar farliga "zombie" beräkningar där en transaktion fortsätter att löpa efter att ha upplevt en konflikt; antagandena begränsar effekterna av dessa beräkningar.
Abadi m.fl. REF utvecklade semantik och typsystem för den automatiska ömsesidiga uteslutning (AME) analys, som uppmuntrar programmerare att placera så mycket av programtexten inuti transaktioner som möjligt.
Semantics of transactional memory and automatic mutual exclusion
{'venue': "POPL '08", 'journal': None, 'mag_field_of_study': ['Computer Science']}