---
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_1.png) -->
![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
<small>You may clap now</small>
