2017-04-25 17:16:30 +00:00
|
|
|
# Welcome to The Super Tiny Compiler!
|
2016-08-25 01:35:32 +00:00
|
|
|
|
2017-04-25 17:16:30 +00:00
|
|
|
***An [@thejameskyle](http://thejameskyle.com/) production***
|
2016-08-25 01:35:32 +00:00
|
|
|
|
2017-04-25 17:16:30 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
This is an ultra-simplified example of all the major pieces of a modern
|
|
|
|
compiler written in easy to read JavaScript.
|
2016-08-25 01:35:32 +00:00
|
|
|
|
|
|
|
Reading through the guided code will help you learn about how *most* compilers
|
|
|
|
work from end to end.
|
|
|
|
|
|
|
|
### Why should I care?
|
|
|
|
|
2017-04-25 17:16:30 +00:00
|
|
|
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. These are really useful concepts to
|
|
|
|
have at your disposal.
|
2016-08-25 01:35:32 +00:00
|
|
|
|
|
|
|
### 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.
|
|
|
|
|
2017-04-25 17:16:30 +00:00
|
|
|
I've done my best to try and keep this from being a scary experience. I hope
|
|
|
|
that reading this will be a positive learning experience for you.
|
2016-08-25 01:35:32 +00:00
|
|
|
|
2017-04-25 17:16:30 +00:00
|
|
|
### Okay so where do I begin?
|
2016-08-25 01:35:32 +00:00
|
|
|
|
2017-04-25 17:16:30 +00:00
|
|
|
Awesome! Head on over to [**0-introduction.md**](./intro) and then
|
|
|
|
work your way down the list of files.
|
2016-08-25 01:35:32 +00:00
|
|
|
|
|
|
|
---
|
|
|
|
|
2017-04-25 17:16:30 +00:00
|
|
|
[](http://creativecommons.org/licenses/by/4.0/)
|