Loom: Unifying Client-Side Web Technologies in a Single Programming Language
Autor(a) principal: | |
---|---|
Data de Publicação: | 2017 |
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/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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository_id_str |
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ó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:RCAAP2024-03-11T04:26:57Zoai:run.unl.pt:10362/55173Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:32:50.568369Repositó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 |
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ó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_ |
1799137950204690432 |