Zobrazit minimální záznam

Implementace rezoluce řízení toku v dynamickém jazyce
dc.contributor.advisorZavoral, Filip
dc.creatorŠindelář, Štěpán
dc.date.accessioned2017-05-27T17:07:32Z
dc.date.available2017-05-27T17:07:32Z
dc.date.issued2014
dc.identifier.urihttp://hdl.handle.net/20.500.11956/71741
dc.description.abstractS dynamickými programovacími jazyky je možné psát kód bez typové informace a typy proměnných se mohou měnit za běhu. Přestože se dynamické typování snadněji používá a je vhodné pro rychlé prototypování, dynamicky typovaný kód může být více náchylný k programátorským chybám a představuje nelehký úkol pro překladače nebo interpretry. Vývojáři často používají dokumentační komentáře pro explicitní uvedení typové informace, nicméně dostupné nástroje většinou nekontrolují shodu mezi komentáři a vlastním kódem. V této práci se zaměřujeme na jeden z nejpopulárnějších dynamických programovacích jazyků: PHP. V rámci této práce jsme vyvinuli framework pro statickou analýzu PHP kódu jako část projektu Phalanger -- překladače PHP do .NET. I když, tento framework podporuje jakýkoliv druh statické analýzy, implementovali jsme především typovou analýzu za účelem odhalení typových chyb a nekonzistence kódu s dokumentačními komentáři. S pomocí této analýzy jsme odhalili několik reálých chyb a nekonzistencí s dokumentací v kódu několika reálných PHP projektů s dobrým poměrem falešně pozitivních chyb. Powered by TCPDF (www.tcpdf.org)cs_CZ
dc.description.abstractDynamic programming languages allow us to write code without type information and types of variables can change during execution. Although easier to use and suitable for fast prototyping, dynamic typing can lead to error prone code and is challenging for the compilers or interpreters. Programmers often use documentation comments to provide the type information, but the correspondence of the documentation and the actual code is usually not checked by the tools. In this thesis, we focus on one of the most popular dynamic programming languages: PHP. We have developed a framework for static analysis of PHP code as a part of the Phalanger project -- the PHP to .NET compiler. The framework supports any kind of analysis, but in particular, we implemented type inference analysis with emphasis on discovery of possible type related errors and mismatches between documentation and the actual code. The implementation was evaluated on real PHP applications and discovered several real errors and documentation mismatches with a good ratio of false positives. Powered by TCPDF (www.tcpdf.org)en_US
dc.languageEnglishcs_CZ
dc.language.isoen_US
dc.publisherUniverzita Karlova, Matematicko-fyzikální fakultacs_CZ
dc.subjectdynamicke programovac jazykycs_CZ
dc.subjectstaticka analyzacs_CZ
dc.subjectPHPcs_CZ
dc.subjectPhalangercs_CZ
dc.subjectdynamic programming languagesen_US
dc.subjectstatic analysisen_US
dc.subjectPHPen_US
dc.subjectPhalangeren_US
dc.titleImplementing control flow resolution in dynamic languageen_US
dc.typediplomová prácecs_CZ
dcterms.created2014
dcterms.dateAccepted2014-09-08
dc.description.departmentDepartment of Software Engineeringen_US
dc.description.departmentKatedra softwarového inženýrstvícs_CZ
dc.description.facultyMatematicko-fyzikální fakultacs_CZ
dc.description.facultyFaculty of Mathematics and Physicsen_US
dc.identifier.repId128607
dc.title.translatedImplementace rezoluce řízení toku v dynamickém jazycecs_CZ
dc.contributor.refereeJežek, Pavel
dc.identifier.aleph001851222
thesis.degree.nameMgr.
thesis.degree.levelnavazující magisterskécs_CZ
thesis.degree.disciplineSoftwarové systémycs_CZ
thesis.degree.disciplineSoftware Systemsen_US
thesis.degree.programInformatikacs_CZ
thesis.degree.programComputer Scienceen_US
uk.thesis.typediplomová prácecs_CZ
uk.taxonomy.organization-csMatematicko-fyzikální fakulta::Katedra softwarového inženýrstvícs_CZ
uk.taxonomy.organization-enFaculty of Mathematics and Physics::Department of Software Engineeringen_US
uk.faculty-name.csMatematicko-fyzikální fakultacs_CZ
uk.faculty-name.enFaculty of Mathematics and Physicsen_US
uk.faculty-abbr.csMFFcs_CZ
uk.degree-discipline.csSoftwarové systémycs_CZ
uk.degree-discipline.enSoftware Systemsen_US
uk.degree-program.csInformatikacs_CZ
uk.degree-program.enComputer Scienceen_US
thesis.grade.csVýborněcs_CZ
thesis.grade.enExcellenten_US
uk.abstract.csS dynamickými programovacími jazyky je možné psát kód bez typové informace a typy proměnných se mohou měnit za běhu. Přestože se dynamické typování snadněji používá a je vhodné pro rychlé prototypování, dynamicky typovaný kód může být více náchylný k programátorským chybám a představuje nelehký úkol pro překladače nebo interpretry. Vývojáři často používají dokumentační komentáře pro explicitní uvedení typové informace, nicméně dostupné nástroje většinou nekontrolují shodu mezi komentáři a vlastním kódem. V této práci se zaměřujeme na jeden z nejpopulárnějších dynamických programovacích jazyků: PHP. V rámci této práce jsme vyvinuli framework pro statickou analýzu PHP kódu jako část projektu Phalanger -- překladače PHP do .NET. I když, tento framework podporuje jakýkoliv druh statické analýzy, implementovali jsme především typovou analýzu za účelem odhalení typových chyb a nekonzistence kódu s dokumentačními komentáři. S pomocí této analýzy jsme odhalili několik reálých chyb a nekonzistencí s dokumentací v kódu několika reálných PHP projektů s dobrým poměrem falešně pozitivních chyb. Powered by TCPDF (www.tcpdf.org)cs_CZ
uk.abstract.enDynamic programming languages allow us to write code without type information and types of variables can change during execution. Although easier to use and suitable for fast prototyping, dynamic typing can lead to error prone code and is challenging for the compilers or interpreters. Programmers often use documentation comments to provide the type information, but the correspondence of the documentation and the actual code is usually not checked by the tools. In this thesis, we focus on one of the most popular dynamic programming languages: PHP. We have developed a framework for static analysis of PHP code as a part of the Phalanger project -- the PHP to .NET compiler. The framework supports any kind of analysis, but in particular, we implemented type inference analysis with emphasis on discovery of possible type related errors and mismatches between documentation and the actual code. The implementation was evaluated on real PHP applications and discovered several real errors and documentation mismatches with a good ratio of false positives. Powered by TCPDF (www.tcpdf.org)en_US
uk.file-availabilityV
uk.publication.placePrahacs_CZ
uk.grantorUniverzita Karlova, Matematicko-fyzikální fakulta, Katedra softwarového inženýrstvícs_CZ
dc.identifier.lisID990018512220106986


Soubory tohoto záznamu

Thumbnail
Thumbnail
Thumbnail
Thumbnail
Thumbnail
Thumbnail
Thumbnail

Tento záznam se objevuje v následujících sbírkách

Zobrazit minimální záznam


© 2017 Univerzita Karlova, Ústřední knihovna, Ovocný trh 560/5, 116 36 Praha 1; email: admin-repozitar [at] cuni.cz

Za dodržení všech ustanovení autorského zákona jsou zodpovědné jednotlivé složky Univerzity Karlovy. / Each constituent part of Charles University is responsible for adherence to all provisions of the copyright law.

Upozornění / Notice: Získané informace nemohou být použity k výdělečným účelům nebo vydávány za studijní, vědeckou nebo jinou tvůrčí činnost jiné osoby než autora. / Any retrieved information shall not be used for any commercial purposes or claimed as results of studying, scientific or any other creative activities of any person other than the author.

DSpace software copyright © 2002-2015  DuraSpace
Theme by 
@mire NV