This Master’s thesis presents an algorithm that finds the semantic differences between two versions of files, an older version and a new modified version of the file. The algorithm is responsible for finding changes in the program’s behavior and displaying them graphically. By this a lot of time can be saved because it is not necessary to go through the whole file to find the differences. The program, Semantic Diff, developed in this master thesis uses the Javacc parser generator which is used to parse files and generate the abstract syntax tree for them. Using this tree it is possible to see all the methods, classes, constructors and parameters for both older version and modified version. By comparing all the methods, classes and interfaces of both the versions it is possible to find the differences that change the program behavior. The algorithm for finding semantic differences has been evaluated by testing it on various test cases. By making changes in the original file and in the modified file. Like adding methods and deleting methods and adding classes to the files. The algorithm highlights those methods with green color which are added newly in the modified file and highlights the methods with red color in the original file which got deleted in modified file. This algorithm also finds the textual difference between two files and highlights those lines which are changed in modified file and which got deleted from original file.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:hj-8351 |
Date | January 2009 |
Creators | Mohammed, Rafiullah Khan, Bandi, Raghavender |
Publisher | Tekniska Högskolan, Högskolan i Jönköping, JTH, Data- och elektroteknik, Tekniska Högskolan, Högskolan i Jönköping, JTH, Data- och elektroteknik |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/masterThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.002 seconds