Témata prací (Výběr práce)Témata prací (Výběr práce)(verze: 390)
Detail práce
   Přihlásit přes CAS
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ý - zadáno a potvrzeno stud. odd.
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/
 
Univerzita Karlova | Informační systém UK