Intereting Posts
Добавить пользовательский атрибут для создания шаблонов электронной почты – Magento Сортировка 5-мерного массива по дате в 5-м измерении с использованием php? отладка веб-приложения Yii с использованием Zend Debugger в Eclipse Как запустить скрипт PHP асинхронно? Чтение php-файла с использованием php-файла и экспорт excel как использовать pcntl_fork () с Apache? Laravel – уничтожить существующие сеансы при входе в систему PHP: класс не найден даже с использованием пространства имен Простой поиск и замена регулярных выражений в php для минимизации / сжатия javascript? Являются ли PHP MySQLi подготовленными запросами с привязанными параметрами? Обработка связей при ранжировании от наивысшего до самого низкого Zend Framework 2 – подключение к базе данных Шифрование с использованием AES-128 в Java я пишу код для проведения онлайн-теста, возникли проблемы с автоматической отправкой Требуется ли mysql_real_escape_string () при использовании подготовленных операторов?

Существуют ли какие-либо компиляторы XSLT для C ++?

Я нашел только одну попытку создать такой компилятор – http://sourceforge.net/projects/xsltc/ . Но этот проект уже мертв уже десять лет. Есть ли другие примеры? Открыт или коммерческий?

Существуют ли какие-либо фундаментальные технические трудности при создании такого программного обеспечения? С полным подходом к составлению XSLT изначально?

Я полагаю, что для его использования есть хорошие варианты использования – места, где нам не нужно менять XSLT, но все же хотелось бы получить более высокую производительность (и, возможно, более низкие требования к памяти).

Есть ли другие причины, по которым это программное обеспечение может быть не столь эффективным, как кажется? – Возможно, интерпретируют XSLT-процессоры как эффективные, чем скомпилированные?

По моему мнению, XSLT не очень популярен. Как правило, проще и эффективнее использовать вашу любимую библиотеку XML для выбранного вами языка, анализировать данные XML и писать код для форматирования вывода так, как вы хотите.

С другой стороны, похоже, что у вас уже был некоторый успех. Бывают случаи, когда это полезно. Проверьте этот вопрос , чтобы узнать больше о преимуществах и недостатках XSLT.

Во всяком случае, разработчики программного обеспечения в целом не являются большими поклонниками XSLT, что объясняет, почему не было большого движения, чтобы написать оптимизированный синтаксический анализатор XSLT на C ++.

Д-р Майкл Кей только что объявил Саксон / C http://www.saxonica.com/saxon-c/index.xml

На домашней странице продукта:

Saxon / C – это альфа-релиз Saxon-HE на платформе программирования C / C ++. API в настоящее время предлагаются для запуска XSLT 2.0 из приложений C / C ++ или PHP.

Лицензия

Продукт является открытым исходным кодом. Первичной лицензией является версия Public License версии 2.0. В большинстве случаев исходные файлы помечены как «несовместимые со вторичными лицензиями», а это значит, что код нельзя комбинировать с кодом, выпущенным в соответствии с лицензией GPL (причина в том, что это сложность обращения ко всем прошлым вкладчикам, чтобы получить согласие .)

Некоторые компоненты лицензируются по лицензии Apache версии 2.0 или под лицензиями BSD. Для получения дополнительной информации о лицензировании см. Лицензию

Скачать

Чтобы загрузить программу установки Saxon-C, нажмите на ссылку ниже.

libsaxon-HEC-setup.zip (30 МБ)

XSLT является функциональным langauge с некоторым сопоставлением с образцом.

Вы могли бы, возможно, скомпилировать его как набор правил, управляемых шаблонами, с метаметрическим контролем, чтобы все шаблоны, применяемые в одно мгновение, эффективно обрабатывались.

Компиляция графических правил langauges довольно хорошо понята; см. работу над сетями Рэт Чарльза Форти в начале 80-х годов и деривативами за последние двадцать лет.

Поэтому, если кто-то захочет это сделать, они могут это сделать. Где экономический стимул?

Если вы действительно хотите это сделать, вам нужен инструмент, который может обрабатывать XSLT как набор шаблонов, а не использовать XML-процессор для обработки XML-документа asdumb в противном случае. И вы хотите иметь возможность манипулировать / составлять шаблоны и генерировать целевой машинный код. Вам понадобится инструмент, предназначенный для управления символическими структурами.

LISP был бы хорош, но не очень хорошо разбирается XML (фиксируется с потетьем), и не очень хорошо манипулирует сгенерированным кодом C ++ (фиксируется только с огромным количеством пота настолько маловероятным).

Наш инструментарий DMS Software Reengineering Toolkit – это система, предназначенная для обработки формальных документов как частей по существу таким же образом, как компилятор рассматривает исходный код как набор структур langauge. Он имеет синтаксические анализаторы XML и может обрабатывать фрагменты кода C ++ по частям, по составу и может оптимизировать результат, применяя правила преобразования программ с исходным кодом в C ++. (Огромное количество пота уже вложено в C ++-манипуляцию).

Мы сделали шаблонные компиляторы правил с использованием DMS, а не для XSLT, а скорее для компиляции этих правил преобразования программ источника в источник, путем сопоставления шаблонов и отслеживания состояния индуцированных изменений. Вы получаете действительно большие автоматы (вроде того, как таблицы разбора LR становятся большими), которые могут реализовать перевод.

Однако это не сделано для XSLT.