XSLT - это функциональный язык с некоторым сопоставлением с образцом.
Возможно, вы могли бы скомпилировать его как набор правил, ориентированных на шаблоны, а метаматчирование обеспечит эффективную обработку всех шаблонов, применимых в одно мгновение.
Составление шаблонно-ориентированных правил langauges довольно хорошо понято; см. работы по сетям Чарльза Форти в начале 80-х и их производным за последние двадцать лет.
Так что, если кто-то хотел это сделать, он мог. Где экономический стимул?
Если вы действительно хотите это сделать, вам нужен инструмент, который может обрабатывать XSLT как набор шаблонов.
вместо того, чтобы использовать XML-процессор для обработки его как тупой XML-документ, в противном случае это выглядит так. И вы хотели бы иметь возможность манипулировать / составлять шаблоны и генерировать целевой машинный код. Вам понадобится инструмент, предназначенный для управления символическими структурами.
LISP был бы хорош, но не особенно хорош для синтаксического анализа XML (исправляемый с потом), и не особенно хорош для манипулирования сгенерированным кодом C ++ (исправимо только с огромным количеством пота, что маловероятно).
Наш набор инструментов для реинжиниринга программного обеспечения DMS - это система, предназначенная для обработки формальных документов как частей, по сути, так же, как компилятор обрабатывает исходный код как набор языковых структур.
Он имеет синтаксические анализаторы XML и может манипулировать фрагментами кода C ++ по частям, по составу и может оптимизировать результат, применяя правила преобразования исходных текстовых кодов для оптимизации C ++. (Огромное количество пота уже вложено в манипуляции C ++).
Мы создали компиляторы правил, ориентированные на шаблоны, используя DMS не для XSLT, а скорее для компиляции этих правил преобразования программ от источника к источнику путем мета-сопоставления шаблонов и отслеживания состояния вызванных изменений. Вы получаете действительно большие автоматы (вроде того, как таблицы разбора LR становятся большими), которые могут реализовать перевод.
Хотя для XSLT этого не сделано.