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

The Concept of Ownership in Rust and Swift

dc.contributor.advisorSekerinski, Emil
dc.contributor.advisorFranek, Frantisek
dc.contributor.authorAlhazmi, Elaf
dc.contributor.departmentComputing and Softwareen_US
dc.date.accessioned2018-12-11T13:30:59Z
dc.date.available2018-12-11T13:30:59Z
dc.date.issued2018
dc.description.abstractThere is a great number of programming languages and they follow various paradigms such as imperative, functional, or logic programming among the major ones and various methodologies such as structured approach or object-oriented or object-centered approach. A memory management design of a programming language is one of the most important features to help facilitate reliable design. There are two wide-spread approaches in memory management: manual memory management and automatic memory management, known as Garbage Collection (GC for short). Recently, a third approach to memory management called Ownership has emerged. Ownership management is adapted in two recent languages Rust and Swift. Rust follows a deterministic syntax-driven memory management depending on static ownership rules implemented and enforced by the rustc compiler. Though the Rust approach eliminates to a high degree memory problems such as memory leak, dangling pointer and use after free, it has a steep learning costs. Swift also implements ownership concept in Automatic Reference Counting ARC. Though the ownership concept is adapted in Swift, it is not a memory safe language because of possibility of strong reference cycles. In this research, a demonstration of the ownership in Rust and Swift will be discussed and illustrated, followed by analysis of the consequences of memory issues related to each design. The comparison of Rust and Swift is based on ownership, memory safety, usability and programming paradigm in each language. As an illustration, an experiment to compare the elapsed times of two different structures and their algorithms, Binary Tree and Array are presented. The results illustrate and compare the performances of the same programs written in Rust, Swift, C, C++, and Java.en_US
dc.description.degreeMaster of Science (MSc)en_US
dc.description.degreetypeThesisen_US
dc.identifier.urihttp://hdl.handle.net/11375/23625
dc.language.isoenen_US
dc.subjectMemory Managementen_US
dc.subjectOwnershipen_US
dc.subjectProgramming Languagesen_US
dc.subjectRusten_US
dc.subjectSwiften_US
dc.subjectCen_US
dc.subjectC++en_US
dc.subjectJavaen_US
dc.subjectMemory Safetyen_US
dc.subjectCognitive Programming Skillsen_US
dc.titleThe Concept of Ownership in Rust and Swiften_US
dc.typeThesisen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Alhazmi_Elaf_A_finalsubmission2018September_M.SC.pdf
Size:
741.71 KB
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: