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

Loading...
Thumbnail Image

Date

Mark

C

Journal Title

Journal ISSN

Volume Title

Publisher

Vysoké učení technické v Brně. Fakulta informačních technologií

ORCID

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) prof. 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

DOI

Collections

Endorsement

Review

Supplemented By

Referenced By

Citace PRO