Publication Date
Spring 2023
Degree Type
Master's Project
Degree Name
Master of Science (MS)
Department
Computer Science
First Advisor
Thomas Austin
Second Advisor
Chris Pollett
Third Advisor
Rula Khayrallah
Keywords
User Defined Macros, Ruby
Abstract
Ruby does not have a way to create custom syntax outside what the language already offers. Macros allow custom syntax creation. They achieve this by code generation that transforms a small set of instructions into a larger set of instructions. This gives programmers the opportunity to extend the language based on their own custom needs.
Macros are a form of meta-programming that helps programmers in writing clean and concise code. MacRuby is a hygienic macro system. It works by parsing the Abstract Syntax Tree(AST) and replacing macro references with expanded Ruby code. MacRuby offers an intuitive way to declare macro and expand the source code based on the expansion rules.
We validated MacRuby by adding some features to the Ruby language that didn’t exist before or were removed as the user base for the feature was small. We fulfilled this by creating a library using the simple and easy syntax of MacRuby, thus demonstrating the library’s utility.
Recommended Citation
Singh, Arushi, "MacRuby: User Defined Macro Support for Ruby" (2023). Master's Projects. 1247.
DOI: https://doi.org/10.31979/etd.zv6q-ghdc
https://scholarworks.sjsu.edu/etd_projects/1247