Написание собственного языка программирования 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 недели или, возможно, раз в месяц. Кто знает, может, мне будет так весело, что я буду публиковать обновления раз в неделю. Я все еще пытаюсь во всем этом разобраться.
Заполнитель для ссылок на будущие посты