Worked on report
This commit is contained in:
parent
c74ba18067
commit
b98012488a
94
README.md
94
README.md
|
|
@ -4,94 +4,6 @@
|
||||||
*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*)
|
SLS is a statically-typed, stack-based language with pure postfix notation
|
||||||
Language Specifications: [sls.purplecello.org](https://sls.purplecello.org)
|
combining the execution model of HP's RPL, the type system of C and Rust, and
|
||||||
Language Specification Repository (Private): [git.purplecello.org](https://git.purplecello.org/KylerOlsen/LangsFinalPlaning)
|
modern array operations from Uiua.
|
||||||
Language Implementation Repository (Private): [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)
|
|
||||||
|
|
||||||
## Assignment Description
|
|
||||||
|
|
||||||
**Overview**
|
|
||||||
|
|
||||||
In your final project for this course, you will do the following:
|
|
||||||
|
|
||||||
- Decide on a modest personal project to complete in a new-to-you
|
|
||||||
programming language (during class time, we will randomize the list of
|
|
||||||
people in the class and allow languages to be selected uniquely on a
|
|
||||||
first-come, first-served basis; be prepared to pick the language you want
|
|
||||||
and to advocate for the languages that you don't want).
|
|
||||||
- Without using AI generated or suggested code, complete your project in
|
|
||||||
your assigned language including automated testing. Find a way to make your
|
|
||||||
useful implementation concise and elegant enough that you would be able to
|
|
||||||
recreate it reasonably quickly without AI assistance (be prepared to
|
|
||||||
demonstrate this ability during a one-on-one interview to ensure credit).
|
|
||||||
- Using AI help as desired, create a faithful port of your implementation
|
|
||||||
(including tests) to:
|
|
||||||
- Rust
|
|
||||||
- Python
|
|
||||||
- Java (optional, but it might be interesting and userful for your
|
|
||||||
resume)
|
|
||||||
- C# (optional, but it might be interesting)
|
|
||||||
- typescript (optional, but it might be interesting)
|
|
||||||
- For each ported implementation, add one addition feature (not present in
|
|
||||||
the original or other ports).
|
|
||||||
- Prepare a report that describes:
|
|
||||||
- the problem that your project solves and why you are interested in it
|
|
||||||
- a brief description of how the language that you chose and the port
|
|
||||||
languages were or were not each a good fit for the project
|
|
||||||
- three examples of ideas you learned in the course that you leveraged
|
|
||||||
to the implementation in your assigned language elegant, efficient, and
|
|
||||||
concise/maintainable (at least one idea should specifically come from
|
|
||||||
functional programming) -- make sure to be specific and teach the reader
|
|
||||||
something valuable for each of these
|
|
||||||
- at least one struggle that you faced (or that you imagine that others
|
|
||||||
would likely face) for each language implementation, and what you
|
|
||||||
learned from working with the port languages during the porting process.
|
|
||||||
- Prepare slides that help you teach the key ideas from your report to the
|
|
||||||
class.
|
|
||||||
- In a 5-8 minute presentation during the final exam slot, use your slides
|
|
||||||
to teach the class and demonstrate your running project including the
|
|
||||||
addition port features.
|
|
||||||
|
|
||||||
Project Scope
|
|
||||||
|
|
||||||
- Please do something that will be fun and interesting for you!
|
|
||||||
- Make sure that the project actually solves a problem that you care about.
|
|
||||||
(Entertainment counts, but if that is the problem you care about, then make
|
|
||||||
sure that you can make something that actually is entertaining!)
|
|
||||||
- I'm expecting you to dedicate about 15-30 hours to the entire project
|
|
||||||
(including all three implementations and the report/presentation
|
|
||||||
preparation). I'm expecting that your initial implmentation should feel
|
|
||||||
like about twice the scope of implementing the game of life in PostScript
|
|
||||||
or K.
|
|
||||||
|
|
||||||
**Languages**
|
|
||||||
|
|
||||||
For what it is worth, here are a few resources that rank or compare different
|
|
||||||
programming languages in terms of popularity or jobs (but they don't equally
|
|
||||||
capture how programming in the languages will give you tools for thinking
|
|
||||||
about and solving problems):
|
|
||||||
|
|
||||||
- https://spectrum.ieee.org/top-programming-languages-2025
|
|
||||||
- https://www.tiobe.com/tiobe-index/
|
|
||||||
- https://survey.stackoverflow.co/2025/technology#admired-and-desired
|
|
||||||
- https://survey.stackoverflow.co/2025/technology#most-popular-technologies-language-prof
|
|
||||||
- https://tjpalmer.github.io/languish/
|
|
||||||
- https://www.geeksforgeeks.org/blogs/top-programming-languages/
|
|
||||||
- https://github.com/breck7/pldb
|
|
||||||
|
|
||||||
Here is the list of programming languages that you will be able to choose from
|
|
||||||
for your initial implementation (each language will be chosen by at most one
|
|
||||||
student; we will choose during class time on Oct 27):
|
|
||||||
|
|
||||||
- **C** Kyler
|
|
||||||
|
|
||||||
**Submission**
|
|
||||||
|
|
||||||
Submit all material (including report and slides) via github classrooms repo.
|
|
||||||
Also, submit your github repo link and the path to the report and slides file
|
|
||||||
in the canvas text box for this assignment. The grace period for submission
|
|
||||||
ends at 3pm on Monday, Dec 8. Presentations will be 3:30pm - 5:30pm. For full
|
|
||||||
credit, you must present and watch the presentations of your classmates.
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
# YREA SLS
|
||||||
|
*Kyler Olsen*
|
||||||
|
*October 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)
|
||||||
|
|
||||||
|
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
|
||||||
|
Lisp, was used by HP in several of their calculators through the 1990s and
|
||||||
|
2000s, most famously on the HP-48 series of calculators. HP calculators have
|
||||||
|
been a favorite among engineers because of their post-fix notation.
|
||||||
|
|
||||||
|
When in my journeyings on the internet a few years ago, I discovered Uiua, a
|
||||||
|
pre-fix, stack-based, array-oriented language, which inspired me to create my
|
||||||
|
own, except more largely inspired by HP's RPL. I started planning out an idea,
|
||||||
|
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.
|
||||||
Loading…
Reference in New Issue