Back to search

Cal Poly

Funqual: User-Defined, Statically-Checked Call Graph Constraints in C++

Abstract

dc:description.abstract

<p>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.</p>

Degree

thesis:*
Name thesis:degree_name
MS in Computer Science
Discipline thesis:degree_discipline
Computer Science
Year dc:date.available
2018

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Nelson, Andrew P
Contributors dc:contributor
  • Aaron Keen

Subjects

dc:subject × 13

Identifiers

dc:identifier.*
OAI identifier oai:identifier
oai:digitalcommons.calpoly.edu:theses-3256

Chain of custody

source
Harvested from
Cal Poly
Base URL
digitalcommons.calpoly.edu/do/oai/
Last updated
2026-07-24
Source record
OAI-PMH GetRecord
related terms
citation

Nelson, Andrew P. Funqual: User-Defined, Statically-Checked Call Graph Constraints in C++. 2018. https://digitalcommons.calpoly.edu/theses/1848