IntelliSense Implementation of a Dynamic Language
Název práce v češtině: | Implementace IntelliSense pro dynamický jazyk |
---|---|
Název v anglickém jazyce: | IntelliSense Implementation of a Dynamic Language |
Klíčová slova: | IntelliSense, PHP, dynamické jazyky, Phalanger, Analýza kódu, Abstraktní Syntaktický strom |
Klíčová slova anglicky: | IntelliSense, PHP, dynamic language, Phalanger, Code Analysis, Abstract Syntax Tree |
Akademický rok vypsání: | 2017/2018 |
Typ práce: | rigorózní 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í: | 19.10.2017 |
Datum zadání: | 19.10.2017 |
Datum potvrzení stud. oddělením: | 19.10.2017 |
Datum a čas obhajoby: | 06.12.2017 00:00 |
Datum odevzdání elektronické podoby: | 19.10.2017 |
Datum odevzdání tištěné podoby: | 19.10.2017 |
Datum proběhlé obhajoby: | 06.12.2017 |
Zásady pro vypracování |
By analyzing the abstract syntax tree of the source code offer a list of possible completions for the word just being typed or a list of all words which should be placed at the specified place. Into this analysis include all constructs defined in or referenced by the application being edited. Every offered symbol name should have a short description generated using metadata-based reflection. Propose methods how to solve problems of incomplete information of types and of declarations in dynamic languages which are fully known during runtime.
The integral part of the work will be the implementation of proposed mechanisms for the chosen dynamic language (PHP). |
Seznam odborné literatury |
1) Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compilers: Principles, Techniques, and Tools
2) J. E. Hopcroft, J. D. Ullman: Introduction to Automata Theory, Languages and Computation 3) Using IntelliSense, http://msdn.microsoft.com/en-us/library/hcw1s69b.aspx 4) PHP compiler, http://www.codeplex.com/Phalanger, http://www.php-compiler.net/ |
Předběžná náplň práce |
Analýzou abstraktního syntaktického stromu zdrojového kódu zjišťujte v reálném čase možná doplnění pro slovo, které programátor právě píše nebo bude moci na konkrétním místě napsat. Do analýzy zahrňte všechny definice referencované právě psanou aplikací. K nabízeným symbolům ať je zobrazována dokumentace generovaná z meta-dat. Navrhněte možné způsoby řešení nekompletní informace o typech a deklaracích, které jsou v dynamických jazycích k dispozici typicky až za runtimu.
Nedílnou součástí práce bude implementace navržených mechanismů pro vybraný dynamický jazyk (PHP). |
Předběžná náplň práce v anglickém jazyce |
By analyzing the abstract syntax tree of the source code offer a list of possible completions for the word just being typed or a list of all words which should be placed at the specified place. Into this analysis include all constructs defined in or referenced by the application being edited. Every offered symbol name should have a short description generated using metadata-based reflection. Propose methods how to solve problems of incomplete information of types and of declarations in dynamic languages which are fully known during runtime.
The integral part of the work will be the implementation of proposed mechanisms for the chosen dynamic language (PHP). |