Práce se zabývá o vytvoření nástrojů určených k metrické analýze zdrojových kódu napsaných v programovacím jazyce ANSI C. Výsledky této analýzy jsou používány na porovnávání zdrojových kódů samostatných prací a na dokazování autorství.
Nástroj pro metrickou analýzu je navržen, aby se choval jako překladač, proto obsahuje většinu částí klasického překladače jazyka ANSI C.
Pro ukládání otisků zdrojových kódů byl vytvořen nový datový formát, který je používán pro rychlejší porovnávání s ostatními zdrojovými kódy samostatných prací. Pro práci s tímto datovým formátem je navržena speciální aplikace.
Nástroje využívají společnou knihovnu určenou na analýzu zdrojových kódů a je možno ji rozšířit, s dodatečnými úpravami, o podporu analýzy dalších programovacích jazyků.
Anotace v angličtině
Thesis is focused on tools, created for metric analysis of source code that is written in programming language ANSI C. The results of this analysis are comparisons of several student essays' source codes, which are later used for proofing plagiarism.
The tool for metric analysis is designed to be a regular compiler; therefore it
contains most parts of regular ANSI C compiler.
For storing of source code footprints, new data format was created. It is used
by the comparing tool for faster source code comparison with other essays' source codes. A special application is designed for work with this data format.
The tools use a shared library that is designed for source code analysis and it can be extended, with extra modifications, to support other programming languages.
Práce se zabývá o vytvoření nástrojů určených k metrické analýze zdrojových kódu napsaných v programovacím jazyce ANSI C. Výsledky této analýzy jsou používány na porovnávání zdrojových kódů samostatných prací a na dokazování autorství.
Nástroj pro metrickou analýzu je navržen, aby se choval jako překladač, proto obsahuje většinu částí klasického překladače jazyka ANSI C.
Pro ukládání otisků zdrojových kódů byl vytvořen nový datový formát, který je používán pro rychlejší porovnávání s ostatními zdrojovými kódy samostatných prací. Pro práci s tímto datovým formátem je navržena speciální aplikace.
Nástroje využívají společnou knihovnu určenou na analýzu zdrojových kódů a je možno ji rozšířit, s dodatečnými úpravami, o podporu analýzy dalších programovacích jazyků.
Anotace v angličtině
Thesis is focused on tools, created for metric analysis of source code that is written in programming language ANSI C. The results of this analysis are comparisons of several student essays' source codes, which are later used for proofing plagiarism.
The tool for metric analysis is designed to be a regular compiler; therefore it
contains most parts of regular ANSI C compiler.
For storing of source code footprints, new data format was created. It is used
by the comparing tool for faster source code comparison with other essays' source codes. A special application is designed for work with this data format.
The tools use a shared library that is designed for source code analysis and it can be extended, with extra modifications, to support other programming languages.
Cílem práce je navrhnout a implementovat nástroje umožňující automatickou statistickou a metrickou analýzu zdrojových kódů programů v programovacím jazyce ANSI C tak, aby bylo možné posuzovat a objektivně vyhodnocovat podobnost těchto zdrojových kódů (předpokládané nasazení je v oblasti kontroly a prokazování autorství samostatných prací). Výsledkem bude jeden či více platformně nezávislých programů, jejichž pomocí bude možné určit, zda je určitý zdrojový kód programu derivátem jiného.
Prostudujte současné metody metrické analýzy zdrojového kódu (v libovolném programovacím jazyce) a seznamte se s používanými postupy objektivního vyhodnocování podobnosti zdrojových kódů.
Navrhněte (případně adaptujte některé existující) postupy metrické analýzy zdrojového kódu v jazyce ANSI C a implementujte nástroje pro objektivní vyhodnocování podobnosti zdrojového kódu v tomto programovacím jazyce.
Ověřte funkčnost vyvinutého programového vybavení na dostatečném množství vzorků. Také pomocí testu na syntakticky chybném zdrojovém kódu ověřte stabilitu vyvinutých nástrojů.
Kriticky zhodnoťte dosažené výsledky a pečlivě je popište v průvodním dokumentu diplomové práce.
Zásady pro vypracování
Cílem práce je navrhnout a implementovat nástroje umožňující automatickou statistickou a metrickou analýzu zdrojových kódů programů v programovacím jazyce ANSI C tak, aby bylo možné posuzovat a objektivně vyhodnocovat podobnost těchto zdrojových kódů (předpokládané nasazení je v oblasti kontroly a prokazování autorství samostatných prací). Výsledkem bude jeden či více platformně nezávislých programů, jejichž pomocí bude možné určit, zda je určitý zdrojový kód programu derivátem jiného.
Prostudujte současné metody metrické analýzy zdrojového kódu (v libovolném programovacím jazyce) a seznamte se s používanými postupy objektivního vyhodnocování podobnosti zdrojových kódů.
Navrhněte (případně adaptujte některé existující) postupy metrické analýzy zdrojového kódu v jazyce ANSI C a implementujte nástroje pro objektivní vyhodnocování podobnosti zdrojového kódu v tomto programovacím jazyce.
Ověřte funkčnost vyvinutého programového vybavení na dostatečném množství vzorků. Také pomocí testu na syntakticky chybném zdrojovém kódu ověřte stabilitu vyvinutých nástrojů.
Kriticky zhodnoťte dosažené výsledky a pečlivě je popište v průvodním dokumentu diplomové práce.