Detail práce

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

Bakalářská práce Student: Nechutný Stanislav Akademický rok: 2015/2016 Vedoucí: Křivka Zbyněk, Ing., Ph.D.
Název anglicky
Translation of PHP Language Subset into C++
Jazyk práce
český
Abstrakt

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.

Klíčová slova

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

Ústav
Studijní program
Informační technologie
Soubory
Stav
obhájeno, hodnocení C
Obhajoba
15. června 2016
Oponent
Průběh obhajoby

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
  1. 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++?
Komise
Meduna Alexander, prof. RNDr., CSc. (UIFS FIT VUT), předseda
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
Citace
NECHUTNÝ, Stanislav. Překlad podmnožiny jazyka PHP do C++. Brno, 2016. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. 2016-06-15. Vedoucí práce Křivka Zbyněk. Dostupné z: https://www.fit.vut.cz/study/thesis/18222/
BibTeX
@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/"
}
Nahoru