Linear Type Systems: What Are They, and How Are They Used in Programming Languages

Lischer, Olivier (2025) Linear Type Systems: What Are They, and How Are They Used in Programming Languages. Other thesis, OST Ostschweizer Fachhochschule.

[thumbnail of Linear Type Systems_ What Are They, and How Are They Used in Programming Languages.pdf] Text
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

Actions (login required)

View Item
View Item