diff --git a/REPORT.md b/REPORT.md index 096738f..4b9e416 100644 --- a/REPORT.md +++ b/REPORT.md @@ -2,7 +2,9 @@ *Kyler Olsen* *October-December 2025* *Snow College* -*SE 3250 Survey of Languages Final Project* +*SE 3250* +*Survey of Languages* +*Final Project* Language Code Name: YREA **SLS** (*Stack Language Specification*) @@ -17,8 +19,6 @@ Language Implementation Repository (Mirror on GitHub) (Private): Assignment Page (Private): [snow.instructure.com](https://snow.instructure.com/courses/1154808/assignments/16233203) -## Problem and Interest - In 1986, Hewlett-Packard released their HP-18C and HP-24C calculators, which introduced their new RPL operating system and programming language. The language was based on LISP and Forth (a stack-oriented language). RPL, aka Reverse Polish @@ -41,14 +41,18 @@ follows the pattern in RPL, everything is on the stack. One of my goals with this language is also to have it able to run on an embedded system, such as my own custom calculator. -## Languages - **C** was my selected language. It was an excellent choice for my project as it is well suited for systems programming. It is a low level, yet powerful language. While string utilities are not as robust as most modern languages, I still feel like it was an excellent choice. Other major interpreted languages also use C to implement their interpreters, such as Lua and Python. +I did use structs and unions heavily which we learned about when we looked at C. +With them I was able to use polymorphism in defining tokens and data types. + +I am able to successfully compile and run this implementation on a Raspberry Pi +Pico with a RP2040 microcontroller. + **Rust** was the first language I tackled porting my project to. I am not as familiar with Rust as I am Python, so thats why I wanted to get going on this port first. I avoided using external libraries with C as they can be famously @@ -57,6 +61,10 @@ basically non-existent. It is also memory safe with its barrow checker. With it being another systems programming language, and these modern features, I feel like it is just as good of a choice of a language for my project. +In the past I have often fought with the barrow checker but with this project, +either my experience, memory mindfulness in my original port, or the extensive +AI help, I had no fights with the barrow checker this time. + The special feature for the Rust port is being able to export and import the interpreter state in the repl using `#save ` and `#load `. @@ -70,14 +78,6 @@ goal of portability to embedded systems. The special feature for the Python port is the SLS Calculator App. -## Lessons - -## Struggles - -In the past I have often fought with the barrow checker but with this project, -either my experience, memory mindfulness in my original port, or the extensive -AI help, I had no fights with the barrow checker this time. - --- https://en.wikipedia.org/wiki/HP_48_series diff --git a/SLS_Python/tests/test_import.py b/SLS_Python/tests/test_import.py deleted file mode 100644 index add2468..0000000 --- a/SLS_Python/tests/test_import.py +++ /dev/null @@ -1,5 +0,0 @@ -def test_import_package(): - import sls - - assert hasattr(sls, "__version__") - assert isinstance(sls.__version__, str)