Shared Channels on Context-free Session Types

Detalhes bibliográficos
Autor(a) principal: Barros, Diogo Filipe da Paz de
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10451/59094
Resumo: Tese de mestrado, Engenharia Informática, 2022, Universidade de Lisboa, Faculdade de Ciências
id RCAP_04f8934d21ac0eef63915c04367db559
oai_identifier_str oai:repositorio.ul.pt:10451/59094
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Shared Channels on Context-free Session Typestipos de sessãocanais partilhadoslinguagens de programaçãoprogramação concurrenteTeses de mestrado - 2022Departamento de InformáticaTese de mestrado, Engenharia Informática, 2022, Universidade de Lisboa, Faculdade de CiênciasIn an evermore connected world, communication is key. Communication is found at a very large scale in distributed systems and global networks, but also on a smaller scale in parallel execution on our computers’ processors. As technology progresses, communication becomes more complex, more structured. We now have complex protocols that guide communication with a strict set of rules. Common knowledge tells us that for each line of code we write we possibly introduce a new bug, and the more complex the logic is, the more probable it is to happen. Thus, it is only logical that nowadays, software is more prone to communication-related bugs than ever. Session types gave programmers the missing tools to ensure the correctness of communication. With session types, programmers can express protocols as types and attach them to communication channels to guarantee the protocol is fulfilled. There have been many implementations of session types, but programming languages have shown to be the best due to their seamless integration of session types and primitives that empower the programmer in a relatively simple syntax. FreeST is one of these languages and the subject of this thesis. However, FreeST’s use cases are held down by its limiting channels. FreeST’s channels only allow for one-to-one communication and therefore, patterns such as producerconsumer, client-server and thread pools are either impossible to implement or too restrictive to use. There is a world of use cases that depend on these patterns, and FreeST can’t achieve its full potential until it supports them, or in other words, until it supports one-to-many, many-to-one and many-to-many communication through its channels. Furthermore, FreeST’s connection with the real world is only done through simple prints, so interaction with the user or with the file system is completely out of its scope. In this thesis we extend FreeST with shared session types and channels so that we can support all kinds of parallel and concurrent programming. We quickly make use of these novel channels to create abstractions made available in FreeST’s standard library, and more importantly, implement a more extensive suite of IO primitives. Standard IO can be expressed through session types, and shared channels allow these to be shared among many threads while still behaving the same way as traditional IO primitives. The cherry on top of this thesis is file IO. Finally, FreeST is able to interact with its surroundings.Vasconcelos, Vasco Thudichum, 1964-Mordido, AndreiaRepositório da Universidade de LisboaBarros, Diogo Filipe da Paz de2023-08-31T10:11:52Z202220222022-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/59094enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T17:08:04Zoai:repositorio.ul.pt:10451/59094Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T22:09:05.882133Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Shared Channels on Context-free Session Types
title Shared Channels on Context-free Session Types
spellingShingle Shared Channels on Context-free Session Types
Barros, Diogo Filipe da Paz de
tipos de sessão
canais partilhados
linguagens de programação
programação concurrente
Teses de mestrado - 2022
Departamento de Informática
title_short Shared Channels on Context-free Session Types
title_full Shared Channels on Context-free Session Types
title_fullStr Shared Channels on Context-free Session Types
title_full_unstemmed Shared Channels on Context-free Session Types
title_sort Shared Channels on Context-free Session Types
author Barros, Diogo Filipe da Paz de
author_facet Barros, Diogo Filipe da Paz de
author_role author
dc.contributor.none.fl_str_mv Vasconcelos, Vasco Thudichum, 1964-
Mordido, Andreia
Repositório da Universidade de Lisboa
dc.contributor.author.fl_str_mv Barros, Diogo Filipe da Paz de
dc.subject.por.fl_str_mv tipos de sessão
canais partilhados
linguagens de programação
programação concurrente
Teses de mestrado - 2022
Departamento de Informática
topic tipos de sessão
canais partilhados
linguagens de programação
programação concurrente
Teses de mestrado - 2022
Departamento de Informática
description Tese de mestrado, Engenharia Informática, 2022, Universidade de Lisboa, Faculdade de Ciências
publishDate 2022
dc.date.none.fl_str_mv 2022
2022
2022-01-01T00:00:00Z
2023-08-31T10:11:52Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10451/59094
url http://hdl.handle.net/10451/59094
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134647260545024