More on report
This commit is contained in:
parent
b98012488a
commit
60c6e3900f
68
REPORT.md
68
REPORT.md
|
|
@ -1,15 +1,23 @@
|
|||
# YREA SLS
|
||||
*Kyler Olsen*
|
||||
*October 2025*
|
||||
*October-December 2025*
|
||||
*Snow College*
|
||||
*SE 3250 Survey of Languages Final Project*
|
||||
|
||||
Language Code Name: YREA **SLS** (*Stack Language Specification*)
|
||||
Language Webpage: [sls.purplecello.org](https://sls.purplecello.org)
|
||||
Language Specification Repository (Private): [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)
|
||||
Language Code Name:
|
||||
YREA **SLS** (*Stack Language Specification*)
|
||||
Language Webpage:
|
||||
[sls.purplecello.org](https://sls.purplecello.org)
|
||||
Language Specification Repository (Private):
|
||||
[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
|
||||
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
|
||||
the mix. What resulted is my *Stack Language Specification*. Having difficulty
|
||||
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