3

Итак, я узнал о машинах стека, интерпретаторах, компиляторах и некоторых других вещах, связанных с языками программирования и их общей теорией. Большая часть материала, который я нахожу в книгах и в Интернете, очень специализирована и рассказывает об одной конкретной теме, например. переводчиков без упоминания о том, как они относятся к другим темам, например. частичные оценщики. Есть ли хорошие исходные ресурсы для изучения взаимосвязей между переводчиками, компиляторами и частичными оценщиками? Хорошими ресурсами я имею в виду то, что объясняет теорию наряду с конкретными реализациями. Чем больше я узнаю об этом, тем больше мест я вижу в своей повседневной работе, как все это можно применить, но отсутствие дружественных ресурсов для начинающих - это немного облом.Теория интерпретаторов, частичных оценщиков и компиляторов

ответ

8

Один проект, который использует как интерпретаторы, компиляторы, так и частичные оценщики, представляет собой трюфель с Graal. вы реализуете интерпретатор AST в структуре Java Truffle и компилятор JIT, который компилирует Graal. особенность в том, что реализация языка трюфеля должна специализироваться на подмножестве фактической семантики, соответствующей текущему исполнению. Грааль только производит машинный код для этого специализированного подмножества и деоптимизирует, если предыдущие предположения о выполнении недействительны. структура также включает в себя все методы выполнения AST, которые затем являются формой частичной оценки. вы можете найти several papers онлайн или напрямую посмотреть на code.

Смежные вопросы