dc.contributor.advisor | Tůma, Petr | |
dc.creator | Lano, Radek | |
dc.date.accessioned | 2017-04-13T09:16:22Z | |
dc.date.available | 2017-04-13T09:16:22Z | |
dc.date.issued | 2009 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/18910 | |
dc.description.abstract | Cílem této diplomové práce je návrh a vývoj nástroje použitelného pro detekci podobných zdrojových kódů v různých projektech. Nástroj by měl být schopný nalézt kód zkopírovaný z jednoho projektu do druhého a měl by si poradit s běžnými pokusy o zmaření nalezení, jakými je například přejmenování symbolů, změna na sobě nezávislých entit, přesunutí entit do jiných souborů, přidání či odebrání komentářů, apod. Nástroj je implementován v jazyce C++ a připraven pro porovnávání zdrojových kódů v jazycích C a C++. Nástroj umožňuje i porovnávání zdrojových kódů v jiných jazycích, které je možné překládat pomocí kompilátoru GNU C Compiler. Pro kvalitní použití nástroje na takové zdrojové kódy je však potřeba připravit přídavné moduly (to je dáno odlišnou vnitřní formou překladače GNU C Compiler pro různé překládané jazyky). První část diplomové práce se zaměřuje na popis problému, návrh architektury a nástroje, které je možné využít při vývoji. Druhá část je zaměřena na vlastní aplikaci, popis použitých datových struktur a možnosti rozšíření aplikace přidáváním modulů. Poslední část diplomové práce popisuje dosažené výsledky a další směry, které je možné v aplikaci rozvíjet. | cs_CZ |
dc.description.abstract | The objective of this thesis is to design and implement a tool usable for detecting similar code in different projects. The tool should be able to locate code pasted from one project to another and should be able to cope with average attempts to thwart the detection such as symbol renaming, changing the order of unrelated entities, moving entities to different files, adding or removing comments, etc. The tool is implemented in language C++ and is ready to compare source files written in languages C and C++. The tool also enables the comparison of source code written in different languages, which can be compiled by the GNU C Compiler. To obtain good results in these cases, new modules should be added (this is necessitated due to different representations of the GNU C Compiler inner form for different languages). The first part of this thesis focuses on describing the problem domain, the architecture design and the tools usable for implementation. The second part centers on the implemented solution, a description of data structures and possibilities for application expansion using additional modules. The last part of the thesis sums up the results and outlines future possibilities of implementation. | en_US |
dc.language | English | cs_CZ |
dc.language.iso | en_US | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.title | Source Code Similarity Detection | en_US |
dc.type | diplomová práce | cs_CZ |
dcterms.created | 2009 | |
dcterms.dateAccepted | 2009-02-02 | |
dc.description.department | Department of Software Engineering | en_US |
dc.description.department | Katedra softwarového inženýrství | cs_CZ |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.identifier.repId | 41205 | |
dc.title.translated | Source Code Similarity Detection | cs_CZ |
dc.contributor.referee | Parízek, Pavel | |
dc.identifier.aleph | 001103600 | |
thesis.degree.name | Mgr. | |
thesis.degree.level | magisterské | cs_CZ |
thesis.degree.discipline | Software systems | en_US |
thesis.degree.discipline | Softwarové systémy | cs_CZ |
thesis.degree.program | Informatics | en_US |
thesis.degree.program | Informatika | cs_CZ |
uk.thesis.type | diplomová práce | cs_CZ |
uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra softwarového inženýrství | cs_CZ |
uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Software Engineering | en_US |
uk.faculty-name.cs | Matematicko-fyzikální fakulta | cs_CZ |
uk.faculty-name.en | Faculty of Mathematics and Physics | en_US |
uk.faculty-abbr.cs | MFF | cs_CZ |
uk.degree-discipline.cs | Softwarové systémy | cs_CZ |
uk.degree-discipline.en | Software systems | en_US |
uk.degree-program.cs | Informatika | cs_CZ |
uk.degree-program.en | Informatics | en_US |
thesis.grade.cs | Velmi dobře | cs_CZ |
thesis.grade.en | Very good | en_US |
uk.abstract.cs | Cílem této diplomové práce je návrh a vývoj nástroje použitelného pro detekci podobných zdrojových kódů v různých projektech. Nástroj by měl být schopný nalézt kód zkopírovaný z jednoho projektu do druhého a měl by si poradit s běžnými pokusy o zmaření nalezení, jakými je například přejmenování symbolů, změna na sobě nezávislých entit, přesunutí entit do jiných souborů, přidání či odebrání komentářů, apod. Nástroj je implementován v jazyce C++ a připraven pro porovnávání zdrojových kódů v jazycích C a C++. Nástroj umožňuje i porovnávání zdrojových kódů v jiných jazycích, které je možné překládat pomocí kompilátoru GNU C Compiler. Pro kvalitní použití nástroje na takové zdrojové kódy je však potřeba připravit přídavné moduly (to je dáno odlišnou vnitřní formou překladače GNU C Compiler pro různé překládané jazyky). První část diplomové práce se zaměřuje na popis problému, návrh architektury a nástroje, které je možné využít při vývoji. Druhá část je zaměřena na vlastní aplikaci, popis použitých datových struktur a možnosti rozšíření aplikace přidáváním modulů. Poslední část diplomové práce popisuje dosažené výsledky a další směry, které je možné v aplikaci rozvíjet. | cs_CZ |
uk.abstract.en | The objective of this thesis is to design and implement a tool usable for detecting similar code in different projects. The tool should be able to locate code pasted from one project to another and should be able to cope with average attempts to thwart the detection such as symbol renaming, changing the order of unrelated entities, moving entities to different files, adding or removing comments, etc. The tool is implemented in language C++ and is ready to compare source files written in languages C and C++. The tool also enables the comparison of source code written in different languages, which can be compiled by the GNU C Compiler. To obtain good results in these cases, new modules should be added (this is necessitated due to different representations of the GNU C Compiler inner form for different languages). The first part of this thesis focuses on describing the problem domain, the architecture design and the tools usable for implementation. The second part centers on the implemented solution, a description of data structures and possibilities for application expansion using additional modules. The last part of the thesis sums up the results and outlines future possibilities of implementation. | en_US |
uk.file-availability | V | |
uk.publication.place | Praha | cs_CZ |
uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra softwarového inženýrství | cs_CZ |
dc.identifier.lisID | 990011036000106986 | |