Překlad podmnožiny jazyka PHP do C++

Loading...
Thumbnail Image
Date
ORCID
Mark
C
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
Abstract
Tato práce se zaměřuje na návrh a tvorbu nástroje pro automatizovaný překlad funkcí napsaných v podmnožině jazyka PHP do C++. Vygenerovaný zdrojový kód je možno zkompilovat jako rozšíření PHP a zavést stejným způsobem jako například MySQL, PDO, GD apod. Ve výsledku je tedy možno zavolat tyto funkce z PHP, jako by se jednalo o původní interpretovanou funkci. Předpokladem je však rozdíl v rychlosti vykonávání, protože odpadá analýza zdrojových kódů, jejich interpretace, či režie způsobená správou paměti. Vytvořený nástroj provádí převod zdrojového kódu do abstraktního syntaktického stromu, staticky jej analyzuje pro určení datových typů proměnných, a následně provádí generování C++ kódu. Výsledné zrychlení pak záleží na charakteristice překládaného kódu a praktické použití je prozatím komplikované kvůli implementaci podmnožiny PHP.
My work is focused on design and execution of an automated translation for functions written in PHP into C++. Generated code may be compiled as a PHP extension and loaded the same way MySQL, PDO, GD or so. As a result these functions may be called from PHP as if they were the initial interpreted functions. Since there is no need for source code analysis, interpretation, nor staging by Garbage Collector general assumption would be a significant speed difference. Created tool executes source code transfer into abstract syntactic tree which is followed up by a static analysis of variable types and consequently generates C++ code. Final speed increase then depends on the particular code being translated and its practical use is slightly elaborate at the moment - owing to the implementation of PHP subset.
Description
Citation
NECHUTNÝ, S. Překlad podmnožiny jazyka PHP do C++ [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2016.
Document type
Document version
Date of access to the full text
Language of document
cs
Study field
Informační technologie
Comittee
prof. RNDr. Alexandr Meduna, CSc. (předseda) doc. Ing. Lukáš Burget, Ph.D. (místopředseda) doc. Mgr. Lukáš Holík, Ph.D. (člen) doc. Ing. Jiří Jaroš, Ph.D. (člen) Ing. Zbyněk Křivka, Ph.D. (člen)
Date of acceptance
2016-06-15
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 C. Otázky u obhajoby: Predpokladá sa, že vygenerovaný C++ kód sa bude nejak ručne upravovať? Alebo sa len preloží a použije? Ak sa upravovať nebude, nebolo by jednoduchšie objektom (e.g. premenné) priraďovať automaticky generované identifikátory ako riešiť ich správny preklad medzi jazykmi. Nepomohlo by takéto riešenie aj pri vysporiadaní sa s obormi viditeľnosti premenných v C++?
Result of defence
práce byla úspěšně obhájena
Document licence
Standardní licenční smlouva - přístup k plnému textu bez omezení
DOI
Collections
Citace PRO