From an Ontology for Programming to a Type-Safe Template Language - Parreira, Joana Baptista (2022)
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.