Memory management techniques for dynamic languages
| dc.contributor.advisor | Bremner, David | |
| dc.contributor.author | Nanjekye, Joannah | |
| dc.date.accessioned | 2024-10-30T13:16:59Z | |
| dc.date.available | 2024-10-30T13:16:59Z | |
| dc.date.issued | 2024-08 | |
| dc.description.abstract | Garbage collection as a field requires well-documented and reusable techniques as well as considerations for the design abstractions of programming languages. This dissertation focuses on dynamically-typed languages, whose design warrants specific studies and optimizations. The first theme of the dissertation is the use of the Eclipse OMR framework for the correct, portable, and language-independent implementation of high performing garbage collectors for the RPython Meta-tracing-JIT-based dynamic languages. We extend the use of the framework-based garbage collectors to study the garbage collection cost for the same dynamic languages, highlighting the trade-off in performance between JIT tracing and garbage collection and thereby proposing a novel optimal JIT trace sizing solution. We further address two problems related to the collection resizing and boxing overhead for dynamic languages. We propose a calling context aware collection presizing technique for the former and present type-based stores, a novel memory layout to optimize type polymorphism in collection data structures for the latter. Dynamic languages often also provide foreign function interfaces; the Python language has a C API but challenges of pointer stability, lifetime complexity and memory model compatibility continue to receive little attention in the research community. We propose a garbage collection friendly Python FFI, we call CyStck, that combines a stack and light-weight handles along with migration tooling for extensions. | |
| dc.description.copyright | © Joannah Nanjekye, 2024 | |
| dc.format.extent | xxi, 226 | |
| dc.format.medium | electronic | |
| dc.identifier.uri | https://unbscholar.lib.unb.ca/handle/1882/38179 | |
| dc.language.iso | en | |
| dc.publisher | University of New Brunswick | |
| dc.relation | Atlantic Innovation Fund (AIF) | |
| dc.relation | CAS–Atlantic | |
| dc.relation | Atlantic Canada Opportunities Agency (ACOA) | |
| dc.relation | ||
| dc.relation | Rust Foundation | |
| dc.relation | NBIF STEM Social and Innovation | |
| dc.relation | University of New Brunswick | |
| dc.rights | http://purl.org/coar/access_right/c_abf2 | |
| dc.subject.discipline | Computer Science | |
| dc.title | Memory management techniques for dynamic languages | |
| dc.type | doctoral thesis | |
| oaire.license.condition | other | |
| thesis.degree.discipline | Computer Science | |
| thesis.degree.grantor | University of New Brunswick | |
| thesis.degree.level | doctorate | |
| thesis.degree.name | Ph.D. |
