ČVUT DSpace
  • Search DSpace
  • Čeština
  • Login
  • Čeština
  • Čeština
View Item 
  •   ČVUT DSpace
  • Czech Technical University in Prague
  • Faculty of Information Technology
  • Department of Theoretical Computer Science
  • Master Theses - 18101
  • View Item
  • Czech Technical University in Prague
  • Faculty of Information Technology
  • Department of Theoretical Computer Science
  • Master Theses - 18101
  • View Item
JavaScript is disabled for your browser. Some features of this site may not work without it.

Analýza toku výjimek v Kotlinu

Exception flow analysis for Kotlin

Type of document
diplomová práce
master thesis
Author
Filip Dolník
Supervisor
Hunka Jiří
Opponent
Křikava Filip
Field of study
Systémové programování
Study program
Informatika
Institutions assigning rank
katedra teoretické informatiky



Rights
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.html
Vysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Show full item record
Abstract
Ošetřování výjimek je nezbytnou součástí vývoje softwaru, je však zároveň také jednou z nejnáročnějších. Chyby ve zpracování výjimek mohou způsobit mnoho problémů - od špatného uživatelského rozhraní až po bezpečnostní zranitelnosti. Tyto chyby se často vyskytují na rozhraní dvou systémů. Důvodem je mimo jiné to, že API těchto systémů obvykle není správně zdokumentováno, zejména pokud jde o výjimky. Ruční dokumentování výjimek v API je časově náročné, a navíc náchylné na chyby. Tato práce navrhuje řešení v podobě automatické tvorby této dokumentace. Tím řešením je statická analýza propagace výjimek, která vytvoří seznam potenciálně vyhozených výjimek z API. Výsledkem této práce je návrh této statické analýzy, konkrétně pro programovací jazyk Kotlin. Vytvořený návrh lze použít k implementaci nástroje pro automatické dokumentování API. Navržená analýza je založena na abstraktní interpretaci a klade důraz na vysokou přesnost. Analýza si poradí jak s objektově orientovanými, tak s funkcionálními aspekty Kotlinu. Návrh je modulární a používá dvě různé IR. Díky tomu lze snadno přidat podporu dalších programovacích jazyků. Součástí této práce je také implementace prototypu navržené analýzy. Vyvinutý prototyp interně používá kompilátor Kotlinu pro převod analyzovaného zdrojového kódu do IR Kotlinu. Tato IR je poté převedena na jednu ze dvou IR statické analýzy. Tento proces převodu je v práci podrobně zdokumentován spolu s významnou částí IR Kotlinu. Vzniklá dokumentace také vysvětluje sémantiku funkcí Kotlinu, zejména těch, které souvisí s propagací výjimek. Tato dokumentace může být užitečná při implementaci zásuvných modulů pro kompilátor Kotlinu nebo jiných statických analýz. Vytvořený prototyp lze použít na experimentování s většinou vzniklého návrhu analýzy. Jeho implementace však není úplná, takže jej nelze použít k analýze reálných projektů. Součástí prototypu je mnoho akceptačních testů zaměřených na propagaci výjimek. Prototyp i tyto testy lze použít při implementaci nástroje na dokumentování API.
 
Exception handling is one of the most challenging parts of the software development, yet it is essential. An improper exception handling can cause many problems - from bad UX to security vulnerabilities. Mistakes in exception handling frequently occur at the boundaries of two systems. Part of the reason is that the API of those systems is usually not correctly documented, especially when it comes to exceptions. Manually documenting API exceptions is a time-consuming and error-prone process. This thesis proposes a solution for creating the documentation automatically. The solution is a static analysis of exception propagation. This static analysis produces a list of potentially thrown exceptions by API endpoints. The result of this thesis is a design of such static analysis for the Kotlin programming language. The created design can be used to implement a tool for documenting APIs. The designed analysis is based on abstract interpretation, focusing on high precision. The analysis can handle both object-oriented and functional programming aspects of Kotlin. The design is modular and uses two different intermediate representations. As a result, the design can be easily extended to support other programming languages. This thesis also includes a prototype of the proposed analysis. The prototype internally uses the Kotlin compiler to parse the analyzed source code into the Kotlin IR. The produced Kotlin IR is then converted to one of the intermediate representations. The thesis describes this process in detail and, at the same time, it documents a significant part of the Kotlin IR. The documentation also explains the semantics of Kotlin features that the analysis handles. This documentation can be helpful when implementing compiler plugins or other static analyses. The created prototype can be used to experiment with most of the analysis design. However, it does not implement the entire design, so it cannot be used to analyze real-world projects. The prototype contains many acceptance tests focused on the exception propagation. Together the prototype and the tests can be used as a starting point for implementing the tool for documenting APIs.
 
URI
http://hdl.handle.net/10467/101043
View/Open
PLNY_TEXT (685.7Kb)
POSUDEK (46.32Kb)
POSUDEK (42.03Kb)
Collections
  • Diplomové práce - 18101 [227]

Related items

Showing items related by title, author, creator and subject.

  • Multiplatformní mobilní aplikace pro rozvrh na FIT ČVUT v Praze 

    Author: Oleksandr Petrov; Supervisor: Suchánek Marek; Opponent: Blizničenko Jan
    (České vysoké učení technické v Praze. Vypočetní a informační centrum.Czech Technical University in Prague. Computing and Information Centre., 2024-02-08)
    Tato práce se zabývá vývojem multiplatformní mobilní aplikace pro správu rozvrhu na Fakultě informačních technologií ČVUT v Praze. Cílem práce byla analýza a implementace mobilní aplikace, která usnadní a zpříjemní studentům ...
  • Tvorba UI pomocí Compose Multiplatform 

    Author: Filip Trokšiar; Supervisor: Šíma Petr; Opponent: Kuznetsov Stanislav
    (České vysoké učení technické v Praze. Vypočetní a informační centrum.Czech Technical University in Prague. Computing and Information Centre., 2024-06-08)
    Magisterská práce se zabývá analýzou frameworku Compose Multiplatform sloužícího k tvorbě multiplatformních uživatelských rozhraní. Framework je nejprve podroben analýze a porovnán s obdobnými aktuálně používanými ...
  • Rozšíření a nasazení Android aplikace pro hledání brigád 

    Author: Matouš Krobot; Supervisor: Blizničenko Jan; Opponent: Pergl Robert
    (České vysoké učení technické v Praze. Vypočetní a informační centrum.Czech Technical University in Prague. Computing and Information Centre., 2025-06-19)
    Bakalářská práce se zabývá rozšířením a nasazením prototypu multiplatformní aplikace pro platformu Daywork. Tato aplikace je určena pro český trh a propojuje brigádníky a zaměstnavatele se zaměřením na jednorázové brigády. ...

České vysoké učení technické v Praze copyright © 2016 

DSpace software copyright © 2002-2016  Duraspace

Contact Us | Send Feedback
Theme by 
@mire NV
 

 

Useful links

CTU in PragueCentral library of CTUAbout CTU Digital LibraryResourcesStudy and library skillsResearch support

Browse

All of DSpaceCommunities & CollectionsBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects

My Account

Login

České vysoké učení technické v Praze copyright © 2016 

DSpace software copyright © 2002-2016  Duraspace

Contact Us | Send Feedback
Theme by 
@mire NV