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

Share this project:

Updates