Detail práce
Překlad podmnožiny jazyka PHP do C++
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.
PHP, C++, C++11, překlad, modul, rozšíření, optimalizace, PHP-CPP, xdebug, datové typy, analýza kódu, PHC, HPHPc, HHVM, Testy řízené programování, generování kódu, tokeny, výrazy, precedenční analýza, konverze datových typů, transformace
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.
- 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++?
Burget Lukáš, doc. Ing., Ph.D. (UPGM FIT VUT), člen
Holík Lukáš, doc. Mgr., Ph.D. (UITS FIT VUT), člen
Jaroš Jiří, doc. Ing., Ph.D. (UPSY FIT VUT), člen
Křivka Zbyněk, Ing., Ph.D. (UIFS FIT VUT), člen
@bachelorsthesis{FITBT18222, author = "Stanislav Nechutn\'{y}", type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce", title = "P\v{r}eklad podmno\v{z}iny jazyka PHP do C++", school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}", year = 2016, location = "Brno, CZ", language = "czech", url = "https://www.fit.vut.cz/study/thesis/18222/" }