Repository logo
 
Loading...
Thumbnail Image
Publication

Improving parallel and concurrent programming in FreeST

Use this identifier to reference this record.
Name:Description:Size:Format: 
TM_Guilherme_Lopes.pdf5.77 MBAdobe PDF Download

Abstract(s)

Technological advancements led manufacturers to shift from single-processor to multi-core architectures, fostering the rise of parallel and concurrent computing. This transition has yielded substantial benefits, such as improved performance and enhanced interprocess communication in distributed systems. However, it has also introduced challenges requiring specialized tools and languages to handle parallelism and concurrency efficiently and make these tasks easier for developers. Languages like Erlang and Go were purpose-built to meet these demands, while others, such as Java, have evolved to incorporate features facilitating parallel and concurrent programming, providing accessible solutions for emerging paradigms. FreeST is a modern, message-passing concurrent functional language featuring context-free session types to ensure strict adherence to communication protocols. While session types were designed for concurrent programming, FreeST, despite its strengths, stumbles upon limitations stemming from its embryonic state and the lack of comprehensive tools for addressing various parallel and concurrent programming paradigms. Consequently, FreeST demands substantial domain knowledge and effort to develop parallel and concurrent systems effectively, posing a steep learning curve. Our goal in this work is to provide a set of tools that improve and ease parallel and concurrent programming in FreeST. This thesis proposes the development of three modules aimed at enhancing FreeST’s capability to handle diverse parallel and concurrent programming paradigms and concepts: data parallelism and embarrassingly parallel problems, futures and divide-and-conquer strategies, and stream programming. These modules are designed to leverage FreeST’s unique features and expand its practical utility in real-world applications, making it a more versatile and effective tool for addressing complex parallel and concurrent computing challenges. To validate our contributions, we employ surveys and a Lines of Code (LoC) comparison.

Description

Tese de Mestrado, Engenharia Informática, 2024, Universidade de Lisboa, Faculdade de Ciências

Keywords

Tipos de sessão Concorrência Problemas embaraçosamente paralelos Futuros Streams Teses de mestrado - 2024

Pedagogical Context

Citation

Research Projects

Organizational Units

Journal Issue

Publisher

CC License