Подробное описание этапов создания ИНТЕРПРЕТАТОРА для простого языка программирования. Нигде не могу найти именно этапы создания, расписанные простым языком, вроде - Этап 1. ... и так далее
Книга дракона Альфреда Ахо - куда уж подробней. Ну либо на базе llvm что-то https://habr.com/ru/post/336980/
я думаю, что как первый этап, можно взять https://github.com/antlr/antlr4 и создать себе парсер под грамматику. Остальное достаточно небольшой обвес, когда ты уже дергаешь апи операционной системы.
А вот еще 5 этапов http://www.programmersclub.ru/ by Stilet (Виталий Белик) Компилятор домашнего приготовления. Часть 1 Компилятор домашнего приготовления. Часть 2 Компилятор домашнего приготовления. Часть 3 Компилятор домашнего приготовления. Часть 4 Компилятор домашнего приготовления. Часть 5 Во вложении книга D.W.Barron'a "Ассемблеры и загрузчики" 1969 Книга старенькая, но объясняется всё просто и понятно
Каждый программист за свою карьеру обязан написать хотя бы один лисп интерпретатор: http://www.buildyourownlisp.com/ --- Сообщение объединено, 8 дек 2020 --- Раз уж заговорили про дизайн языков, может у кого есть хорошая книжка по JetBrains MPS в электронном виде?
А кому-нибудь приходила в голову написать полиморфный транслятор с ассемблера или си, чтобы делать морфинг кода прямо во время компиляции? Почему такого чуда до сих пор нет?
Например, инструкцию nop такой транслятор переводил бы в мега-трэш с ветвлениями и фейковыми вызовами
Проще встроиться в пайплайн готового компилятора, я делал обфускатор на базе плагинов к clang, и экспериментировал с GCC и их GIMPLE представлением, но там не так удобно, как в clang на уровне AST все делать.
Да рел правильно говорит, но я знаю кое кого кто такое реализовывал в своей кандидатской --- Сообщение объединено, 13 дек 2020 --- ну я про полиморфный компилер