Migrace zdrojových kódů pomocí dekompilace
No Thumbnail Available
Date
Authors
Korec, Tomáš
ORCID
Advisor
Referee
Mark
A
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
Abstract
Tato práce se zabývá migrací zdrojových kódů vysokoúrovňových programovacích jazyků pomocí dekompilace. Migrační nástroj vyvinutý v rámci práce je postaven na prostřední a zadní části dekompilátoru projektu Lissom. V práci je rozebráno několik překladačů, které ze vstupního jazyka generují kód v LLVM IR. Vhodné překladače byly vybrány pro integraci do migračního nástroje. Kód přeložený do LLVM IR je vstupem prostřední optimalizační části dekompilátoru. Výstupem migračního nástroje je kód v jazyce C nebo v jazyce podobném Pythonu generovaný zadní častí dekompilátoru. Vstupními jazyky jsou Fortran a jeho dialekty, C/C++/Objective-C/Objective-C++ a D. V práci jsou popsány problémy spojené s migrací těchto jazyků, jejich řešení a způsoby jak zlepšit kvalitu a čitelnost výsledného kódu.
This thesis deals with source-code migration of high-level programming languages using decompilation. A migration tool developed within the thesis is built on top of the middle-end and back-end parts of Lissom project decompiler. Several compilers generating LLVM IR code from input languages are discussed. Compilers suitable for integration to the migration tool were chosen. Compiled LLVM IR code is an input of the decompiler's optimizing middle-end. The output from the migration tool is a code in the C language or Python-like language generated by the back-end of the decompiler. The input languages are Fortran and its dialects, C/C++/Objective-C/Objective-C++, and D. The thesis describes problems connected with migration of these languages, their solutions, and ways to improve quality and readability of the produced source code.
This thesis deals with source-code migration of high-level programming languages using decompilation. A migration tool developed within the thesis is built on top of the middle-end and back-end parts of Lissom project decompiler. Several compilers generating LLVM IR code from input languages are discussed. Compilers suitable for integration to the migration tool were chosen. Compiled LLVM IR code is an input of the decompiler's optimizing middle-end. The output from the migration tool is a code in the C language or Python-like language generated by the back-end of the decompiler. The input languages are Fortran and its dialects, C/C++/Objective-C/Objective-C++, and D. The thesis describes problems connected with migration of these languages, their solutions, and ways to improve quality and readability of the produced source code.
Description
Citation
KOREC, T. Migrace zdrojových kódů pomocí dekompilace [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2014.
Document type
Document version
Date of access to the full text
Language of document
cs
Study field
Bezpečnost informačních technologií
Comittee
doc. Dr. Ing. Petr Hanáček (předseda)
doc. Ing. Jaroslav Zendulka, CSc. (místopředseda)
doc. Ing. Vladimír Drábek, CSc. (člen)
doc. Mgr. Adam Rogalewicz, Ph.D. (člen)
doc. Ing. Ondřej Ryšavý, Ph.D. (člen)
Ing. William Steingartner, Ph.D. (člen)
Date of acceptance
2014-06-20
Defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm výborně (A). Otázky u obhajoby: Bolo by možné rozšíriť aktuálnu implementáciu o migrovanie zdrojových kódov napr. z Javy do C++ a naopak so zachovaním objektového prístupu?
Result of defence
práce byla úspěšně obhájena
Document licence
Přístup k plnému textu prostřednictvím internetu byl licenční smlouvou omezen na dobu 10 roku/let