-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmetadata.tex
128 lines (109 loc) · 5.32 KB
/
metadata.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
%%% Please fill in basic information on your thesis, which will be automatically
%%% inserted at the right places.
% Type of your thesis:
% "bc" for Bachelor's
% "mgr" for Master's
% "phd" for PhD
% "rig" for rigorosum
\def\ThesisType{bc}
% Language of your study programme:
% "cs" for Czech
% "en" for English
\def\StudyLanguage{cs}
% Thesis title in English (exactly as in the official assignment)
% (Note: \xxx is a "ToDo label" which makes the unfilled visible. Remove it.)
\def\ThesisTitle{Abstract Interpretation of Pandas}
% Author of the thesis (you)
\def\ThesisAuthor{Jan Hrubý}
% Year when the thesis is submitted
\def\YearSubmitted{2024}
% Name of the department or institute, where the work was officially assigned
% (according to the Organizational Structure of MFF UK in English,
% see https://www.mff.cuni.cz/en/faculty/organizational-structure,
% or a full name of a department outside MFF)
\def\Department{Department of Distributed and Dependable Systems}
% Is it a department (katedra), or an institute (ústav)?
\def\DeptType{Department}
% Thesis supervisor: name, surname and titles
\def\Supervisor{Mgr. Tomáš Petříček, Ph.D.}
% Supervisor's department (again according to Organizational structure of MFF)
\def\SupervisorsDepartment{Department of Distributed and Dependable Systems}
% Study programme (does not apply to rigorosum theses)
\def\StudyProgramme{Computer Science}
% An optional dedication: you can thank whomever you wish (your supervisor,
% consultant, who provided you with tea and pizza, etc.)
\def\Dedication{%
(Not generated by ChatGPT even though their suggestions were nicer)
There are people I would not be able to finish the thesis without and I~think they deserve to~be~mentioned.
The first~person is my supervisor, Professor~Tomáš~Petříček.
I~thank~him for~his~guidance, great~insight and courage he~provided me~with.
I~would also like to~thank my~fiancée~Lana.
She~was~there for~me whenever I~needed~her, and I~am~grateful for~that.
I~would also want to~thank the~tearoom Jedna~Báseň and tearoom~
Dharmasala for a~comfortable~spot for~writing my~thesis and a~steady~supply of~great~tea.
}
% Abstract (recommended length around 80-200 words; this is not a copy of your thesis assignment!)
\def\Abstract{%
Pandas is a Python library widely used for data-manipulation.
The code written with Pandas lacks any type-safety and everything is decided at runtime.
This can potentially be a source of errors and crashes at runtime.
One way to deal with that is to use another, type-safe, language and a library with better safety guarantees and
compile-time checks.
This approach is not widely used as it is not very user-friendly.
An alternative approach could be to use program verification method Abstract Interpretation to perform some checks
before the run of the program.
The goal of this thesis is to design a framework for analyzing data-manipulation programs and implement an analyzer
for the Pandas library.
The framework will be based on the Abstract Interpretation.
The capabilities of the resulting analyzer will be evaluated on a set of small but realistic case studies.
}
% 3 to 5 keywords (recommended) separated by \sep
% Keywords are useful for indexing and searching for the theses by topic.
\def\ThesisKeywords{%
python
\sep
pandas
\sep
abstract interpretation
\sep
data analysis
}
% If any of your metadata strings contains TeX macros, you need to provide
% a plain-text version for use in XMP metadata embedded in the output PDF file.
% If you are not sure, check the generated thesis.xmpdata file.
\def\ThesisAuthorXMP{\ThesisAuthor}
\def\ThesisTitleXMP{\ThesisTitle}
\def\ThesisKeywordsXMP{\ThesisKeywords}
\def\AbstractXMP{\Abstract}
% If your abstracts are long and do not fit in the infopage, you can make the
% fonts a bit smaller by this setting. (Also, you should try to compress your abstract more.)
\def\InfoPageFont{}
%\def\InfoPageFont{\small} % uncomment to decrease font size
% If you are studing in a Czech programme, you also need to provide metadata in Czech:
% (in English programmes, this is not used anywhere)
\def\ThesisTitleCS{Abstraktní interpretace knihovny Pandas}
\def\DepartmentCS{Katedra distribuovaných a spolehlivých systémů}
\def\DeptTypeCS{Katedra}
\def\SupervisorsDepartmentCS{Katedra distribuovaných a spolehlivých systémů}
\def\StudyProgrammeCS{Informatika}
\def\ThesisKeywordsCS{%
python
\sep
pandas
\sep
abstraktní interpretace
\sep
datová analýza
}
\def\AbstractCS{%
Pandas je oblíbená knihovna pro manipulaci a analýzu dat v Pythonu.
Kód napsaný s Pandas nemá žádné typové kontroly a vše je rozhodováno za běhu programu.
To může být zdrojem chyb a pádu celého programu za běhu.
Jeden ze způsobů jak tento problém řešit je použít jiný, staticky typovaný, jazyk a knihovnu se silnějšími bezpečnostními
zárukami a kompilačními kontrolami.
Takové řešení se však nerozšířilo kvůli horší uživatelské přívětivosti.
Alternativní cesta by mohla být použítí metody Abstraktní Interpretace ke kontrole programu před jeho během.
Cílem této práce je navrhnout způsob jak využít Abstraktni Interpretaci k analýze programů pro manipulaci s daty, a
implementovat analyzátor pro knihovnu Pandas.
Schopnosti implementovaného analyzátoru budou zhodnoceny na několika malých avšak realistických případových studiích.
}