Pitfalls in Parallel Programming Language Design
Author(s): Merzoian, A. (2024)
Abstract:
Multithreading is a very important concept for optimizing certain algorithms, the ability to split up certain workloads into isolated chunks and run an algorithm on these chunks across multiple threads can affect the performance of these algorithms by several factors. In this paper, a programming language called Twice is introduced. Twice is a minimal compiled language that implements multithreading through future (or promise) values. Twice is built on top of the LLVM project to support compilation to many targets and was created to be a learning tool for future language designers. Twice also implements other non-trivial features like top-level statements, control flow through if statements and while loops, a simple type system and access to foreign functions. This paper will explore the overall development process of the language compiler, discuss issues that came up during development and provide general pointers on what (not) to do when designing a programming language.
Document(s):
Merzoian_BA_EEMCS.pdf