DOI: https://doi.org/10.15368/theses.2018.94
Available at: https://digitalcommons.calpoly.edu/theses/1848
Date of Award
6-2018
Degree Name
MS in Computer Science
Department/Program
Computer Science
Advisor
Aaron Keen
Abstract
Static analysis tools can aid programmers by reporting potential programming mistakes prior to the execution of a program. Funqual is a static analysis tool that reads C++17 code ``in the wild'' and checks that the function call graph follows a set of rules which can be defined by the user. This sort of analysis can help the programmer to avoid errors such as accidentally calling blocking functions in time-sensitive contexts or accidentally allocating memory in heap-sensitive environments. To accomplish this, we create a type system whereby functions can be given user-defined type qualifiers and where users can define their own restrictions on the call graph based on these type qualifiers. We demonstrate that this tool, when used with hand-crafted rules, can catch certain types of errors which commonly occur in the wild. We claim that this tool can be used in a production setting to catch certain kinds of errors in code before that code is even run.
Included in
Other Computer Engineering Commons, Programming Languages and Compilers Commons, Software Engineering Commons, Theory and Algorithms Commons