DEV Community

TheCoolBlackCat
TheCoolBlackCat

Posted on

2

SimpleASM

SimpleASM was created at the end of my first year at Lancaster University. We'd created applications using MIPS assembly, and as a fan of seeing what can be done in browser, I wrote my own "assembly" language that could be interpreted in client-side JavaScript.

I used the GitHub Pro to keep things private at first, and I was using WebStorm, one of the JetBrains IDEs that comes in the Student Developer Pack.

My Final Project

You can see the running website here

GitHub logo TheCoolBlackCat / SimpleASM

Simple assembly language interpreter to teach basic programming.

SimpleASM

A simple assembly language (and interpreter), designed to help teach basic programming skills.

It's not at all perfect, and needs testers, so if you encounter any issues, please submit them here

Run it here




How I built it

The stack involved was just client-side JavaScript, initially served from an NGINX test server, but then moved over to a GitHub pages site (it was static, after all). The big issue I encountered was debugging the code when loops were introduced. Obviously, poor interpretation of a loop could result in the browser freezing, and as I wasn't looking to solve the halting problem, this resulted in a lot of restarted browser sessions!

Additional Thoughts / Feelings / Stories

It's been great to revisit this project for the git remote graduation this year. I have a lot of fond memories made when I created it, and even though its not my best work, and I could add greatly to it, including a refactor and much better text processing (this was the first time I'd written any sort of interpreter), I'm pleased with what I came up with.

Billboard image

Monitor more than uptime.

With Checkly, you can use Playwright tests and Javascript to monitor end-to-end scenarios in your NextJS, Astro, Remix, or other application.

Get started now!

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay