Welcome to the upgraded MacSphere! We're putting the finishing touches on it; if you notice anything amiss, email macsphere@mcmaster.ca

Adding Types and Theory Kinds to Drasil

dc.contributor.advisorCarette, Jacques
dc.contributor.authorBalaci, Jason
dc.contributor.departmentComputing and Softwareen_US
dc.date.accessioned2024-03-07T19:24:19Z
dc.date.available2024-03-07T19:24:19Z
dc.date.issued2022
dc.description.abstractDrasil 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.en_US
dc.description.degreeMaster of Computer Science (MCS)en_US
dc.description.degreetypeThesisen_US
dc.description.layabstractDrasil 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.en_US
dc.identifier.urihttp://hdl.handle.net/11375/29574
dc.language.isoenen_US
dc.titleAdding Types and Theory Kinds to Drasilen_US
dc.typeThesisen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Balaci_Jason_2210_MSc.pdf
Size:
1.38 MB
Format:
Adobe Portable Document Format

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.68 KB
Format:
Item-specific license agreed upon to submission
Description: