|
Automata Theory Used to Detect Plagiarism
Beňuš, Alexej ; Havel, Martin (oponent) ; Meduna, Alexandr (vedoucí práce)
The bachelor's thesis addresses the detection and recognition of plagiarism in the C++ programming language. Which algorithms exist, which methods are the most effective and also showing their weaknesses. The program itself is coded in C++, utilizing Clang for the generation of abstract syntax trees. Generated trees are compared different techniques - statistic comparison utilizing counting and comparing number of coding constructs, string difference operations like Levenshtein distance and longest common substring and finally tree comparison operations which goes deep into comparison of trees using hashes. Main focus was on the structural comparison of C++ programs. Multiple comparison techniques are presented with testing and results. Additional parameters like minimum match size are also presented to make the comparison more precise. After comparison is done, score is presented and with defined functions it is shown if files are or are not plagiarism. Some problems with detection and implementation are also summarized in the text.
|
|
Syntaktická analýza založená na několika gramatikách
Koumar, Ondřej ; Havel, Martin (oponent) ; Meduna, Alexandr (vedoucí práce)
Tato práce se zabývá výzkumem CD gramatických systémů a jejich využití v syntaktické analýze. Cílem je navrhnout syntaktický analyzátor kombinující techniku shora dolů i zdola nahoru pro CD gramatický systém popisující jazyk generovaný LL gramatikou za použití deterministického zásobníkového automatu. Cílů je dosaženo zavedením pozměněné LL tabulky s uspořádanými dvojicemi, které odkazují na pravidla v jednotlivých komponentách. Tento koncept je demonstrován na novém programovacím jazyce Koubp, pro který je implementován syntaktický analyzátor v jazyce C++.
|
|
High-Level Programming Language Transpilers
Mokriš, Andrej ; Havel, Martin (oponent) ; Meduna, Alexandr (vedoucí práce)
A rapid development of programming languages has caused practical problems, such as not granting backward compatibility. Transpilers offer a potential solution to some of these problems. This thesis presents concepts of formal languages, compilers, and more detailed description of parsing methods. The goal of this thesis is to design and implement a transpiler that converts a subset of PHP to JavaScript.
|
|
Generování kódu z textového popisu funkcionality
Kačur, Ján ; Ondřej, Karel (oponent) ; Smrž, Pavel (vedoucí práce)
Cieľom tejto práce bolo navrhnúť a implementovať systém na generovanie kódu z textového popisu funkcionality. Boli vypracované celkovo 2 systémy, prvý z nich slúžil ako kontrolný prototyp, a druhý ako reálny výstup práce. Zameral som sa na použitie nepredtrénovaných modelov s menšími rozmermi. Obidva systémy používali ako jadro model typu Transformer. Druhý systém využil na rozdiel od prvého syntaktický rozklad kódu aj textových popisov. Dáta pre obidva systémy pochádzali z projektu CodeSearchNet, cieľový jazyk pre generovanie bol jazyk Python. Druhý systém dosiahol lepšie číselné výsledky, ako prvý, s presnosťou predpovede slov 85%, zatiaľ čo prvý len 60%. Systém dokázal doplniť správny kód na dokončenie funkcie, s väčšou časovou odozvou. V tejto práci sa venujem takmer výlučne druhému systému.
|
|
Generování backendu aplikace z UML modelu
Klikar, Václav ; Očenášek, Pavel (oponent) ; Burget, Radek (vedoucí práce)
Cílem této bakalářské práce je navrhnout a implementovat nástroj umožňující obousměrnou synchronizaci UML diagramu tříd a backendu aplikace kdykoliv v průběhu tvorby aplikace. Práce s UML modelem je umožněna pomocí standardizovaného XMI formátu. Backend aplikace je vytvořen a spravován prostřednictvím webového rámce Django. Pro čtení a zápis programového kódu Djanga je využit syntaktický analyzátor abstraktních syntaktických stromů.
|
|
Překladač jazyka stavového diagramu do jazyka CHILL
Goldmannová, Zuzana ; Matoušek, Petr (oponent) ; Ryšavý, Ondřej (vedoucí práce)
Tato práce se zabývá gramatikou existujícího proprietárního jazyka stavových diagramů, který se používá k modelaci stavových automatů použitých v pobočkových ústřednách. Cílem práce byla analýza gramatiky a stávajícího překladače z tohoto jazyka do jazyka CHILL a návrh a implementace překladače nového. Tento překladač bude lépe udržovatelný a odstraňovat chyby a nedostatky stávajícího řešení. Závěrem je tento překladač otestován za použití jak již existujících souborů, které byly dříve vytvořeny pro stávající překladač, tak souborů, které jsem vytvořila pro testovací účely.
|
|
Statická analýza zdrojového kódu jazyka CodAL
Fajčík, Martin ; Přikryl, Zdeněk (oponent) ; Hynek, Jiří (vedoucí práce)
Cílem této bakalářské práce je návrh a implementace rozšíření editorů jazyka CodAL v oblasti statické analýzy zdrojového kódu tohoto jazyka a návrhu jeho automatických oprav. Tato forma analýzy je vhodná například pro ověření sémantické korektnosti zdrojového kódu. Práce se dělí na teoretickou a praktickou část. Teoretická část této práce obsahuje obeznámení se s tvorbou rozšíření pro vývojové prostředí z řad platformy Eclipse, zejména s editorem jazyka CodAL, jazykem CodAL a vytyčením chyb tohoto jazyka vhodných pro zpracování statickou analýzou. Praktická část se zabývá konkrétní implementací prvků statické analýzy zdrojového kódu jazyka CodAL a návrhu jeho automatických oprav. Rozšiřované editory jazyka CodAL jsou dostupné ve vývojovém prostředí Codasip Studio založeném především na platformě Eclipse a projektu CDT. Produkt Codasip Studio je vyvíjený společností Codasip ve spolupráci s výzkumnou skupinou Lissom.
|
|
Interaktivní interpret jazyka C
Blažek, Martin ; Peringer, Petr (oponent) ; Martinek, David (vedoucí práce)
Diplomová práce se zabývá implementací interaktivního interpretu jazyka C se syntaxí odpovídající normě ISO C99. Důraz je kladen na podporu výuky jazyka C a rychlé prototypování algoritmů. Aplikace umožňuje vytvářet programy a provádět experimenty s jazykovými konstrukcemi bez nutnosti kompilace. Uživatelské rozhraní plní funkci editoru a zároveň jednoduchého debuggeru. Pro tvorbu interpretu je použito vývojové prostředí ANTLRWorks. Je kompletně napsáno v jazyce Java využívající knihovní funkce nástroje ANTLR v3.
|
|
Detekce kódu v jazyce JavaScript se známými bezpečnostními chybami
Randýsek, Vojtěch ; Jeřábek, Kamil (oponent) ; Polčák, Libor (vedoucí práce)
Prace se zabyva problematikou detekce zranitelnych JavaScriptovych knihoven a NPM balicku. Na zaklade existujicich studii shrnuje technologicky zaklad platformy Node.js a dale se hloubeji venuje vybranym zranitelnostem systemu NPM a stavajicim ochrannym prostredkum. Bylo vytvoreno rozsireni prohlizece Chrome, ktere ma za cil detekovat a opravit JavaScriptovy kod se znamymi zranitelnostmi na strane weboveho prohlizece. Vytvoreny nastroj byl otestovan pruchodem 50 000 webovymi strankami. Bylo detekovano 8 129 zranitelnych skriptu. Rozsireni bylo publikovano na Chrome Web Store pod nazvem JS Vulnerability Detector .
|
|
Editor jazyka CodAL v prostředí Eclipse
Hynek, Jiří ; Dolíhal, Luděk (oponent) ; Přikryl, Zdeněk (vedoucí práce)
Tato diplomová práce se zabývá tvorbou editoru jazyka CodAL pro vývojové prostředí projektu Lissom, které je založené na prostředí Eclipse. Cílem této práce je analyzovat problém tvorby editorů a rozebrat doplňky existujících editorů, které zlepšují jejich uživatelskou přívětivost. V teoretické části diplomové práce je popsána tvorba parseru a následná analýza zdrojových kódů napsaných do editoru. Jsou vysvětleny syntaktické a sémantické aspekty jazyka CodAL. V praktické části je navržen nový editor jazyka CodAL a popsán postup k jeho vytvoření. Výsledkem práce je nový editor jazyka CodAL integrovaný ve vývojovém prostředí projektu Lissom.
|