Я створив кілька рукописних компіляторів для дуже простих мов, але тепер я хочу спробувати свої сили у розробці динамічної мови, подібної до спрощеного Python або Ruby. Однак мені було легко обернути голову навколо того, як працюють компілятори. Примітивні компілятори просто перекладають. Але я не можу цього зробити, якщо мова динамічна. Мені потрібно написати перекладача або ВМ, який слідкує за інформацією під час виконання та накладає на мене набагато більше роботи.
Коротше кажучи, чи є якісь ресурси, які я повинен перевірити, враховуючи, що я знаю, як працюють компілятори, але хочу перейти до створення інтерпретатора? Є кілька віртуальних машин для динамічних мов, але я не маю жодних проблем із прокручуванням власних. Це все лише для мого особистого досвіду.
Я шукаю інформацію про те, як перейти від компілятора до перекладача. Якщо я вже зробив компілятор для мови X, але тепер, що написати інтерпретатору, що потрібно зробити і чи є ресурси, які переходять через процес?
Я не хочу широких чи абстрактних ресурсів, які стосуються роботи компіляторів чи віртуальних машин. У мене є багато підручників з цього питання. Всі ресурси, які я знайшов в Інтернеті, або припускають, що у вас є 0 досвіду, і, таким чином, почніть з лексичного чи синтаксичного аналізу, або вони є надзвичайно абстрактними. У мене працює робочий компілятор, але зараз я хочу перетворити це на інтерпретатора і додати динамічні функції до мови.
Я не зміг знайти ресурси для цього процесу, можливо, це занадто обмежений обсяг або ресурси на "зворотній частині" перекладача, не будучи занадто теоретичним, тому я розмістив тут.