Implementing control flow resolution in dynamic language
Název práce v češtině: | Implementace rezoluce řízení toku v dynamickém jazyce |
---|---|
Název v anglickém jazyce: | Implementing control flow resolution in dynamic language |
Klíčová slova: | dynamicke programovac jazyky, staticka analyza, PHP, Phalanger |
Klíčová slova anglicky: | dynamic programming languages, static analysis, PHP, Phalanger |
Akademický rok vypsání: | 2012/2013 |
Typ práce: | diplomová práce |
Jazyk práce: | angličtina |
Ústav: | Katedra softwarového inženýrství (32-KSI) |
Vedoucí / školitel: | RNDr. Filip Zavoral, Ph.D. |
Řešitel: | skrytý![]() |
Datum přihlášení: | 09.11.2012 |
Datum zadání: | 09.11.2012 |
Datum potvrzení stud. oddělením: | 27.11.2012 |
Datum a čas obhajoby: | 08.09.2014 11:00 |
Datum odevzdání elektronické podoby: | 31.07.2014 |
Datum odevzdání tištěné podoby: | 31.07.2014 |
Datum proběhlé obhajoby: | 08.09.2014 |
Oponenti: | Mgr. Pavel Ježek, Ph.D. |
Zásady pro vypracování |
Dynamic languages allow to write code by omitting type information and allowing to 'construct' resulting program during run time. This makes programming faster but delegates more work to development environments and eventual compilers. Control flow graph of processed source code is commonly used by static language compilers. It references code analysis techniques like type inference, unreachable code detection etc.
In this thesis student have to use Phalanger which provides PHP code parser and abstract syntax tree structures. Using this framework, he has to achieve following goals: - Implement code flow structure for PHP language. - Provide public API to analyze parsed PHP code. Report unreachable code branches. Infer possible type information for expressions (variables, array items, complex expressions). Note type of single variable may change during execution. Detect variables with constant value. |
Seznam odborné literatury |
[1] Meijer, Erik and Peter Drayton (2005). "Static Typing Where Possible, Dynamic Typing When Needed: The End of the Cold War Between Programming Languages". Microsoft Corp.
[2] Aho, Alfred V.; Sethi, Ravi; and Ullman, Jeffrey D., Compilers: Principles, Techniques and Tools [3] http://en.wikipedia.org/wiki/Control_flow [4] http://phalanger.codeplex.com/ |