Témata prací (Výběr práce)Témata prací (Výběr práce)(verze: 285)
Detail práce
   Přihlásit přes CAS
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
Ř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
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).
 
Univerzita Karlova | Informační systém UK