Computer Science ETDs
Publication Date
12-1-2015
Abstract
Stella is a domain-specific language that (1) has single thread performance competitive with low-level languages, (2) supports object-oriented programming (OOP) to properly structure the code, and (3) is very easy to use. Instead of prototyping in a high-level language and then rewriting in a lower-level language, Stella is embedded in Python, is transparently usable, retains some OOP features, compiles to machine code, and executes at speed similar to C. Stella's source code is compatible with Python, and allows easy integration of C libraries. Its features are focused on the needs of scientific simulations. Other projects to speed up Python focus on easy integration, and smaller critical sections. In contrast, Stella supports translating larger programs in their entirety, and does not allow interaction with the Python run-time, to ensure predictable performance. My experience developing Stella shows that by carefully selecting language features, high run-time performance can be achieved in a high-level language that has in practice very few restrictions.
Language
English
Keywords
python, domain specific language, simulation, compiler
Document Type
Dissertation
Degree Name
Computer Science
Level of Degree
Doctoral
Department Name
Department of Computer Science
First Committee Member (Chair)
Hermenegildo, Manuel
Second Committee Member
Tapia, Lydia
Third Committee Member
Lakin, Matthew
Project Sponsors
This material is based upon work supported by the National Science Foundation under grants CCF-0829896, CDI-1028238, and CCF-1422840.
Recommended Citation
Mohr, David. "Stella: A Python-based Domain-Specific Language for Simulations." (2015). https://digitalrepository.unm.edu/cs_etds/12