More on report
This commit is contained in:
parent
b98012488a
commit
60c6e3900f
68
REPORT.md
68
REPORT.md
|
|
@ -1,15 +1,23 @@
|
||||||
# YREA SLS
|
# YREA SLS
|
||||||
*Kyler Olsen*
|
*Kyler Olsen*
|
||||||
*October 2025*
|
*October-December 2025*
|
||||||
*Snow College*
|
*Snow College*
|
||||||
*SE 3250 Survey of Languages Final Project*
|
*SE 3250 Survey of Languages Final Project*
|
||||||
|
|
||||||
Language Code Name: YREA **SLS** (*Stack Language Specification*)
|
Language Code Name:
|
||||||
Language Webpage: [sls.purplecello.org](https://sls.purplecello.org)
|
YREA **SLS** (*Stack Language Specification*)
|
||||||
Language Specification Repository (Private): [git.purplecello.org](https://git.purplecello.org/KylerOlsen/LangsFinalPlaning)
|
Language Webpage:
|
||||||
Language Implementation Repository: [git.purplecello.org](https://git.purplecello.org/KylerOlsen/YREA-SLS)
|
[sls.purplecello.org](https://sls.purplecello.org)
|
||||||
Language Implementation Repository (Mirror on GitHub) (Private): [github.com](https://github.com/SnowSE/final-project-KylerOlsen)
|
Language Specification Repository (Private):
|
||||||
Assignment Page (Private): [snow.instructure.com](https://snow.instructure.com/courses/1154808/assignments/16233203)
|
[git.purplecello.org](https://git.purplecello.org/KylerOlsen/LangsFinalPlaning)
|
||||||
|
Language Implementation Repository:
|
||||||
|
[git.purplecello.org](https://git.purplecello.org/KylerOlsen/YREA-SLS)
|
||||||
|
Language Implementation Repository (Mirror on GitHub) (Private):
|
||||||
|
[github.com](https://github.com/SnowSE/final-project-KylerOlsen)
|
||||||
|
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
|
In 1986, Hewlett-Packard released their HP-18C and HP-24C calculators, which
|
||||||
introduced their new RPL operating system and programming language. The language
|
introduced their new RPL operating system and programming language. The language
|
||||||
|
|
@ -25,3 +33,49 @@ but never made it far. This semester I was again inspired by looking at the
|
||||||
various programming languages to again make my own, this time throwing in C to
|
various programming languages to again make my own, this time throwing in C to
|
||||||
the mix. What resulted is my *Stack Language Specification*. Having difficulty
|
the mix. What resulted is my *Stack Language Specification*. Having difficulty
|
||||||
coming up with a name for the language, I went with SLS.
|
coming up with a name for the language, I went with SLS.
|
||||||
|
|
||||||
|
SLS is a stack-oriented language with C inspired syntax. While these have not
|
||||||
|
been implemented for the assignment, I do plan on adding a Rust inspired type
|
||||||
|
system, as well as Uiua and LISP inspired array operations. Memory management
|
||||||
|
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.
|
||||||
|
|
||||||
|
**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
|
||||||
|
difficult to link and compile. Rust's build system, cargo made that issue
|
||||||
|
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.
|
||||||
|
|
||||||
|
**Python** was my final port. With it being the language I am most comfortable
|
||||||
|
and experienced with, this was an easy port to make. While it is very easy, even
|
||||||
|
for someone without my experience, and it has many of the same modern
|
||||||
|
conveniences with package management as Rust. Where it is not a systems
|
||||||
|
programming language, I would not be able to run this project on an embedded
|
||||||
|
system very cleanly or easily, making Python not as good of a choice with my
|
||||||
|
goal of portability to embedded systems.
|
||||||
|
|
||||||
|
## 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
|
||||||
|
https://en.wikipedia.org/wiki/HP-28_series
|
||||||
|
https://en.wikipedia.org/wiki/RPL_(programming_language)
|
||||||
|
https://gitlab.com/da_doomer/markdown-slides
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue