Software Engineering

Type Inference with Overloading in SCC

Adding two numbers and adding (concatenating) two strings feels similar. It is only logical that both functions should be called the same. Normally two functions with the same name raise an error from the compiler. Function overloading enables the user to call functions that solve the same problem by the same name. The tradeoff is a more complex compiler that has to analyze the function signatures to find out which function is actually meant. This is called overload resolution. This master’s thesis explores augmenting the sequent calculus compiler with an overload resolution version derived from a paper by Jiří Beneš and Jonathan Immanuel Brachthäuser. Instead of exploring all possible combinations of function calls this paper proposes an approach that can copy the type constraints and tag them with different call choices accelerating the overload resolution.

Contact

Jonathan Brachthäuser