DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

Cover image for Good Resources for creating a programming language
QLabs
QLabs

Posted on

Good Resources for creating a programming language

A couple of months ago I had the idea to create a programming language. Yeah, crazy right?! Okay, but in all seriousness, learning to create programming languages helps you better understand computers.

β€œIf you don’t know how compilers work, then you don’t know how computers work. If you’re not 100% sure whether you know how compilers work, then you don’t know how they work.”
β€” Steve Yegge

So, I went along googling "how to create a programming language" and "creating a programming language." You see, the problem here is that there are not too many proper tutorials that help you create a programming language, especially for beginners. I literally was about to switch my search engine to DuckDuckGo or even Bing! Now, I did find a couple of different resources, so I'll share them with you now, so you don't have to go through the long time it took me.

Resources

1.

I found this one very helpful, and really was what I used in the end to create my programming language. This uses python to create a language.

2.

This is also really good. It explains a lot of the concepts in a language, and also gives really helpful diagrams, code snippets, etc.

3. Let's Build a Programming Language

This is the first article in a series that walks you through the steps to create a language. This is another great resource to use and uses JS to create a language.

4.

GitHub logo alex / rply

An attempt to port David Beazley's PLY to RPython, and give it a cooler API.


GitHub logo dabeaz / ply

Python Lex-Yacc


These are both great resources for lexers and parsers. I personally like RPLY, which is a direct port of PLY.

5.


This is one in a 14 part series which really helps you create a programming language.

That's it! I hope this really helped you find resources to help!
Please comment if you have any other resources too!

Top comments (0)

πŸ€” Did you know?

Β 
πŸ“š You can adjust your experience level in Settings to see more relevant content.