Ada_Ru форум

Обсуждение языка Ада

????? ????????

Оставить новое сообщение

Сообщения

Vladyslav Kozlovskyy
????? ????????
2005-11-13 12:16:32

Народ,

 

Тут друг хочет одну тему замутить под Аду и надо будет создавать и юзать (модифицирование, поиск, сортировка и т.д.) в памяти дерево (типа XML) елементов эдак на 200 000. Подскажите где (кроме Кнута - уже копаем) можно почитать об оптимальной обработке подобной хринотени, в особенности на Аде. Есть ли опенсорсные разработки, успешно работающие с громадными иерархическими структурами? Может есть какие-то патерны подобного механизма? Уж больно стремно с нуля такую штуку

выдумывать, боюсь тормозить будет!.. :(

--

Best regards,

Vladyslav

Vladyslav Kozlovskyy wrote:

 

Народ,

 

Тут друг хочет одну тему замутить под Аду и надо будет создавать и

юзать (модифицирование, поиск, сортировка и т.д.) в памяти дерево

(типа XML) елементов эдак на 200 000. Подскажите где (кроме Кнута -

уже копаем) можно почитать об оптимальной обработке подобной хринотени,

в особенности на Аде. Есть ли опенсорсные разработки, успешно работающие с

громадными иерархическими структурами? Может есть какие-то патерны

подобного механизма? Уж больно стремно с нуля такую штуку

выдумывать, боюсь тормозить будет!.. :(

 

Дык, а сам GNAT чем плох в качестве примера? :)

 

(Чтобы советовать конкретно - надо знать подробности. 200 000 элементов

может быть как очень много, так и вообще ерундой.)

Привет Sergey,

 

Thursday, October 13, 2005, 4:46:31 PM, пробежало в Ada-RU:

 

Vladyslav Kozlovskyy wrote:

 

Народ,

 

Тут друг хочет одну тему замутить под Аду и надо будет создавать и юзать (модифицирование, поиск, сортировка и т.д.) в памяти дерево (типа XML) елементов эдак на 200 000. Подскажите где (кроме Кнута - уже копаем) можно почитать об оптимальной обработке подобной хринотени, в особенности на Аде. Есть ли опенсорсные разработки, успешно работающие с громадными иерархическими структурами? Может есть какие-то патерны подобного механизма? Уж больно стремно с нуля такую штуку

выдумывать, боюсь тормозить будет!.. :(

 

Дык, а сам GNAT чем плох в качестве примера? :)

 

а разве GNAT модифицирует свои деревья?

 

разве он не работает в режиме добавления (последовательного заполенния структуры) по типу:

 

source -> дерево разобра -> оптимизированное дерево разбора -> ...

нужно же внутри менять части дерева (модификация, замена) + поиск

и еще - есть где-то описана модульная структура GNAT-a с краткими шпаргалками, какие модуля к чему пренадлежат и чему служат? Я понимаю что можно разобратся и самому, но получив такую общую картину разбиратся гораздо легче

 

(Чтобы советовать конкретно - надо знать подробности. 200 000 элементов может быть как очень много, так и вообще ерундой.)

 

Ладно. Дерево по сложности должно быть типа такое:

 

Если взять весь GNAT втиснуть в один файл (сколько там, 15

мег исходников?) скомпилить и получить дерево разбора. Вот,

приблизительно, такое дерево разбора надо и юзать. Задачка

прояснилась? :)

 

Я тут, правда, нашел одну штуку - Sedna √ Native XML DBMS

(http://modis.ispras.ru/Development/sedna.htm) Распространяется в исходниках. Есть Linux и Windows версии. Лицензия Apache License.

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

 

эта весчь, кажись, подойдет. Правда, написана на C/Shema (как я

понял)

 

--

Best regards,

Vladyslav

 

Ладно. Дерево по сложности должно быть типа такое:

 

Если взять весь GNAT втиснуть в один файл (сколько там, 15

мег исходников?) скомпилить и получить дерево разбора. Вот,

приблизительно, такое дерево разбора надо и юзать. Задачка

прояснилась? :)

 

Да. Тогда, наверное, GNAТ не годится в качестве примера.

Sergey I. Rybin wrote:

>Ладно. Дерево по сложности должно быть типа такое:

 

Если взять весь GNAT втиснуть в один файл (сколько там, 15

мег исходников?) скомпилить и получить дерево разбора. Вот,

приблизительно, такое дерево разбора надо и юзать. Задачка

прояснилась? :)

 

 

Да. Тогда, наверное, GNAТ не годится в качестве примера.

 

Не обязательно. GNAT предлагает очень хороший шаблон организации

достаточно сложных иерархических и циклических структур.

 

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

Здравствуйте.

Для примера есть стандартные Java API SAX и DOM.

Первая библиотека (SAX) ориентирована на разбор XML методом реакции на события от парсера.

Вторая библиотека (DOM) рассчитана на работу с полным XML-деревом (чтение/построение/запись).

Всё доступно в исходниках.

См. J2SE SDK 1.4.2_09 (в файле src.zip можно найти исходники пакетов javax.xml).

 

С уважением,

iZEN

 

 

 

Vladyslav Kozlovskyy пишет:

В том же примере с компилятором если брать и проводить анализ "в лоб",

как это делает компилятор, то получится достаточно объёмисто. А вот если

взять ASIS и обработав модуль за модулем выделить только действительно

необходимую порцию данных, то общая структура займёт значительно меньше

места. ;)

 

Я просто поражаюсь, какие вещи вы там у себя умеете с ASIS-ом делать! :)))

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти