DEV Community

loading...
Cover image for Good Resources for creating a programming language

Good Resources for creating a programming language

quantalabs profile image QLabs ・2 min read

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!

Discussion (0)

pic
Editor guide