Ada_Ru форум

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

Containers

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

Сообщения

Alexandre
Containers
2005-05-05 05:57:15

Добрый день,

а может кто-нибудь вкратце объяснить кто такой контейнер в 2005 аде? Ни

в референсе ни у гугла ответа найти не удалось... =/

Заранее спасибо,

Удачи,

/Александр.

Alexandre wrote:

 

Добрый день,

 

а может кто-нибудь вкратце объяснить кто такой контейнер в 2005 аде? Ни в референсе ни у гугла ответа найти не удалось... =/

 

Вкратце - не могу, сам пока не разобрался, а подробности - прилагаются

Alexandre wrote:

 

Добрый день,

 

а может кто-нибудь вкратце объяснить кто такой контейнер в 2005 аде? Ни в референсе ни у гугла ответа найти не удалось... =/

Контейнер, это объект который умеет содержать другие объекты.

Sergey I. Rybin wrote:

 

Alexandre wrote:

 

обрый день,

 

а может кто-нибудь вкратце объяснить кто такой контейнер в 2005 аде? Ни в референсе ни у гугла ответа найти не удалось... =/

 

Вкратце - не могу, сам пока не разобрался, а подробности - прилагаются

Пол мегабайта, я думаю многовато для рассылки. Надо бы архивировать, а лучше ссылку давать.

Пол мегабайта, я думаю многовато для рассылки. Надо бы архивировать, а лучше ссылку давать.

 

Извиняйте, избаловался с безлимитным быстрым доступом :(

 

(А ссылку на список AI я постоянно теряю - просто злой рок какой-то!

сколько раз ни записывал, и в закладки браузера клал - то ссылка не

работает, то бумажку потеряется)

Alexandre wrote:

 

а может кто-нибудь вкратце объяснить кто такой контейнер в 2005 аде? Ни в референсе ни у гугла ответа найти не удалось... =/

К стати говоря, в недавно вышедшем gcc-4.0 Ada.Containers уже есть.

Вкратце - не могу, сам пока не разобрался, а подробности - прилагаются

Спасибо, хотя пол-метра читать действительно сложнова-то... =)

Контейнер, это объект который умеет содержать другие объекты.

А какие-нибудь ещё свойства у него есть? Например гарантия неразрушения

содержимого?

Может бред несу, просто хочется понять - есть ли в Аде в стандартной

библиотеке некоторый аналог простенькой встроенной базы данных (чтобы

не использовать полноценные базы данных, которые излишни)?

К стати говоря, в недавно вышедшем gcc-4.0 Ada.Containers уже есть.

А это как, ведь стандарт ещё не утверждён?

И последний вопрос - что такое AI? Ada ... ?

У меня только одна ассоциация - Artificial Intelligence =)

Спасибо,

Удачи,

/Александр.

А какие-нибудь ещё свойства у него есть? Например гарантия неразрушения содержимого?

 

В принципе - как в том полмегабайте написано, так оно и должно быть.

 

К стати говоря, в недавно вышедшем gcc-4.0 Ada.Containers уже есть.

 

А это как, ведь стандарт ещё не утверждён?

 

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

 

И последний вопрос - что такое AI? Ada ... ?

У меня только одна ассоциация - Artificial Intelligence =)

 

Ada Issues.

 

Это собираемые и обрабатываемые группой уполномоченных экспертов замечания

и предложения по стандарту Ады. Очередной пересмотр стандарта (Ада 2005/2006)

по причине незначительности изменений в языке решено было провести как

обработку соответствующих AI. Те AI, что получат соответствующий статус,

будут затем методом текстуальной вставки соответствующих их частей

добавлены в текст стандарта Ады - и получим стандарт Ады 2005.

 

О! нашел живую ссылку!

 

http://www.ada-auth.org/ais.html

On Thu, May 05, 2005 at 11:56:12AM +0400, Alexandre wrote:

Вкратце - не могу, сам пока не разобрался, а подробности - прилагаются

 

Спасибо, хотя пол-метра читать действительно сложнова-то... =)

 

А есть готовая реализация, можно взять и поиграться, если

писать легче чем читать 8-).

 

Контейнер, это объект который умеет содержать другие объекты.

 

А какие-нибудь ещё свойства у него есть? Например гарантия неразрушения содержимого?

 

