Logo do repositório
 
A carregar...
Miniatura
Publicação

From an Ontology for Programming to a Type-Safe Template Language

Utilize este identificador para referenciar este registo.
Nome:Descrição:Tamanho:Formato: 
Parreira_2022.pdf5.47 MBAdobe PDF Ver/Abrir

Resumo(s)

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.
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.

Descrição

Palavras-chave

Metaprogramming Ontology Low-Code Template Language Type-Safety Staged Computation

Contexto Educativo

Citação

Projetos de investigação

Unidades organizacionais

Fascículo

Editora

Licença CC