Add missing features and assignment details documentation
This commit is contained in:
parent
15346a75bc
commit
0b54a5e98a
|
|
@ -29,4 +29,8 @@ Next: Overview
|
||||||
- F. [[Memory Management]] (Future)
|
- F. [[Memory Management]] (Future)
|
||||||
- G. [[Examples and Tutorials]]
|
- G. [[Examples and Tutorials]]
|
||||||
|
|
||||||
|
**Addendum**:
|
||||||
|
- [[Missing Features]]
|
||||||
|
- [[SE 3250 Assignment Details]]
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
Title: Missing Features
|
||||||
|
Prev:
|
||||||
|
Next:
|
||||||
|
---
|
||||||
|
|
||||||
|
## Missing Features
|
||||||
|
|
||||||
|
The following sections and language features are known to be missing from the
|
||||||
|
current version of the language specification, but are intended to be added and
|
||||||
|
implemented. These are not future plans, but rather features that have been
|
||||||
|
identified as necessary for a complete language specification.
|
||||||
|
|
||||||
|
- Complete Type Reference
|
||||||
|
- The `sqrt` operator
|
||||||
|
- Constants
|
||||||
|
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,103 @@
|
||||||
|
---
|
||||||
|
Title: Assignment Details
|
||||||
|
Prev:
|
||||||
|
Next:
|
||||||
|
---
|
||||||
|
|
||||||
|
# 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](https://sls.purplecello.org)
|
||||||
|
Language Specification Repository: [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): [github.com](https://github.com/SnowSE/final-project-KylerOlsen)
|
||||||
|
Assignment Page: [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.
|
||||||
Loading…
Reference in New Issue