Adding Types and Theory Kinds to Drasil
Autor: | Balaci, Jason |
---|---|
Jazyk: | angličtina |
Rok vydání: | 2022 |
Druh dokumentu: | Diplomová práce |
Popis: | Drasil is a software suite for generating software, with a particular focus on generating Scientific Computing Software (SCS) following the requirements described in an abstract Software Requirements Specification (SRS) template. The template breaks up scientific knowledge into various categories, and the abstracted variant of the template makes it digestible for Drasil. A series of DSLs are used to "fill in" the template, from which Drasil is able to interpret an instance of, and configure a generation procedure to generate software. The template's theory encodings contain a shallow depth of knowledge, limiting how many ways we can interpret them. To begin strengthening this depth, we create a structure that concretely outlines Drasil's currently encoded theory kinds, allowing us to create more domain-specific interpretation opportunities for them. Similarly, each theory kind contains a particular subset of mathematical language that is relevant to them, and we act on this information to restrict usable expression terms to their related contexts. To further enrich the admissibility of expressions, we also make one of the most critical subsets, that for concrete theory transcription, type-safe by building a bidirectional type-checker and system of type rules. The type-checker shows considerable success highlighting previously undiscovered instances of ill-typed expressions in Drasil's case studies. Finally, as Drasil relies on a plethora of different types of knowledge, it needs a place to store them. Thus, we create a system to store any instance of any type of knowledge in Drasil's memory bank of knowledge by creating a universal type carrier. Thesis Master of Computer Science (MCS) Drasil is a framework for generating software artifacts, such as code and documentation, that has great potential for improving software quality. Drasil focuses on generating Scientific Computing Software (SCS) from a Software Requirements Specification (SRS) template where it has been shown to improve software traceability, verifiability, and reproducibility, and knowledge reusability. However, Drasil faces issues with using inputted scientific theories for code generation, handling invalid mathematical expressions, and carrying all the different types of data we want to input into it. This work focuses on 4 areas in Drasil to help it realize its full potential: (1) making theories more usable for code generation by defining their structure, (2) splitting up the expression language so that we can restrict terms to specific contexts (such as code, computation, and general discussion), (3) create a system of type rules and automatically check certain expressions against them, and (4) unlock Drasil's database to store all kinds of data. |
Databáze: | Networked Digital Library of Theses & Dissertations |
Externí odkaz: |