Publication:
An annotation assistant for interactive debugging of programs with common synchronization idioms

dc.contributor.coauthorQadeer, Shaz
dc.contributor.departmentN/A
dc.contributor.departmentDepartment of Computer Engineering
dc.contributor.departmentDepartment of Computer Engineering
dc.contributor.kuauthorSezgin, Ali
dc.contributor.kuauthorTaşıran, Serdar
dc.contributor.kuauthorElmas, Tayfun
dc.contributor.kuprofileResearcher
dc.contributor.kuprofileFaculty Member
dc.contributor.kuprofilePhD Student
dc.contributor.otherDepartment of Computer Engineering
dc.contributor.schoolcollegeinstituteN/A
dc.contributor.schoolcollegeinstituteCollege of Engineering
dc.contributor.schoolcollegeinstituteGraduate School of Sciences and Engineering
dc.contributor.yokidN/A
dc.contributor.yokidN/A
dc.contributor.yokidN/A
dc.date.accessioned2024-11-09T22:45:45Z
dc.date.issued2009
dc.description.abstractThis paper explores an approach to improving the practical usability of static verification tools for debugging synchronization idioms. Synchronization idioms such as mutual exclusion and readers/writer locks are widely-used to ensure atomicity of critical regions. We present an annotation assistant that automatically generates program annotations. These annotations express noninterference between program statements, ensured by the synchronization idioms, and are used to identify atomic code regions. This allows the programmer to debug the use of the idioms in the program. We start by formalizing several well-known idioms by providing an abstract semantics for each idiom. For programs that use these idioms, we require the programmer to provide a few predicates linking the idiom with its realization in terms of program variables. From these, we automatically generate a proof script that is mechanically checked. These scripts include steps such as automatically generating assertions and annotating program actions with them, introducing auxiliary variables and invariants. We have successfully shown the applicability of this approach to several concurrent programs from the literature.
dc.description.indexedbyScopus
dc.description.openaccessYES
dc.description.publisherscopeInternational
dc.identifier.doi10.1145/1639622.1639632
dc.identifier.isbn9781-6055-8655-7
dc.identifier.linkhttps://www.scopus.com/inward/record.uri?eid=2-s2.0-72049102895anddoi=10.1145%2f1639622.1639632andpartnerID=40andmd5=f6b92328ca893ecda7a3528e37cfb7a4
dc.identifier.quartileN/A
dc.identifier.scopus2-s2.0-72049102895
dc.identifier.urihttp://dx.doi.org/10.1145/1639622.1639632
dc.identifier.urihttps://hdl.handle.net/20.500.14288/6151
dc.keywordsAtomicity
dc.keywordsConcurrent programs
dc.keywordsSynchronization idioms Abstract semantics
dc.keywordsAtomic codes
dc.keywordsAtomicity
dc.keywordsAuxiliary variables
dc.keywordsConcurrent program
dc.keywordsCritical region
dc.keywordsInteractive debugging
dc.keywordsMutual exclusions
dc.keywordsProgram annotation
dc.keywordsProgram statements
dc.keywordsProgram variables
dc.keywordsStatic verification
dc.keywordsComputer software selection and evaluation
dc.keywordsSoftware testing
dc.keywordsSynchronization
dc.keywordsProgram debugging
dc.languageEnglish
dc.sourceProceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, PADTAD '09
dc.subjectComputer engineering
dc.titleAn annotation assistant for interactive debugging of programs with common synchronization idioms
dc.typeConference proceeding
dspace.entity.typePublication
local.contributor.authoridN/A
local.contributor.authoridN/A
local.contributor.authoridN/A
local.contributor.kuauthorSezgin, Ali
local.contributor.kuauthorTaşıran, Serdar
local.contributor.kuauthorElmas, Tayfun
relation.isOrgUnitOfPublication89352e43-bf09-4ef4-82f6-6f9d0174ebae
relation.isOrgUnitOfPublication.latestForDiscovery89352e43-bf09-4ef4-82f6-6f9d0174ebae

Files