Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/jamiebuilds/the-super-tiny-compiler

:snowman: Possibly the smallest compiler ever
https://github.com/jamiebuilds/the-super-tiny-compiler

Last synced: 26 days ago
JSON representation

:snowman: Possibly the smallest compiler ever

Lists

README

        

[![The Super Tiny Compiler](https://cloud.githubusercontent.com/assets/952783/21579290/5755288a-cf75-11e6-90e0-029529a44a38.png)](the-super-tiny-compiler.js)

***Welcome to The Super Tiny Compiler!***

This is an ultra-simplified example of all the major pieces of a modern compiler
written in easy to read JavaScript.

Reading through the guided code will help you learn about how *most* compilers
work from end to end.

### [Want to jump into the code? Click here](the-super-tiny-compiler.js)

### [You can also check it out on Glitch](https://the-super-tiny-compiler.glitch.me/)

---

### Why should I care?

That's fair, most people don't really have to think about compilers in their day
jobs. However, compilers are all around you, tons of the tools you use are based
on concepts borrowed from compilers.

### But compilers are scary!

Yes, they are. But that's our fault (the people who write compilers), we've
taken something that is reasonably straightforward and made it so scary that
most think of it as this totally unapproachable thing that only the nerdiest of
the nerds are able to understand.

### Okay so where do I begin?

Awesome! Head on over to the [the-super-tiny-compiler.js](the-super-tiny-compiler.js)
file.

### I'm back, that didn't make sense

Ouch, I'm really sorry. Let me know how it can be improved.

### Tests

Run with `node test.js`

---

[![cc-by-4.0](https://licensebuttons.net/l/by/4.0/80x15.png)](http://creativecommons.org/licenses/by/4.0/)