Инструмент прототипирования семантики языка программирования

Существует ли какой-либо инструмент для создания прототипа семантики и системы типов языка программирования, который также позволяет выполнять некоторую проверку моделей стандартных свойств, например, правильности типа? Я спрашиваю об этом, потому что я читаю книгу по Alloy, и она предоставляет...