Show simple item record

dc.contributor.advisorD'souza, Deepak
dc.contributor.authorArnab De, *
dc.date.accessioned2016-09-14T06:50:04Z
dc.date.accessioned2018-07-31T04:38:34Z
dc.date.available2016-09-14T06:50:04Z
dc.date.available2018-07-31T04:38:34Z
dc.date.issued2016-09-14
dc.date.submitted2012-12
dc.identifier.urihttp://etd.iisc.ac.in/handle/2005/2564
dc.identifier.abstracthttp://etd.iisc.ac.in/static/etd/abstracts/3331/G25774-Abs.pdfen_US
dc.description.abstractIn this thesis, we have developed a flow-sensitive data flow analysis framework for value set analyses for Java-like languages. Our analysis frame work is based on access paths—a variable followed by zero or more field accesses. We express our abstract states as maps from bounded access paths to abstract value sets. Using access paths instead of allocation sites enables us to perform strong updates on assignments to dynamically allocated memory locations. We also describe several optimizations to reduce the number of access paths that need to be tracked in our analysis. We have instantiated this frame work for flow-sensitive pointer and null-pointer analysis for Java. We have implemented our analysis inside the Chord frame work. A major part of our implementation is written declaratively using Datalog. We leverage the use of BDDs in Chord for keeping our memory usage low. We show that our analysis is much more precise and faster than traditional flow-sensitive and flow-insensitive pointer and null-pointer analysis for Java. We further extend our access path based analysis frame work to concurrent Java programs. We use the synchronization structure of the programs to transfer abstract states from one thread to another. Therefore, we do not need to make conservative assumptions about reads or writes to shared memory. We prove our analysis to be sound for the happens-before memory model, which is weaker than most common memory models, including sequential consistency and the Java Memory Model. We implement a null-pointer analysis for concurrent Java programs and show it to be more precise than the traditional analysis.en_US
dc.language.isoen_USen_US
dc.relation.ispartofseriesG25774en_US
dc.subjectDataflow Analysisen_US
dc.subjectJava (Computer Program Language)en_US
dc.subjectConcurrent Programs - Syntax and Semanticsen_US
dc.subjectConcurrent Programs - Dataflow Analysisen_US
dc.subjectFlow-Sensitive Pointer Analysisen_US
dc.subjectNull-Pointer Analysisen_US
dc.subjectSequential Programs - Syntax and Semanticsen_US
dc.subjectFlow-Sensitive Dataflow Analysisen_US
dc.subjectConcurrent Java Programsen_US
dc.subjectSequential Programs - Dataflow Analysisen_US
dc.subjectAcess Path Based Dataflow Analysisen_US
dc.subjectRelaxed Memory Modelen_US
dc.subjectJava Memory Modelen_US
dc.subject.classificationComputer Scienceen_US
dc.titleAccess Path Based Dataflow Analysis For Sequential And Concurrent Programsen_US
dc.typeThesisen_US
dc.degree.namePhDen_US
dc.degree.levelDoctoralen_US
dc.degree.disciplineFaculty of Engineeringen_US


Files in this item

This item appears in the following Collection(s)

Show simple item record