Итак, мне интересно, есть ли у кого-нибудь какие-либо мысли (надеюсь, основанные на опыте) о преимуществах создания переводчика от источника к источнику по сравнению с созданием специального интерпретатора.Я работаю над проектом, который интерпретирует математические функции, и до сих пор я полагался на использование Lua для своей грязной работы.Сейчас я нахожусь в точке, где мне нужно либо изменить входную строку, предоставленную пользователем, либо создать интерпретатор для моего DSL (например, я хочу добавить пользовательские функции, чтобы вы могли нарезать массивы, такие как x [1: 2], чтов Lua это невозможно - поэтому я бы изменил это на что-то вроде range (x, 1, 2) [просто в качестве примера]).
Я также обеспокоен возможностью расширения в будущем.Я бы хотел, чтобы люди могли определять свои собственные функции в Lua, поэтому я не уверен, как бы я включил это, если бы я создал собственный интерпретатор.Так что, если у кого-то есть хорошие материалы для чтения от источника к исходному переводчику и / или для создания собственной виртуальной машины / интерпретатора, которая может вызывать функции Lua, я был бы очень признателен!