Skip navigation
  • Home
  • Browse
    • Communities
      & Collections
    • Browse Items by:
    • Publication Date
    • Author
    • Title
    • Subject
    • Department
  • Sign on to:
    • My MacSphere
    • Receive email
      updates
    • Edit Profile


McMaster University Home Page
  1. MacSphere
  2. Open Access Dissertations and Theses Community
  3. Open Access Dissertations and Theses
Please use this identifier to cite or link to this item: http://hdl.handle.net/11375/25542
Title: A Design Language for Scientific Computing Software in Drasil
Other Titles: Design Language for SCS
Authors: MacLachlan, Brooks
Advisor: Smith, Spencer
Carette, Jacques
Department: Computing and Software
Keywords: Code Generation;Scientific Computing;Software Design
Publication Date: 2020
Abstract: Drasil is a framework for generating high-quality documentation and code for Scientific Computing Software (SCS). Despite the tendency of SCS code to follow an Input-Calculate-Output design pattern, there are many design variabilities in SCS. Drasil should therefore allow its users to specify a design for their generated program. To this end, a language that encodes the design variabilities present in SCS was implemented in Drasil. Drasil's code generator was updated to generate code based on a user's design choices. A Generic Object-Oriented Language, GOOL, from which Python, Java, C#, or C++ code can be generated, was implemented. Drasil's code generator targets GOOL, enabling the choice of programming language to be included in the design language. Other choices included in the language are related to the modularity, the generation of record classes to bundle variables, the inlining of constants, the code types used to represent different mathematical spaces, which external library to use to solve ODEs, the behaviour when a constraint is violated, and the presence of documentation, logging, or a controller. The design language is implemented as a record type in Haskell, and is designed to be understandable, extensible, and usable. A design specification can be easily changed, to generate a different version of the same program, which would often require time-consuming refactoring if the program was written manually. During the regular build process of Drasil, working code is generated in all four target languages for three examples of SCS, each using a different design specification.
URI: http://hdl.handle.net/11375/25542
Appears in Collections:Open Access Dissertations and Theses

Files in This Item:
File Description SizeFormat 
maclachlan_brooks_2020july_masc.pdf
Open Access
1.62 MBAdobe PDFView/Open
Show full item record Statistics


Items in MacSphere are protected by copyright, with all rights reserved, unless otherwise indicated.

Sherman Centre for Digital Scholarship     McMaster University Libraries
©2022 McMaster University, 1280 Main Street West, Hamilton, Ontario L8S 4L8 | 905-525-9140 | Contact Us | Terms of Use & Privacy Policy | Feedback

Report Accessibility Issue