From an Ontology for Programming to a Type-Safe Template Language
Autor(a) principal: | |
---|---|
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/10362/145185 |
Resumo: | The demand to develop more applications in a faster way has been increasing over the years. Even non-experienced developers are jumping into the market thanks to low-code platforms such as OutSystems. The main goal of the GOLEM project is the development of the next generation of lowcode software development, aiming to automate programming and make the OutSystems platform easier to use. This work is integrated into the GOLEM project and focuses 1) on designing an ontology that will be used to capture concepts from a user dialogue; 2) on formalizing a template language; and 3) producing a reference implementation for OSTRICH. The ontology conceptsmust be representative enough to allow the generation of an application. A domain-specific language (DSL) produced in the scope of the GOLEM project will analyse the captured concepts, generating a set of operations that incrementally build and modify the target application. Because some of those application components are common patterns, they can be preassembled into templates to be later re-used. OSTRICH, a type-safe template language for the OutSystems platform, allows for the definition and instantiation of type-safe templates while ensuring a clear separation between compile-time and runtime computations. We formalize this two-stage language, defining its syntax, type system and operational semantics. We also produce a reference implementation and introduce new features: parametric polymorphism and a simplified form of type dependency. Such features enable instantiating the top ten most-commonly used OutSystems templates, which are more than half of all template instantiations in the platform. These templates ease and fasten the development process, reducing the knowledge required to build OutSystems’ applications. |
id |
RCAP_0c8ee83a6280993155c62c1c89e70cd3 |
---|---|
oai_identifier_str |
oai:run.unl.pt:10362/145185 |
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 |
From an Ontology for Programming to a Type-Safe Template LanguageMetaprogrammingOntologyLow-CodeTemplate LanguageType-SafetyStaged ComputationDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaThe demand to develop more applications in a faster way has been increasing over the years. Even non-experienced developers are jumping into the market thanks to low-code platforms such as OutSystems. The main goal of the GOLEM project is the development of the next generation of lowcode software development, aiming to automate programming and make the OutSystems platform easier to use. This work is integrated into the GOLEM project and focuses 1) on designing an ontology that will be used to capture concepts from a user dialogue; 2) on formalizing a template language; and 3) producing a reference implementation for OSTRICH. The ontology conceptsmust be representative enough to allow the generation of an application. A domain-specific language (DSL) produced in the scope of the GOLEM project will analyse the captured concepts, generating a set of operations that incrementally build and modify the target application. Because some of those application components are common patterns, they can be preassembled into templates to be later re-used. OSTRICH, a type-safe template language for the OutSystems platform, allows for the definition and instantiation of type-safe templates while ensuring a clear separation between compile-time and runtime computations. We formalize this two-stage language, defining its syntax, type system and operational semantics. We also produce a reference implementation and introduce new features: parametric polymorphism and a simplified form of type dependency. Such features enable instantiating the top ten most-commonly used OutSystems templates, which are more than half of all template instantiations in the platform. These templates ease and fasten the development process, reducing the knowledge required to build OutSystems’ applications.A necessidade de desenvolver aplicações a um ritmo cada vez mais acelerado tem aumentado ao longo dos anos. Mesmo programadores sem experiência têm vindo a integrar o mercado de trabalho nesta área, graças a plataformas low-code como a OutSystems. O projeto GOLEM tem como objetivo o desenvolvimento da próxima geração de lowcode, visando automatizar a programação e facilitar o uso da plataforma OutSystems. O objetivo desta dissertação, parte do projeto GOLEM, é 1) desenvolver uma ontologia para captar conceitos de um diálogo com o utilizador; 2) formalizar uma linguagem de templates; e 3) desenvolver uma implementação referência para o OSTRICH. Os conceitos da ontologia devem ser suficientemente representativos de forma a permitir a criação de uma aplicação. Uma linguagem de domínio específico (DSL) criada no escopo do projeto GOLEM irá analisar os conceitos captados e gera um conjunto de operações que constroem e modificam a aplicação-alvo incrementalmente. Visto alguns desses componentes da aplicação corresponderem a padrões comuns, estes podem ser previamente agregados num template para que possam ser reutilizados posteriormente. OSTRICH, uma linguagem de templates com segurança de tipos da plataforma OutSystems, permite definir e instanciar templates que respeitam as restrições de tipos, garantindo uma separação clara entre computações que ocorram em tempo de compilação e de execução. Nós formalizamos esta linguagem de duas etapas, definindo a sua sintaxe, sistema de tipos, e semântica operacional. Também desenvolvemos uma implementação de referência e introduzimos novas funcionalidades: polimorfismo paramétrico, e uma forma simplificada de dependência entre tipos. Estas funcionalidades permitem instanciar os dez templates OutSystems mais usados, correspondendo a mais do que metade das instanciações de templates na plataforma. Estes templates facilitam e aceleram o processo de desenvolvimento, reduzindo o conhecimento necessário exigido ao programador para a construção de aplicações Outsystems.Seco, JoãoFerreira, CarlaRUNParreira, Joana Baptista2022-11-03T14:35:12Z2022-072022-07-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/145185enginfo: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-11T05:25:19Zoai:run.unl.pt:10362/145185Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:51:56.812188Repositó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 |
From an Ontology for Programming to a Type-Safe Template Language |
title |
From an Ontology for Programming to a Type-Safe Template Language |
spellingShingle |
From an Ontology for Programming to a Type-Safe Template Language Parreira, Joana Baptista Metaprogramming Ontology Low-Code Template Language Type-Safety Staged Computation Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
title_short |
From an Ontology for Programming to a Type-Safe Template Language |
title_full |
From an Ontology for Programming to a Type-Safe Template Language |
title_fullStr |
From an Ontology for Programming to a Type-Safe Template Language |
title_full_unstemmed |
From an Ontology for Programming to a Type-Safe Template Language |
title_sort |
From an Ontology for Programming to a Type-Safe Template Language |
author |
Parreira, Joana Baptista |
author_facet |
Parreira, Joana Baptista |
author_role |
author |
dc.contributor.none.fl_str_mv |
Seco, João Ferreira, Carla RUN |
dc.contributor.author.fl_str_mv |
Parreira, Joana Baptista |
dc.subject.por.fl_str_mv |
Metaprogramming Ontology Low-Code Template Language Type-Safety Staged Computation Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
topic |
Metaprogramming Ontology Low-Code Template Language Type-Safety Staged Computation Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
description |
The demand to develop more applications in a faster way has been increasing over the years. Even non-experienced developers are jumping into the market thanks to low-code platforms such as OutSystems. The main goal of the GOLEM project is the development of the next generation of lowcode software development, aiming to automate programming and make the OutSystems platform easier to use. This work is integrated into the GOLEM project and focuses 1) on designing an ontology that will be used to capture concepts from a user dialogue; 2) on formalizing a template language; and 3) producing a reference implementation for OSTRICH. The ontology conceptsmust be representative enough to allow the generation of an application. A domain-specific language (DSL) produced in the scope of the GOLEM project will analyse the captured concepts, generating a set of operations that incrementally build and modify the target application. Because some of those application components are common patterns, they can be preassembled into templates to be later re-used. OSTRICH, a type-safe template language for the OutSystems platform, allows for the definition and instantiation of type-safe templates while ensuring a clear separation between compile-time and runtime computations. We formalize this two-stage language, defining its syntax, type system and operational semantics. We also produce a reference implementation and introduce new features: parametric polymorphism and a simplified form of type dependency. Such features enable instantiating the top ten most-commonly used OutSystems templates, which are more than half of all template instantiations in the platform. These templates ease and fasten the development process, reducing the knowledge required to build OutSystems’ applications. |
publishDate |
2022 |
dc.date.none.fl_str_mv |
2022-11-03T14:35:12Z 2022-07 2022-07-01T00:00:00Z |
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/145185 |
url |
http://hdl.handle.net/10362/145185 |
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_ |
1799138111705317376 |