Chapter One of My Senior Thesis

🗃️ activity
Author

Benedek Kaibas

Published

October 11, 2025

Introduction

Chapter one of the senior thesis project is about the introduction to our research/tool. In this post I will give you an introduction to my senior thesis. By the end of this introduction I hope you will have a better idea about my research!

Problem We Face and The Importance of It

Type related errors are the leading errors in Python programming language according to (Oh & Oh, 2022). We have static analysis toolsets that are scanning our source code and without running it they produce analysis. The feedback of these static analysis tools or type checkers is important for developers to determine, if their code has type related errors. However, these type checkers are not working perfectly and they tend to produce false positive or false negative reports. On the same source code different type checkers can produce different reports. The problem we have right now is that we do not know which type checker’s report is valid without going to the source code and analyze it by ourselves.

Also if we encounter a false report in a type checker it only happens, if someone’s code resulted in a false positive or false negative report from a type checker, but that requires writing codes and running at least one type checker on that source code. If someone has a code that would lead to a false report, but does not use type checker analysis on the source code then we will never know about it.

Motivation

Right now, we face many difficulties about type checkers. We do not have an automated way of generating code examples that would force type checkers to produce false reports. Also we have to wait for someone to submit an issue with code example that leads to a false case in a type checker, but even if that happens we have to manually visit other type checkers, run those type checkers on the example and see their output.

For conclusion, we can clearly say that we need a program that does all this for us in an automated way, so we can encounter many different and new logics that trigger type checkers and force them to give false reports. Also we would need the same program to automatically evaluate the report of different type checkers.

If we have a program like I described then improving the accuracy of type checkers would be way faster and more reliable. It would also be possible to see how type checkers work on new features that are recently included in Python or will be included in later releases. By that we would be able to keep type checkers up to date with the newest versions of the Python programming language.

Research Goals

My research paper aims to provide a tool that can automatically generate code examples that would force the type checkers to report false negatives, false positives, and valid reports. Then it would be able to determine which type checkers were correct. Based on this information my research paper will evaluate the different type checkers, suggest what changes would be needed for type checkers, and provide code examples that are introducing new cases where type checkers’ reports are false.