YREA SLS¶
Kyler Olsen
October 2025
Snow College
SE 3250 Survey of Languages Final Project
Language Code Name: YREA SLS (Stack Language Specification)
Language Specifications: sls.purplecello.org
Language Specification Repository (Private): git.purplecello.org
Language Implementation Repository (Private): git.purplecello.org
Language Implementation Repository (Mirror on GitHub) (Private): github.com
Assignment Page (Private): snow.instructure.com
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.