C++ linter based on linear types
| Název práce v češtině: | Linter pro C++ využívající lineární typy |
|---|---|
| Název v anglickém jazyce: | C++ linter based on linear types |
| Klíčová slova: | typové systémy, lineární typy, C++, statická analýza |
| Klíčová slova anglicky: | type systems, linear types, C++, static analysis |
| Akademický rok vypsání: | 2017/2018 |
| Typ práce: | bakalářská práce |
| Jazyk práce: | angličtina |
| Ústav: | Katedra softwarového inženýrství (32-KSI) |
| Vedoucí / školitel: | RNDr. Miroslav Kratochvíl, Ph.D. |
| Řešitel: | skrytý - zadáno a potvrzeno stud. odd. |
| Datum přihlášení: | 24.09.2018 |
| Datum zadání: | 24.09.2018 |
| Datum potvrzení stud. oddělením: | 03.12.2018 |
| Datum a čas obhajoby: | 14.09.2020 09:00 |
| Datum odevzdání elektronické podoby: | 30.07.2020 |
| Datum odevzdání tištěné podoby: | 31.07.2020 |
| Datum proběhlé obhajoby: | 14.09.2020 |
| Oponenti: | RNDr. Vít Šefl, Ph.D. |
| Zásady pro vypracování |
| C++ allows to represent and pass data around in many different forms -- as values, references, pointers, smart pointers, in containers, etc., all of that constant, non-constant or constexpr on various levels. Programmer choice of the data representation is often sub-optimal: constant-data are often represented as non-constant, and many opportunities to pass data efficiently as references are missed. Such code may inhibit the optimization possibilities of the compiler, which is in turn forced to produce sub-optimal programs.
The thesis aims to develop a static analysis algorithm that uses a linear type system to discover and report such inefficiencies. The resulting program will re-use the infrastructure of the Clang compiler to parse the source code, extract the information required for the analysis, process it using a customized type system, and output the suggested code corrections in a linter-like report. |
| Seznam odborné literatury |
| Lattner, C. (2008, May). LLVM and Clang: Next generation compiler technology. In The BSD conference (pp. 1-2).
Girard, J. Y. (1987). Linear logic. Theoretical computer science, 50(1), 1-101. Wadler, P. (1990, April). Linear types can change the world. In IFIP TC (Vol. 2, pp. 347-359). Nielson, F., Nielson, H. R., & Hankin, C. (2015). Principles of program analysis. Springer. Jones, M. P. (1999, September). Typing haskell in haskell. In Haskell workshop (Vol. 7). |
- zadáno a potvrzeno stud. odd.