Если имеется ввиду неразрушение при одновременном изменении

из двух разных задач/процессов, то здесь IHMO никакой

особой защиты нет. Т.е. все по аналогии с другими типами

языка. Если необходимо менять переменную любого типа

из нескольких задач одновременно, надо создавать

protected объект, защищающий ее. Или обеспечить

последовательность изменения через синхронизацию

задач.

 

Может бред несу, просто хочется понять - есть ли в Аде в стандартной библиотеке некоторый аналог простенькой встроенной базы данных (чтобы не использовать полноценные базы данных, которые излишни)?

 

 

Имеешь ввиду чтоб данные где-то сохранялись после завершения

программы, а при запуске считывались? Где-то видел реализацию

Persistent объектов, могу поискать.

 

--

Maxim Reznik

Maxim Reznik wrote:

 

On Thu, May 05, 2005 at 11:56:12AM +0400, Alexandre wrote:

 

Вкратце - не могу, сам пока не разобрался, а подробности - прилагаются

 

Спасибо, хотя пол-метра читать действительно сложнова-то... =)

 

 

А есть готовая реализация, можно взять и поиграться, если

писать легче чем читать 8-).

 

В официальных релизах от AdaCore контейнеры есть давно,

в GAP-e их нет

On May 5, 2005, at 14:33, Maxim Reznik wrote:

On Thu, May 05, 2005 at 11:56:12AM +0400, Alexandre wrote:

Спасибо, хотя пол-метра читать действительно сложнова-то... =)

А есть готовая реализация, можно взять и поиграться, если

писать легче чем читать 8-).

Спасибо за дельный совет... =)

Контейнер, это объект который умеет содержать другие объекты.

А какие-нибудь ещё свойства у него есть? Например гарантия

неразрушения

содержимого?

Если имеется ввиду неразрушение при одновременном изменении

из двух разных задач/процессов, то здесь IHMO никакой

особой защиты нет. Т.е. все по аналогии с другими типами

языка. Если необходимо менять переменную любого типа

из нескольких задач одновременно, надо создавать

protected объект, защищающий ее. Или обеспечить

последовательность изменения через синхронизацию

задач.

Угу, спасибо.

Может бред несу, просто хочется понять - есть ли в Аде в стандартной

библиотеке некоторый аналог простенькой встроенной базы данных (чтобы

не использовать полноценные базы данных, которые излишни)?

Имеешь ввиду чтоб данные где-то сохранялись после завершения

программы, а при запуске считывались? Где-то видел реализацию

Persistent объектов, могу поискать.

Именно! Если не сложно поискать - было бы здорово...

Хочется что-нибудь простенькое типа баз данных GDBM/Berkeley DB (key =>

value databases), но при этом родное и тестированное.

Удачи,

/Александр.

Вроде всё понятно - спасибо!

 

 

Удачи,

/Александр.

 

On May 5, 2005, at 12:15, Sergey I. Rybin wrote:

 

A> Именно! Если не сложно поискать - было бы здорово...

A> Хочется что-нибудь простенькое типа баз данных GDBM/Berkeley DB (key => A> value databases), но при этом родное и тестированное.

 

http://adapower.com/index.php?Command=Class&ClassID=Database&Title=Ada+Database

конкретнее смотреть ADBM ;)

 

 

 

--

Best regards,

Alexey mailto:lial@...

Alexandre wrote:

 

Контейнер, это объект который умеет содержать другие объекты.

 

А какие-нибудь ещё свойства у него есть? Например гарантия неразрушения содержимого?

Обычно библиотеки контейнеров, не дают возможности конкурретной многозадачной модификации, если это специально не оговорено.

многозадачность надо обрабатывать самостоятельно, обычно защищенными типами.

Так же контейнеры не дают прозрачного способа отображения содержимого контейнера на файл,

как это сделано в средствах управления базами данных.

Спасибо, но про это знаю.

Два минуса: софт не оптимизированный (медленее GDBM, писался на скорую руку) и большие объёмы держать будет неизвестно как (по словам автора).

 

 

Удачи,

/Александр.

 

On May 6, 2005, at 05:07, Alexey V. Litvinov wrote:

On May 6, 2005, at 06:36, Dmitriy Anisimkov wrote:

