Lischer, Olivier (2025) Linear Type Systems: What Are They, and How Are They Used in Programming Languages. Other thesis, OST Ostschweizer Fachhochschule.
Linear Type Systems_ What Are They, and How Are They Used in Programming Languages.pdf - Submitted Version
Download (471kB)
Abstract
In every programming language, resource management, including memory management, is an essential part of the language. In C/C++, resource management is done manually and therefore the responsibility lies with the developer.
This gives you the most control, but it can also lead to errors such as user-after-free and double-free. In contrast, many so-called high-level programming languages use an automatic system with garbage collectors to clean up unused memory. With Rust, there is a system programming language that offers many advantages of manual resource management without sacrificing resource safety.
The goal of this paper is to present a type system for a functional programming language that enables a runtime system to perform resource management without a garbage collector.
To study the type system for such a functional programming language, the simply typed lambda calculus is used and then extended by a linear type system. This linear type system already enables a certain resource safety.
By adding ownership typing, the type system enables a garbage collector free runtime system.
A simply typed lambda calculus with a linear type system was presented, which also features a borrowing type system known from Rust. With the type system presented, it is possible to implement a functional programming language that does not require a garbage collector and shifts many errors in resource management to compile time.
| Item Type: | Thesis (Other) |
|---|---|
| Subjects: | Area of Application > Development Tools Technologies > Programming Languages > C++ Metatags > IFS (Institute for Software) |
| Divisions: | Master of Science in Engineering (MRU Software and Systems) |
| Depositing User: | OST Deposit User |
| Date Deposited: | 06 Oct 2025 20:35 |
| Last Modified: | 06 Nov 2025 09:52 |
| URI: | https://eprints.ost.ch/id/eprint/1333 |
