1563
Обсуждение дизайна языков программирования (как новых, так и существующих). Литература: https://github.com/true-grue/Compiler-Development Создание и устройство компиляторов: @CompilerDev Для новичков: @pld_beginners
Где вы увидели что я в функции собираюсь что-то регулярками искать/переписывать???
И ни о каких goto речи вообще не было.
Пример с регулярками был дан как аналогия. Не более.
Моя идея скорее о макросах и патмате.
@artemkot4 @vexoxoid
В случае vm идея с построением ast из байт кода наверное работает хорошо, если заняться реализацией, но в случае натива нужно очень много думать
Читать полностью…
Понимаю. У меня язык на llvm, поэтому отталкиваюсь от своего опыта
Читать полностью…
Суть в том, чтобы представить общее представление ast, которое будет стабильно и предоставить программисту удобный интерфейс без знаний того, как работает язык в более низком представлении
Читать полностью…
Мы можем изменять сам байткод непосредственно
Читать полностью…
Но в общем смысле мы получаем представление, изменяем что нам надо для изменяемой функции и дальше представление передаётся компилятору, который построит изменённую функцию
Читать полностью…
Тут скорее нужен аст для самого программиста, который будет менять функцию
Читать полностью…
Обычно там байт-код. Байткод можно патчить, но АСТ там не пахнет.
Читать полностью…
Возможно это даже упростит задачу унификации
Читать полностью…
Тоже думал ваши думы закинуть и спросить что мне изучить
Читать полностью…
нулан, может не совсем так. там всё же модификация ИЛ, а не АСТ
Читать полностью…
как домой доберусь, если не забуду. но можно погуглить oxygen not included mods
Читать полностью…
Если он после компиляции выяснит ast
Читать полностью…
Сам llvm просто абстракция над компиляцией в целевые платформы, но машинный код это уже результат, и далеко не обобщённый
Читать полностью…
llvm не vm, извините, хотя могу себе представить что кто-то патчит llvm ir
Читать полностью…
Когда мы декомпилируем, то уже ни о какой стабильности речи идти не может. Да и вмки не особо низкоуровневые обычно, ну JVM
Читать полностью…
Ну то есть декомпиляция => изменение => компиляция это лишний шаг
Читать полностью…
Идея отлично ложится на js/джаву подобных языках, где есть абстракция для vm
Читать полностью…
Наверное в случае натива строить аст очень больно
Читать полностью…
Машинный код тоже можно патчить, но это неприятно и неудобно
Читать полностью…
Вообще аст вряд ли будет сохраняться после компиляции, скорее всего компилятору придётся его собирать из уже скомпилированных файлов библиотек
Читать полностью…
Слишком общий вопрос )
Знаете же, хорошо поставленный вопрос содержит половину ответа 😉
В целом, ИИ-агенты сейчас уже неплохо отвечают на вопрос типа что надо изучить чтобы понимать вот эту фигню.
буквально как пишутся моды к некоторым играм
Читать полностью…
Будет ли проблема с рекурсией, зависит от выбранного модуля интенсиональной эквивалентности. Т.е., проблема с рекурсией возникает, когда мы приближаемся к определению экстенсиональной эквивалентности.
Читать полностью…