Inspiration
The inspiration is that I wanted to do some assembly because I was thinking about optimizing code for hyperbolic partial differential equations at assembly level for my third year project. So I thought I should create a Turing complete language that generates assembly.
What it does
It is a programming language that is Turing Complete with funny and quirky features. It also has a VSCode extension for language support. The extension has text-to-speech capabilities and
How I built it
C++ code to tokenize and parse the .dur file then convert it to assembly. A web assembly layer so people can use the language without installing it manually.
Challenges we ran into
Assembly code and deciding on the grammar of the language. I wanted the language to reflect normal spoken language like English as closely as possible, but it was hard to do because that would make tokenization and parsing hell so I still kept things like braces and semi-colons.
Accomplishments that we're proud of
Its Turing complete and has strict typecasting with a unique number system (the colleges). Furthermore, it has language support with auto-complete suggestions using Levhenstein and color coding.
What I learned
How compilers work. From the tokenization process to building parse trees and walking them. I also learnt how to create a vscode extension for a language using TypeScript.
What's next for The Durham Programming Language
Visualization of the parse tree as the language is doing the parsing. This would be educational for people to understand how their code is being understood by the compiler.
Built With
- assembly
- c++
- cmake
- css
- html
- javascript
- typescript

Log in or sign up for Devpost to join the conversation.