Abstrakt. Moderna samtidiga programmeringsspråk som Java och C# har en programmering språknivå minne modell; det fångar uppsättningen av alla tillåtna beteenden av program på någon implementation plattform -uni-eller multi-processor. Ett sådant minne modell är typiskt svagare än Sekventiell konsekvens och tillåter omordning av operationer inom ett program tråd. Därför, program verifieras korrekt genom att anta Sekventiell överensstämmelse (dvs varje tråd fortsätter i programordning) kanske inte beter sig korrekt på vissa plattformar! Lösningen på detta problem är att utveckla programkontroller som är minnesmodell känsliga. I detta dokument utvecklar vi en sådan invariant kontroll för programmeringsspråket C#. Vår kontroll identifierar programtillstånd som nås endast på grund av att C#-minnesmodellen är mer avslappnad än Sekventiell överensstämmelse. Dessutom identifierar vår kontroll (a) operation omordningar som orsakar sådana oönskade tillstånd att nås, och (b) enkla programändringar - genom att infoga minnesbarriär operationer - som förhindrar sådana oönskade omordningar.
I vårt tidigare arbete REF har vi utvecklat en bytekod nivå invariant checker för C#, som fortskrider i ett minne modell medveten mode.
A Memory Model Sensitive Checker for C #
{'venue': 'ICFEM', 'journal': None, 'mag_field_of_study': ['Computer Science']}