Обычно библиотеки контейнеров, не дают возможности конкурретной

многозадачной модификации, если это специально не оговорено.

многозадачность надо обрабатывать самостоятельно, обычно защищенными

типами.

Так же контейнеры не дают прозрачного способа отображения содержимого

контейнера на файл,

как это сделано в средствах управления базами данных.

Спасибо за информацию.

А что тогда можно сделать? Использовать таки обычные базы данных?

Удачи,

/Александр.

Alexandre wrote:

 

Спасибо за информацию.

А что тогда можно сделать? Использовать таки обычные базы данных?

Что делать ? Зависит от того, какая задача перед тобой стоит. Я вполне успешно использую контейнеры,

они хорошо подходят для широкого спектра задачь.

On May 6, 2005, at 11:13, Dmitriy Anisimkov wrote:

Alexandre wrote:

Спасибо за информацию.

А что тогда можно сделать? Использовать таки обычные базы данных?

Что делать ? Зависит от того, какая задача перед тобой стоит. Я вполне

успешно использую контейнеры,

они хорошо подходят для широкого спектра задачь.

Задача будет состоять в хранении и обновлении векторов и деревьев.

Хочется, чтобы это жило и между запусками программы, а также

обеспечивало быстрый и прозрачный доступ к объектам внутри +

возможность определения повреждения контейнера/базы в случае экстренных

ситуация (выключение питания). Восстановление не требуется (хотя

желательно) - данные не критичны, могут быть перестроены.

Удачи,

/Александр.

Alexandre wrote:

 

On May 6, 2005, at 11:13, Dmitriy Anisimkov wrote:

Задача будет состоять в хранении и обновлении векторов и деревьев. Хочется, чтобы это жило и между запусками программы, а также обеспечивало быстрый и прозрачный доступ к объектам внутри + возможность определения повреждения контейнера/базы в случае экстренных ситуация (выключение питания). Восстановление не требуется (хотя желательно) - данные не критичны, могут быть перестроены.

Если сохранять данные из памяти на диск можно по завершению программы, или по какой то команде,

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

Зато скорость будет наибольшей возможной, если правельно выберешь контейнеры.

On May 6, 2005, at 14:37, Dmitriy Anisimkov wrote:

Alexandre wrote:

On May 6, 2005, at 11:13, Dmitriy Anisimkov wrote:

Задача будет состоять в хранении и обновлении векторов и деревьев.

Хочется, чтобы это жило и между запусками программы, а также

обеспечивало быстрый и прозрачный доступ к объектам внутри +

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

экстренных

ситуация (выключение питания). Восстановление не требуется (хотя

желательно) - данные не критичны, могут быть перестроены.

Если сохранять данные из памяти на диск можно по завершению программы,

или по какой то команде,

то можно и контейнерами обойтись, написать сохранялку в файл, и читалку

из файла, это просто.

Зато скорость будет наибольшей возможной, если правельно выберешь

контейнеры.

Сохранять по команде/завершению - можно, но только проблема в том, что

данные могут быть достаточно большого размера (гигабайты) и грузить их

все в память нельзя (долго, нерационально) - необходима возможность

частичной подгрузки в память, изменений на диске.

Вот пишу это всё и понимаю, что, похоже, всё-таки путь мне только один

- не изобретать велосипед заново а таки использовать базу данных

готовую, хотя и очень не хочется зависеть от сторониих библиотек, тем

более Си-шных...

Удачи,

/Александр.

Alexandre wrote:

 

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

Базы на С гораздо более експлуатированны, и соответсвенно протестированы чем редкие базы на Ада.

вот кстати еще одна http://www.liacc.up.pt/~maa/mneson/

 

Программа написанная на С долго и массово тестированная может оказаться надежнее чем программа на Ада

которая тестировалась и експлуатировалась гораздо меньше.

 

Я думаю тебе еще следует решить, надо ли использовать SQL сервер, или просто индексированные файлы.

SQL сервер потяжелее, но функциональнее.

 

Еще у меня валяется база данных написанная чисто на Ада под названием DADAISM.

я ее не експлуатировал, и скорее всего никто не експлуатировал.

 

Если интересно вот тут выложил времено.

http://ipv4.ada-ru.org:8080/pub/dadaism/

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

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