Для меня возможно создать мой собственный Интерпретатор, который мог затем быть преобразован в компилятор? Если да, как я иду о создании его?
Это называется Второй проекцией Футамуры. Впервые он был описан проф. Йошихико Футамура в своей статье 1971 года Частичная оценка вычислительного процесса - подход к компилятору-компилятору (японский) , английская версия переиздавалась 28 лет назад потом.
Он использует Частичное вычисление , частично оценивая сам частичный вычислитель по отношению к интерпретатору, таким образом получая компилятор.
Итак, вам нужны два ингредиента: интерпретатор для вашего целевого языка, написанный на каком-то основном языке (который может быть, а может и не совпадать с целевым языком), и частичный оценщик, способный оценивать как интерпретатор, так и самого себя, в другими словами, он должен частично оценивать основной язык и сам должен быть написан на основном языке, который он может оценивать.
Уже упоминавшееся частичное оценка - один из возможных методов (очень требовательный к вычислениям, но, с другой стороны, довольно общий). Другой подход - метапрограммирование: если интерпретатор языка реализован в форме простого переводчика, нацеленного на другой интерпретируемый язык, очень легко перенастроить его позже на какой-либо компилируемый язык или заменить целевой интерпретатор компилятором.