Re: Refal & XML - possible tasks


Subject: Re: Refal & XML - possible tasks
From: Andrei Klimov (Andrei.Klimov@supercompilers.com)
Date: Fri Mar 24 2000 - 18:07:10 MSK


Андрей (С) и все, добрый день!

По мотивам Вашего письма трехмесячной давности хочу обратиться
ко всему рефал-scp сообществу с некоторыми текущими проблемами.

Извините, что то Ваше письмо осталось без обсуждения. Кроме как
по причине "всеобщей занятости и лености", это произошло еще
и потому, что хотя работы в этом направлении уже велись
Александром Корлюковым, в тот момент ему похвастаться было еще не чем.

Но сейчас ситуация изменилась: Те кто принимал участие в
семинарах в Политехническом музее или почитывает www.refal.net
(см. приложения 2, 3, 4 к "Пособию по суперкомпиляции"
А. Корлюкова; однако, там выставлено далеко не все),
знают, что у Александра Корлюкова "уже на хлеб мажется":

1) имеется "валидатор", проверяющий соответствие
    XML-документа определению данных в DTD (Data Type Definition),
    который -- для проведения нижеописанных экспериментов --
    вызывается на Рефале как "фильтр":

        <Validate (e.DTD) e.XML> => e.XML (без изменения)

    если e.XML удовлетворяет e.DTD и выдает авост в противном случае.

2) имеется интерпретатор (подмножества) XSLT
    (языка трансформаций XML-документов):

        <Transform (e.XSLT) e.XML> => e.XML_transformed

3) на некоторых примерах суперкомпилируется композиция функций:

        <Transform (e.XSLT) <Validate (e.DTD) e.XML>>

    где e.XSLT и e.DTD -- константы, а e.XML -- переменная,
    получая:
    а) компиляцию алгоритма преобразования e.XSLT в рефал-5,
    б) специализацию алгоритма преобразования на класс
        XML-документов, удовлетворяющих e.XML.

Здесь особенно ценно, что суперкомпиляция только
<Transform (e.XSLT) e.XML> без фильтра-валидатора
дает заметно худший результат, чем со специализацией по e.DTD.

==> Теперь о текущих проблемах.

Сначала об общей проблеме: На фронте работ "Написание
на Рефале и суперкомпиляция программ обработки XML-документов"
очень не хватает людей. Приглашаются желающие.
В частности, как Вы, Андрей, справедливо пишите,
здесь много задач, которые могут поднять студенты,
делающие курсовики и дипломные работы.

Например, есть такая серия работ:

  - изучать материалы по XML-ю на сайте www.w3c.org
    (и других местах в Интернете),
  - описывать на Рефале интерпретаторы выставленных
    там языков описания и обработки XML-документов
    (кроме DTD и XSLT еще есть XML Schema и др.),
  - суперкомпилировать эти интерпретаторы по отдельности и
    в разных фигурах (вроде композиции Transform и Validate),
  - писать отчеты о проведенных экспериментах и о программах,
    доведенных до отчуждаемого от автора состояния,
  - присылать их для выставления на сайте www.refal.net.

==> Есть еще одна назревшая конкретная проблема:

Нужны тестовые программы на XSLT, а также рекомендации,
с какими реализациями XSLT стОит сравниваться (какие из них
имеют приличную скорострельность и котируются на рынке?).

Хорошо бы найти такие программы на XSLT, которые делают не такие
тривиальные преобразования как отображение XML в HTML, так как
есть опасения, что интерпретация задач такого стиля достаточно
хорошо вылизана и нам будет трудно конкурировать. Но, может, я и не прав.

Имея в виду способность суперкомпилятора "сплавлять" композицию
функций, особый интерес представляют живые примеры, которые
описываются последовательностью преобразований на XSLT.

Было бы совсем замечательно, если бы нашелся кто-нибудь,
кто не прочь заняться подбором содержательных примеров и задач
(например, лазая по Интернету) и разработкой тестов для программ
А.Корлюкова, а также проведением сравнительных измерений.

Подытоживая, перечислю направления работ -- как упомянутые,
так и не упомянутые выше, -- по которым есть рабочие места:
- XML:
    - написание на Рефале и суперкомпиляция инструментов обработки XML-я
    - тестирование и сравнительные измерения этих программ
- Refal-Scp:
    - участие в работах по развитию суперкомпилятора Рефала
    - разработка разных программ на Рефале "под суперкомпилятор"
    - тестирование
- Java-Scp:
    - аналогичные (и другие) фронты работ вокруг Java-суперкомпилятора.

Андрей (К).

PS. Андрей (С), а что за примеры на XSLT Вы гоняли?
Это Ваши личные программы или какие-то чужие?
Что они из себя представляют? Они были нужны практически?

----- Original Message -----From: Andrey Slepuhin <pooh@msu.ru>
To: <refal@botik.ru>
Cc: Vladimir Roganov <roganov@niisi.msk.ru>
Sent: Tuesday, 21 December, 1999 13:55
Subject: Refal & XML - possible tasks

> День добрый всем!
>
> Я тут на днях поставил XP/XT - соответственно XML-парсер и
> имплементация XSL/XSLT от J.Clark'а, написанные исключительно
> на Java. Все это дело, конечно, работает, но результаты удручающие -
> даже на моем Dual PIII-450 преобразование тестового XML-файла
> из 120 строк в HTML занимает около 5.5 секунд с использованием JIT,
> и почти 8 секунд без оного (JDK1.2.2)!!! В связи с этим я вспомнил
> про то, что Рефал надо увязывать с обработкой XML и после некоторых
> размышлений пришел к следующему набору задач в этой области.
>
> 1) XML-парсер. Читает XML-документ и представляет его в виде
> объектного выражения.
>
> 2) DTD-парсер. Читает XML DTD и представляет в виде объектного
> выражения.
>
> 3) XML Validator. Берет XML-документ и соответствующий DTD (уже
> в виде объектных выражений) и производит проверку документа на
> соответствие DTD.
> Внимание!!! Задача на суперкомпиляцию: оптимизация XML Validator
> для конкретного DTD.
>
> 4) XSL-парсер. Читает XSL-стиль и представляет в виде объектного
> выражения.
>
> 5) XSL-интерпретатор. Берет XSL-стиль и XML-документ (уже в виде
> объектных выражений) и производит необходимое преобразование
> XML-документа.
> Внимание!!! Задача на суперкомпиляцию: оптимизация XSL-интерпретатора
> для конкретного стиля.
>
> 6) В случае, если суперкомпиляция в 5) не даст желаемого результата,
> можно поставить отдельную задачу по написанию XSL-компилятора,
> который по XSL-стилю будет выдавать Рефал-программу преобразования
> XML-документов в соответствии с конкретным стилем.
>
> Володя (Роганов), тут есть хорошие задачи для твоих студентов -
> 1) - 4) вполне годятся для курсовой, а 5) и 6) могут и на диплом
> потянуть. Так что можешь взять на заметку.
>
> Всего доброго,
> Андрей.



This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:58 MSD