the-super-tiny-compiler README

The project's README from github.com/jamiebuilds/the-super-tiny-compiler. As one markdown file: README.md.

The Super Tiny Compiler

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

You can also check it out on Glitch


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 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

the-super-tiny-compiler (jamiebuilds/the-super-tiny-compiler)

Searching Database…

Что это такое?The Super Tiny Compiler — это максимально упрощённый пример с большим количеством комментариев, в котором показаны все основные части современного компилятора. Он написан на простом JavaScript, чтобы новички могли понять, как на самом деле работают компиляторы.
Это библиотека, которую мне нужно установить, или просто материал, который можно почитать?Это не библиотека для повторного использования, а один файл с пошаговым исходным кодом, который нужно читать строка за строкой, чтобы разобраться в устройстве компиляторов.
Как начать разбираться с кодом?Откройте файл the-super-tiny-compiler.js в репозитории и прочитайте код с пояснениями. Если хотите сначала попробовать в браузере, есть и версия на Glitch.
Нужно ли что-то установить, чтобы следовать за объяснениями?Для запуска входящих в проект тестов нужен только Node.js. Других зависимостей не указано.
Можно ли использовать это как настоящий компилятор в проекте?Нет, это прямо заявленный учебный пример, призванный сделать компиляторы понятными, а не инструмент для промышленного использования.
Зачем изучать компиляторы, если я сам их на работе не пишу?В проекте сказано, что идеи компиляторов постоянно встречаются в повседневных инструментах разработчика, даже если самому писать компилятор не приходится, поэтому базовые знания того стоят.
Что делать, если код после прочтения всё равно непонятен?Автор прямо просит обратной связи: если объяснение не сработало с первого раза, нужно написать ему, как его можно улучшить.
Можно попробовать, не клонируя репозиторий?Да, в README есть ссылка на Glitch, где можно открыть и запустить код прямо в браузере.
Size
<0.1 MB
Stars
28.5K
Updated
CommitJan 07
Age
10y
Commits · 90 Days