Loom: Unifying Client-Side Web Technologies in a Single Programming Language

Detalhes bibliográficos
Autor(a) principal: Martins, Nuno Castro
Data de Publicação: 2017
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Texto Completo: http://hdl.handle.net/10362/55173
Resumo: Modern client-centred web applications typically depend on a set of complementary languages to control different layers of abstraction in their interfaces: the behaviour, structure, and presentation layers (in order, traditionally: JavaScript, HTML, and CSS). Applications with dynamic interfaces whose structure and presentation depend on the data and state of the application require tight links between such layers; however, communicating between them is often non-trivial or simply cumbersome, mainly because they are effectively distinct languages—each with a specific way of being interacted with. Numerous technologies have been introduced in an attempt to simplify the interaction between the multiple layers; their main focus so far, however, regards the communication between structure and behaviour—leaving room for improvement in the field of presentation. This dissertation presents Loom: a novel reactive programming language that unifies the enunciated abstraction layers of a client-side web application. Loom allows the specification of an interface’s structure and presentation in a declarative, data-dependent, and reactive manner by means of signals—values that change over time—inspired by the field of functional reactive programming: reactive meaning that when the structure and presentation of an interface depend on application-data, changes to said data cause an automatic update of the application’s interface. We provide an implementation of the language’s compiler that allows the creation of interfaces with performance comparable to that of most existent frameworks.
id RCAP_e497add7d36d9b49cf56ae1b899a9edf
oai_identifier_str oai:run.unl.pt:10362/55173
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Loom: Unifying Client-Side Web Technologies in a Single Programming LanguageWeb Programming LanguagesReactive ProgrammingDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaModern client-centred web applications typically depend on a set of complementary languages to control different layers of abstraction in their interfaces: the behaviour, structure, and presentation layers (in order, traditionally: JavaScript, HTML, and CSS). Applications with dynamic interfaces whose structure and presentation depend on the data and state of the application require tight links between such layers; however, communicating between them is often non-trivial or simply cumbersome, mainly because they are effectively distinct languages—each with a specific way of being interacted with. Numerous technologies have been introduced in an attempt to simplify the interaction between the multiple layers; their main focus so far, however, regards the communication between structure and behaviour—leaving room for improvement in the field of presentation. This dissertation presents Loom: a novel reactive programming language that unifies the enunciated abstraction layers of a client-side web application. Loom allows the specification of an interface’s structure and presentation in a declarative, data-dependent, and reactive manner by means of signals—values that change over time—inspired by the field of functional reactive programming: reactive meaning that when the structure and presentation of an interface depend on application-data, changes to said data cause an automatic update of the application’s interface. We provide an implementation of the language’s compiler that allows the creation of interfaces with performance comparable to that of most existent frameworks.Seco, JoãoRUNMartins, Nuno Castro2018-12-20T15:50:45Z2017-0720172017-07-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/55173enginfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-22T17:36:10Zoai:run.unl.pt:10362/55173Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T17:07:10.064647Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Loom: Unifying Client-Side Web Technologies in a Single Programming Language
title Loom: Unifying Client-Side Web Technologies in a Single Programming Language
spellingShingle Loom: Unifying Client-Side Web Technologies in a Single Programming Language
Martins, Nuno Castro
Web Programming Languages
Reactive Programming
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Loom: Unifying Client-Side Web Technologies in a Single Programming Language
title_full Loom: Unifying Client-Side Web Technologies in a Single Programming Language
title_fullStr Loom: Unifying Client-Side Web Technologies in a Single Programming Language
title_full_unstemmed Loom: Unifying Client-Side Web Technologies in a Single Programming Language
title_sort Loom: Unifying Client-Side Web Technologies in a Single Programming Language
author Martins, Nuno Castro
author_facet Martins, Nuno Castro
author_role author
dc.contributor.none.fl_str_mv Seco, João
RUN
dc.contributor.author.fl_str_mv Martins, Nuno Castro
dc.subject.por.fl_str_mv Web Programming Languages
Reactive Programming
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Web Programming Languages
Reactive Programming
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Modern client-centred web applications typically depend on a set of complementary languages to control different layers of abstraction in their interfaces: the behaviour, structure, and presentation layers (in order, traditionally: JavaScript, HTML, and CSS). Applications with dynamic interfaces whose structure and presentation depend on the data and state of the application require tight links between such layers; however, communicating between them is often non-trivial or simply cumbersome, mainly because they are effectively distinct languages—each with a specific way of being interacted with. Numerous technologies have been introduced in an attempt to simplify the interaction between the multiple layers; their main focus so far, however, regards the communication between structure and behaviour—leaving room for improvement in the field of presentation. This dissertation presents Loom: a novel reactive programming language that unifies the enunciated abstraction layers of a client-side web application. Loom allows the specification of an interface’s structure and presentation in a declarative, data-dependent, and reactive manner by means of signals—values that change over time—inspired by the field of functional reactive programming: reactive meaning that when the structure and presentation of an interface depend on application-data, changes to said data cause an automatic update of the application’s interface. We provide an implementation of the language’s compiler that allows the creation of interfaces with performance comparable to that of most existent frameworks.
publishDate 2017
dc.date.none.fl_str_mv 2017-07
2017
2017-07-01T00:00:00Z
2018-12-20T15:50:45Z
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/10362/55173
url http://hdl.handle.net/10362/55173
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órios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833596448441106432