Написание собственного языка программирования AKA Interpreter

Эта серия будет следовать моему пути написания языка программирования или интерпретатора. Я пишу этот блог, чтобы взять вас с собой в это приключение.

Мы будем следовать книге Writing An Interpreter In Go от Thorsten Ball.

Начнем с того, кто, почему, что, когда и где.

ВОЗ.

Я инженер DevOps с глубокой страстью к кодированию и автоматизации, которая началась на моем первом курсе по информационным технологиям в 10 классе, то есть почти миллион лет назад.

Я считаю, что это произошло только из-за замены учителя, которого Бог поставил на моем пути на 3-4 месяца. Я даже не могу вспомнить его имя, все, что я знаю, это то, что он изменил всю мою карьеру.

Я занимаюсь программированием уже ± 5 лет профессионально с несколькими сторонними проектами, начиная от игр и заканчивая веб-сайтами, инструментами CLI и макросами Excel — большая часть моей профессиональной карьеры связана с разработкой Python.

У меня не было опыта работы с ГО до того, как я начал читать эту книгу. В качестве подготовки я просмотрел следующие

  • Techworld с Наной: Учебник по Golang для начинающих | Полный курс
  • GO TOUR с официального сайта.

ПОЧЕМУ

Личностный рост. Я считаю, что с каждым завершенным проектом мы не можем не расти как личность.

Карьерный рост. Более глубокое понимание того, как работает интерпретатор, должно сопровождаться более глубоким пониманием языков программирования. И я имею в виду, сколько разработчиков могут указать в своем резюме, что они написали свой собственный язык программирования?

Последний, но тем не менее важный,

Веселье. Я действительно думаю, что это будет забавный и познавательный опыт.

Я чувствую, что должен отдать должное Человеку-Мифу-Легенде ThePrimeagen. Это было на одном из его видео/стримов

"Ну, ПРИНЯТЬ"

точнее бесчисленные потоки, которые он упомянул об этой книге, и так было посажено семя, которое побудило меня взять книгу и начать эту серию.

Возможно, моя следующая серия будет посвящена переходу с VSCode на VIM, чтобы сделать Papa P Proud. Если вы случайно это читаете, спасибо. Вы были большим вдохновением.

ЧТО

Мы начнем с краткого введения в интерпретаторы и их компоненты, а также заглянем под капот интерпретаторов и их работы.

Эта книга, как следует из названия, использует GoLang для создания интерпретатора. Название языка программирования, который мы создаем в этой книге, получило название «MONKEY».

Мы будем писать это снизу вверх без сторонних пакетов.

Что это вообще значит?

Здесь нет:

pip install PackageThatSolvesAllMyProblemsAndILearnNothingNew

Это означает, что мы заново изобретаем колесо, строим и решаем, что мы хотим, чтобы это колесо могло делать, и как оно это делает.

Это, в свою очередь, означает, что мы будем подобны пещерному человеку, пытающемуся впервые придать форму колесу. Скорее всего, мы будем выглядеть здесь дураками, но именно так мы и научимся.

ГДЕ

Все обновления проекта будут публиковаться на этой платформе, а моя кодовая база — на Git Hub.

КОГДА

Я думаю, что запланирую пост каждые 2 недели или, возможно, раз в месяц. Кто знает, может, мне будет так весело, что я буду публиковать обновления раз в неделю. Я все еще пытаюсь во всем этом разобраться.

Заполнитель для ссылок на будущие посты