Browsing Mathematics (Faculty of) by Subject "programming languages"
Now showing items 1-16 of 16
-
Advanced Concepts in Asynchronous Exception Handling
(University of Waterloo, 2011-01-21)Asynchronous exception handling is a useful and sometimes necessary alternative form of communication among threads. This thesis examines and classifies general concepts related to asynchrony, asynchronous propagation ... -
Completeness of Fact Extractors and a New Approach to Extraction with Emphasis on the Refers-to Relation
(University of Waterloo, 2008-08-19)This thesis deals with fact extraction, which analyzes source code (and sometimes related artifacts) to produce extracted facts about the code. These facts may, for example, record where in the code variables are declared ... -
C∀ Type System Implementation
(University of Waterloo, 2019-04-30)The C programming language has been an important software development tool for decades. C∀ is a new programming language designed with strong backwards-compatibility to take advantage of widely distributed C programming ... -
Data Flow Analysis in the Presence of Correlated Calls
(University of Waterloo, 2014-08-19)This thesis presents a technique to improve the precision of data-flow analyses on object-oriented programs in the presence of correlated calls. We say that two method calls are correlated if they are polymorphic (have ... -
Direct and Expressive Type Inference for the Rank 2 Fragment of System F
(University of Waterloo, 2007-09-20)This thesis develops a semiunification-based type inference procedure for the rank 2 fragment of System F, with an emphasis on practical considerations for the adoption of such a procedure into existing programming ... -
Exception Handling in C∀
(University of Waterloo, 2021-10-04)The C∀ (Cforall) programming language is an evolutionary refinement of the C programming language, adding modern programming features without changing the programming paradigms of C. One of these modern programming features ... -
Features of a Multi-Threaded Memory Allocator
(University of Waterloo, 2008-01-21)Multi-processor computers are becoming increasingly popular and are important for improving application performance. Providing high-performance memory-management is important for multi-threaded programs. This thesis looks ... -
High Level Concurrency in C∀
(University of Waterloo, 2023-09-25)Concurrent programs are notoriously hard to write and even harder to debug. Furthermore concurrent programs must be performant, as the introduction of concurrency into a program is often done to achieve some form of speedup. ... -
Implementing a Functional Language for Flix
(University of Waterloo, 2016-09-15)Static program analysis is a powerful technique for maintaining software, with applications such as compiler optimizations, code refactoring, and bug finding. Static analyzers are typically implemented in general-purpose ... -
Implementing Overloading and Polymorphism in Cforall
(University of Waterloo, 2003)The programming language Cforall extends the C language with, among other things, overloading, parametric polymorphism, and functions that can return multiple values from a single call. This thesis presents an outline ... -
A Path to DOT: Formalizing Scala with Dependent Object Types
(University of Waterloo, 2019-12-13)The goal of my thesis is to enable formal reasoning about the Scala programming language. To that end I present a core calculus that formalizes Scala's i) essential features in a ii) type-safe way and is iii) easy to extend ... -
Scala with Explicit Nulls
(University of Waterloo, 2019-12-20)The Scala programming language unifies the object-oriented and functional styles of programming. One common source of errors in Scala programs is null references. In this dissertation, I present a modification to the Scala ... -
Specializing Scala with Truffle
(University of Waterloo, 2022-11-24)Scala is a generic object-oriented programming language with higher-order abstractions. Programming abstractions in Scala exemplify reusability and extensibility in the context of type safety. In particular, generic ... -
Static Types with Less Syntax: Locus Types
(University of Waterloo, 2017-05-01)Optionally and gradually-typed languages allow types to be introduced to dynamic code as needed. While this approach allows some gradual movement from dynamically to statically-typed code, it requires rewriting ... -
TreeGen: a monotonically impure functional language
(University of Waterloo, 2020-08-19)We present TreeGen, an impure functional language designed to express, consume, and validate JSON-like documents, as well as generate text files. The language aims to provide a more reliable and flexible way to create ... -
A Type System With Containers
(University of Waterloo, 2021-10-04)In this thesis, we will introduce the concept of containers as they apply to programming languages. Encapsulation is a common topic in programming languages with well understood benefits. Here, we will investigate its ...