Automatická kontrola programů v jazyce C
Automated checking of C language programs
bachelor thesis (DEFENDED)
![Document thumbnail](/bitstream/handle/20.500.11956/26818/thumbnail.png?sequence=8&isAllowed=y)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/26818Identifiers
Study Information System: 64974
Collections
- Kvalifikační práce [11266]
Author
Advisor
Referee
Spousta, Miroslav
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
General Computer Science
Department
Department of Applied Mathematics
Date of defense
14. 9. 2009
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
Czech
Grade
Excellent
V této práci studuji možnost zjišt'ovat běžné začátenické chyby v jazyce C pomocí statických analýz zdrojového kódu a generování run-time testů. Součástí práce je implementace několika jednoduchých statických analýz a run-time testů zaměřených na začátečnické chyby a jejich co nejpřesnější lokalizaci ve zdrojovém kódu. Jako základ pro jejich implementaci jsem zvolil kompilátorovou infrastrukturu LLVM a frontend Clang. Dále v téeto práci naleznete stručný programátorský úvod do systému LLVM a popis nově implementovaných nástrojů. Hlavním cílem je umožnit využití jazyka C ve výuce základního kurzu programování.
In the present work I study ways of checking common beginner mistakes in C language programs using static analyses of source code and generating run-time checks. Part of this work consists of implementation of several simple static analyses and run-time check generators focused on detecting beginner mistakes and locating them in the source code as accurately as possible. I have chosen the LLVM Compiler Infrastructure and Clang frontend as a basis for the implementation. In this text, you will find a brief programmer's introduction to the LLVM Compiler Infrastructure and a description of newly implemented tools. The main goal of this work is to enable using the C programming language for basic computer programming course.