Publication
Improving parallel and concurrent programming in FreeST
| datacite.subject.fos | Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática | pt_PT |
| dc.contributor.advisor | Rodrigues, Andreia Filipa Torcato Mordido | |
| dc.contributor.advisor | Vasconcelos, Vasco Manuel Thudichum de Serpa | |
| dc.contributor.author | Lopes, Guilherme João Correia | |
| dc.date.accessioned | 2024-11-25T18:20:41Z | |
| dc.date.available | 2024-11-25T18:20:41Z | |
| dc.date.issued | 2024 | |
| dc.date.submitted | 2024 | |
| dc.description | Tese de Mestrado, Engenharia Informática, 2024, Universidade de Lisboa, Faculdade de Ciências | pt_PT |
| dc.description.abstract | 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. | pt_PT |
| dc.identifier.tid | 203741170 | |
| dc.identifier.uri | http://hdl.handle.net/10400.5/95630 | |
| dc.language.iso | eng | pt_PT |
| dc.subject | Tipos de sessão | pt_PT |
| dc.subject | Concorrência | pt_PT |
| dc.subject | Problemas embaraçosamente paralelos | pt_PT |
| dc.subject | Futuros | pt_PT |
| dc.subject | Streams | pt_PT |
| dc.subject | Teses de mestrado - 2024 | pt_PT |
| dc.title | Improving parallel and concurrent programming in FreeST | pt_PT |
| dc.type | master thesis | |
| dspace.entity.type | Publication | |
| rcaap.rights | openAccess | pt_PT |
| rcaap.type | masterThesis | pt_PT |
| thesis.degree.name | Mestrado em Engenharia Informática | pt_PT |
