diff --git a/REPORT.md b/REPORT.md index 4b9e416..b444d66 100644 --- a/REPORT.md +++ b/REPORT.md @@ -47,11 +47,18 @@ 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. +Manual memory management was a slight difficulty for me. The only way I could +find what was causing a segmentation fault was to run the binary with `gdb`. +Still my experience programming C in a Linux environment was fun and rewarding. +I became accustomed to utilizing the man pages (or manual pages) for +documentation on the C standard library. + 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. +Pico with a RP2040 microcontroller. You can interact with the REPL over a serial +connection. **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 diff --git a/slides/SLIDES.html b/slides/SLIDES.html new file mode 100644 index 0000000..cff9da0 --- /dev/null +++ b/slides/SLIDES.html @@ -0,0 +1,615 @@ +YREA SLS
+

YREA SLS

+

Kyler Olsen

+

Fall 2025
+Snow College
+SE 3250
+sls.purplecello.org

+
+
+

RPL

+

HP Reverse Polish Lisp

+
    +
  • Based on LISP and Forth
  • +
  • Stack-oriented language with post-fix notation
  • +
  • Created by HP for their calculators
  • +
+
+
+

Project

+

YREA SLS

+
    +
  • Stack-oriented language with post-fix notation
  • +
  • C inspired Syntax
  • +
  • Can run on an embedded system
  • +
+
+
+

Language

+

The C Language

+
    +
  • Systems Programming
  • +
  • Used for Python and PHP interpreters
  • +
+

Excellent fit for my project!

+
+
+

Language

+

The C Language

+
    +
  • Manual memory management is difficult to get right.
  • +
  • C development in a Linux environment was fun and rewarding.
  • +
  • In the end I had a running program on a RP2040.
  • +
+
+
+

Port 1

+

Rust

+
    +
  • Systems Programming (Again)
  • +
  • Included build system
  • +
  • Memory safe with the barrow checker
  • +
+
+
+

Port 1

+

Rust

+
    +
  • Unlike previous projects in Rust, I didn't fight the barrow checker this time.
  • +
  • I added exporting and importing the interpreter state in the REPL.
  • +
+
+
+

Port 2

+

Python

+
    +
  • My favorite programming language (maybe C is a close second now)
  • +
  • This port was very easy for me to do.
  • +
  • I did add a calculator app as an alternative to the REPL or file execution.
  • +
+
+
+

The End

+

You may clap now

+
+

![bg right:35% 80%](./hp_calc_1.png)

\ No newline at end of file diff --git a/slides/SLIDES.md b/slides/SLIDES.md new file mode 100644 index 0000000..141a399 --- /dev/null +++ b/slides/SLIDES.md @@ -0,0 +1,111 @@ +--- +theme: default +paginate: false +backgroundColor: #fff +backgroundImage: url('./background.svg') +style: | + section.lead { + padding-bottom: 100px; + } + section { + padding-bottom: 225px; + } + section.lead > h1 > strong { + color: #375899; + font-size: 64px; + } + section.lead > p:nth-child(3) { + font-size: 16px; + } + h1 { + color: #001847; + padding-bottom: 0; + margin-bottom: 0; + } + small { + font-size: 16px; + padding-left: 16px; + } +--- + +![bg left:50% 90%](./sls.svg) + +# **YREA SLS** + +Kyler Olsen + +Fall 2025 +Snow College +SE 3250 +[sls.purplecello.org](https://sls.purplecello.org) + +--- + +# RPL +*HP Reverse Polish Lisp* + +- Based on LISP and Forth +- Stack-oriented language with post-fix notation +- Created by HP for their calculators + + +![bg right:35% 80%](./hp_calc_2.png) + +--- + +# Project +*YREA SLS* + +- Stack-oriented language with post-fix notation +- C inspired Syntax +- Can run on an embedded system + +--- + +# Language +*The C Language* + +- Systems Programming +- Used for Python and PHP interpreters + +Excellent fit for my project! + +--- + +# Language +*The C Language* + +- Manual memory management is difficult to get right. +- C development in a Linux environment was fun and rewarding. +- In the end I had a running program on a RP2040. + +--- + +# Port 1 +*Rust* + +- Systems Programming (Again) +- Included build system +- Memory safe with the barrow checker + +--- + +# Port 1 +*Rust* + +- Unlike previous projects in Rust, I didn't fight the barrow checker this time. +- I added exporting and importing the interpreter state in the REPL. + +--- + +# Port 2 +*Python* + +- My favorite programming language (maybe C is a close second now) +- This port was very easy for me to do. +- I did add a calculator app as an alternative to the REPL or file execution. + +--- + +# The End +You may clap now diff --git a/slides/YREA SLS.pdf b/slides/YREA SLS.pdf new file mode 100644 index 0000000..6caac8e Binary files /dev/null and b/slides/YREA SLS.pdf differ diff --git a/slides/background.svg b/slides/background.svg new file mode 100644 index 0000000..5a588ac --- /dev/null +++ b/slides/background.svg @@ -0,0 +1,181 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/slides/hp_calc_1.png b/slides/hp_calc_1.png new file mode 100644 index 0000000..66ec643 Binary files /dev/null and b/slides/hp_calc_1.png differ diff --git a/slides/hp_calc_2.png b/slides/hp_calc_2.png new file mode 100644 index 0000000..4c5ef70 Binary files /dev/null and b/slides/hp_calc_2.png differ diff --git a/slides/sls.svg b/slides/sls.svg new file mode 100644 index 0000000..9d977ae --- /dev/null +++ b/slides/sls.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + +