Ada_Ru форум

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

Containers

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

Сообщения

Alexandre
Containers
2005-05-05 05:57:15
Добрый день,

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

Заранее спасибо,
Удачи,
/Александр.
Sergey I. Rybin
Re: [ada_ru] Containers
2005-05-05 06:05:00
Alexandre wrote:

> ������ ����,
> 
> � ����� ���-������ ������� ��������� ��� ����� ��������� � 2005 ���? �� 
> � ��������� �� � ����� ������ ����� �� �������... =/

������� - �� ����, ��� ���� �� ����������, � ����������� - �����������

[ Attachment content not displayed ]
Dmitriy Anisimkov
Re: [ada_ru] Containers
2005-05-05 06:06:21
Alexandre wrote:

>Добрый день,
>
>а может кто-нибудь вкратце объяснить кто такой контейнер в 2005 аде? Ни 
>в референсе ни у гугла ответа найти не удалось... =/
>  
>
Контейнер, это объект который умеет содержать другие объекты.
Dmitriy Anisimkov
Re: [ada_ru] Containers
2005-05-05 06:20:16
Sergey I. Rybin wrote:

>Alexandre wrote:
>
>>обрый день,
>>
>>а может кто-нибудь вкратце объяснить кто такой контейнер в 2005 аде? Ни 
>>в референсе ни у гугла ответа найти не удалось... =/
>>    
>>
>
>Вкратце - не могу, сам пока не разобрался, а подробности - прилагаются
>  
>
Пол мегабайта, я думаю многовато для рассылки. Надо бы архивировать, а 
лучше ссылку давать.
Sergey I. Rybin
Re: [ada_ru] Containers
2005-05-05 06:31:10
> Пол мегабайта, я думаю многовато для рассылки. Надо бы архивировать, а 
> лучше ссылку давать.

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

(А ссылку на список AI я постоянно теряю - просто злой рок какой-то!
сколько раз ни записывал, и в закладки браузера клал - то ссылка не
работает, то бумажку потеряется)
Dmitriy Anisimkov
Re: [ada_ru] Containers
2005-05-05 06:36:14
Alexandre wrote:

>а может кто-нибудь вкратце объяснить кто такой контейнер в 2005 аде? Ни 
>в референсе ни у гугла ответа найти не удалось... =/
>  
>
К стати говоря, в недавно вышедшем gcc-4.0 Ada.Containers уже есть.
Alexandre
Re: [ada_ru] Containers
2005-05-05 07:56:12
> Вкратце - не могу, сам пока не разобрался, а подробности - прилагаются

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

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

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

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

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


И последний вопрос - что такое AI? Ada ...  ?
У меня только одна ассоциация - Artificial Intelligence =)

Спасибо,
Удачи,
/Александр.
Sergey I. Rybin
Re: [ada_ru] Containers
2005-05-05 08:15:37
> А какие-нибудь ещё свойства у него есть? Например гарантия неразрушения 
> содержимого?

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

>>К стати говоря, в недавно вышедшем gcc-4.0 Ada.Containers уже есть.
> 
> А это как, ведь стандарт ещё не утверждён?

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

> И последний вопрос - что такое AI? Ada ...  ?
> У меня только одна ассоциация - Artificial Intelligence =)

Ada Issues.

Это собираемые и обрабатываемые группой уполномоченных экспертов замечания
и предложения по стандарту Ады. Очередной пересмотр стандарта (Ада 2005/2006)
по причине незначительности изменений в языке решено было провести как
обработку соответствующих AI. Те AI, что получат соответствующий статус,
будут затем методом текстуальной вставки соответствующих их частей
добавлены в текст стандарта Ады - и получим стандарт Ады 2005.

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

http://www.ada-auth.org/ais.html
Maxim Reznik
Re: [ada_ru] Containers
2005-05-05 10:33:58
On Thu, May 05, 2005 at 11:56:12AM +0400, Alexandre wrote:
> > Вкратце - не могу, сам пока не разобрался, а подробности - прилагаются
> 
> Спасибо, хотя пол-метра читать действительно сложнова-то... =)
> 
А есть готовая реализация, можно взять и поиграться, если
писать легче чем читать 8-).

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

Если имеется ввиду неразрушение при одновременном изменении
из двух разных задач/процессов, то здесь IHMO никакой
особой защиты нет. Т.е. все по аналогии с другими типами
языка. Если необходимо менять переменную любого типа
из нескольких задач одновременно, надо создавать
protected объект, защищающий ее. Или обеспечить
последовательность изменения через синхронизацию
задач.

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

Имеешь ввиду чтоб данные где-то сохранялись после завершения
программы, а при запуске считывались? Где-то видел реализацию
Persistent объектов, могу поискать.

-- 
Maxim Reznik
Sergey I. Rybin
Re: [ada_ru] Containers
2005-05-05 10:59:44
Maxim Reznik wrote:

> On Thu, May 05, 2005 at 11:56:12AM +0400, Alexandre wrote:
> 
>>>Вкратце - не могу, сам пока не разобрался, а подробности - прилагаются
>>
>>Спасибо, хотя пол-метра читать действительно сложнова-то... =)
>>
> 
> А есть готовая реализация, можно взять и поиграться, если
> писать легче чем читать 8-).

В официальных релизах от AdaCore контейнеры есть давно,
в GAP-e их нет
Alexandre
Re: [ada_ru] Containers
2005-05-05 15:23:46
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), но при этом родное и тестированное.

Удачи,
/Александр.
Alexandre
Re: [ada_ru] Containers
2005-05-05 15:39:25
Вроде всё понятно - спасибо!


Удачи,
/Александр.

On May 5, 2005, at 12:15, Sergey I. Rybin wrote:
Alexey V. Litvinov
Re[2]: [ada_ru] Containers
2005-05-06 01:07:40
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@...
Dmitriy Anisimkov
Re: [ada_ru] Containers
2005-05-06 02:36:03
Alexandre wrote:

>>Контейнер, это объект который умеет содержать другие объекты.
>>    
>>
>
>А какие-нибудь ещё свойства у него есть? Например гарантия неразрушения 
>содержимого?
>  
>
Обычно библиотеки контейнеров, не дают возможности конкурретной 
многозадачной модификации, если это специально не оговорено.
многозадачность надо обрабатывать самостоятельно, обычно защищенными типами.
Так же контейнеры не дают прозрачного способа отображения содержимого 
контейнера на файл,
как это сделано в средствах управления базами данных.
Alexandre
Re: Re[2]: [ada_ru] Containers
2005-05-06 06:35:30
Спасибо, но про это знаю.
Два минуса: софт не оптимизированный (медленее GDBM, писался на скорую  
руку) и большие объёмы держать будет неизвестно как (по словам автора).


Удачи,
/Александр.

On May 6, 2005, at 05:07, Alexey V. Litvinov wrote:
Alexandre
Re: [ada_ru] Containers
2005-05-06 07:06:54
On May 6, 2005, at 06:36, Dmitriy Anisimkov wrote:

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

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

Удачи,
/Александр.
Dmitriy Anisimkov
Re: [ada_ru] Containers
2005-05-06 07:13:08
Alexandre wrote:

>>Спасибо за информацию.
>>А что тогда можно сделать? Использовать таки обычные базы данных?
>>    
>>
Что делать ? Зависит от того, какая задача перед тобой стоит. Я вполне 
успешно использую контейнеры,
они хорошо подходят для широкого спектра задачь.
Alexandre
Re: [ada_ru] Containers
2005-05-06 07:35:33
On May 6, 2005, at 11:13, Dmitriy Anisimkov wrote:

> Alexandre wrote:
>
>>> Спасибо за информацию.
>>> А что тогда можно сделать? Использовать таки обычные базы данных?
>>>
>>>
> Что делать ? Зависит от того, какая задача перед тобой стоит. Я вполне
> успешно использую контейнеры,
> они хорошо подходят для широкого спектра задачь.

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


Удачи,
/Александр.
Dmitriy Anisimkov
Re: [ada_ru] Containers
2005-05-06 10:37:34
Alexandre wrote:

>On May 6, 2005, at 11:13, Dmitriy Anisimkov wrote:
>  
>
>Задача будет состоять в хранении и обновлении векторов и деревьев. 
>Хочется, чтобы это жило и между запусками программы, а также 
>обеспечивало быстрый и прозрачный доступ к объектам внутри + 
>возможность определения повреждения контейнера/базы в случае экстренных 
>ситуация (выключение питания). Восстановление не требуется (хотя 
>желательно) - данные не критичны, могут быть перестроены.
>  
>
Если сохранять данные из памяти на диск можно по завершению программы, 
или по какой то команде,
то можно и контейнерами обойтись, написать сохранялку в файл, и читалку 
из файла, это просто.
Зато скорость будет наибольшей возможной, если правельно выберешь 
контейнеры.
Alexandre
Re: [ada_ru] Containers
2005-05-06 10:56:28
On May 6, 2005, at 14:37, Dmitriy Anisimkov wrote:

> Alexandre wrote:
>
>> On May 6, 2005, at 11:13, Dmitriy Anisimkov wrote:
>>
>>
>> Задача будет состоять в хранении и обновлении векторов и деревьев.
>> Хочется, чтобы это жило и между запусками программы, а также
>> обеспечивало быстрый и прозрачный доступ к объектам внутри +
>> возможность определения повреждения контейнера/базы в случае 
>> экстренных
>> ситуация (выключение питания). Восстановление не требуется (хотя
>> желательно) - данные не критичны, могут быть перестроены.
>>
>>
> Если сохранять данные из памяти на диск можно по завершению программы,
> или по какой то команде,
> то можно и контейнерами обойтись, написать сохранялку в файл, и читалку
> из файла, это просто.
> Зато скорость будет наибольшей возможной, если правельно выберешь
> контейнеры.

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

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


Удачи,
/Александр.
Dmitriy Anisimkov
Re: [ada_ru] Containers
2005-05-06 11:24:15
Alexandre wrote:

>Вот пишу это всё и понимаю, что, похоже, всё-таки путь мне только один 
>- не изобретать велосипед заново а таки использовать базу данных 
>готовую, хотя и очень не хочется зависеть от сторониих библиотек, тем 
>более Си-шных...
>  
>
Базы на С гораздо более експлуатированны, и соответсвенно протестированы 
чем редкие базы на Ада.
вот кстати еще одна http://www.liacc.up.pt/~maa/mneson/

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

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

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

Если интересно вот тут выложил времено.
http://ipv4.ada-ru.org:8080/pub/dadaism/
Новое сообщение:
Страницы: 1 2

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