OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 19:16

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 15:24 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Ну в Аде есть те же шаблоны, декструкторы (финализаторы) для тэговых типов. Перепишите хотя бы в простом виде аналогично std::auto_ptr.

Еще там есть освобождение памяти, если локально объявленный тип прекращает свое существование. Деталей не помню - в книжке Гаввы "Адское программирование" об этом написано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 15:34 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Евгений Темиргалеев писал(а):
Ну в Аде есть те же шаблоны, декструкторы (финализаторы) для тэговых типов. Перепишите хотя бы в простом виде аналогично std::auto_ptr.

Еще там есть освобождение памяти, если локально объявленный тип прекращает свое существование. Деталей не помню - в книжке Гаввы "Адское программирование" об этом написано.


Ну, во-первых шаблоны и дженерики Адовские несколько различаются. Во-вторых, я конечно верю что можно ВСЁ переписать, было бы время и желание, но как-то странно получается... ниужели никто из пишущих на Аде до меня не задался этим вопросом? Почему этого нет в стандартной библиотеке (особенно в стандарте 2005 года).

А auto_ptr недостаточен (например его нельзя использовать в stl'овских контейнерах), надо полностью реализовывать буствовские умные указатели.

Собственно по книжке Гаввы и изучаю. Вот кусок оттуда:
Цитата:
Существует два способа освобождения пространства, которое было распределено в области динамической памяти, для его последующего повторного использования:


1: библиотека времени выполнения выполняет неявное освобождение распределеного пространства когда использованый для распределения пространства динамической памяти тип выходит из области видимости

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


2: выполнение явного освобождения пространства динамической памяти в программе

Следует заметить, что стандарт языка Ада не определяет более четких требований и правил для алгоритмов библиотеки времени выполнения. Поэтому, реальные алгоритмы будут определяться реализацией конкретного компилятора и его библиотек поддержки. Следовательно, для уточнения этих сведений необходимо обратиться к документации на используемый компилятор, и здесь этот способ рассматриваться не будет.



Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 11 Июль, 2007 15:35 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Не только, есть там и ещё что-то, сильно уменьшающее возможность висячки или утечки...
Аду вроде бы относят к языкам с полуавтоматическим управлением памятью.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2 или Ada?
СообщениеДобавлено: Пятница, 01 Февраль, 2008 11:35 

Зарегистрирован: Вторник, 04 Июль, 2006 13:04
Сообщения: 88
Откуда: Novosibirsk
мелкие комментарии
1) мне кажется что нечуствительность к регистру это хорошо))
2) оно конечно сложность часового механизма меньше сложности кучи.
но молотком гвозди например забивать все равно проще чем часами))
да и сам молоток проще устроен. другими словами сложность часов имеет
смысл лишь если нужны именно часы. причем не больше и не меньше.
но мир состоит не только из часов))
3) отдельные интерфейсы и реализации это хорошо))
4) указатели это да, опасно. делать как в С++ - не решение пока из
стандарта не выкинуты обычные указатели. то есть - никогда.
в некоторых реализациях впрочем по-моему есть опциональный
сборщик мусора, поскольку стандарт его и не запрещает))

после знакомства с Адой возникает стойкое впечатление универсальности
в стиле ПЛ/1 )) даже если оно - продумано, все равно получается что в любой
задаче все время оказывается что-то лишнее и это неуютно.
В принципе и фиг бы с ним если памяти не жалко.
Но это лишь если бы вся эта куча кода рантайма всегда нормально работала.
А они мало того что не гарантируют правильность работы (тестирование
ведь ничего гарантировать не способно, только определять иногда ошибки).
так еще коммерческие вендоры Ады вводят все новые и новые "жесткие"
стандарты, навороты чтоб устранять конкурентов из высокодоходной
военной области и срубить с них за сертификацию... Все как везде...
и шатко как-то они эти нововведения аргументируют... если время будет почитаю
ратионале и может постараюсь найти пример такой псевдоаргументации...

не зря есть например плодятся диалекты типа ?SPARK?, программы на
котором говорят лучше верифицируются. гм)) их несколько и это симптом))

...был бы Гнат постабильнее и более тощий и простой, им бы более-менее уверенно
можно было пользоваться. Пока что оно не PlugnPlay))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2 или Ada?
СообщениеДобавлено: Пятница, 01 Февраль, 2008 14:03 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
CheshireCat писал(а):
1) мне кажется что нечуствительность к регистру это хорошо))
2) оно конечно сложность часового механизма меньше сложности кучи.
но молотком гвозди например забивать все равно проще чем часами))
да и сам молоток проще устроен. другими словами сложность часов имеет
смысл лишь если нужны именно часы. причем не больше и не меньше.
но мир состоит не только из часов))
1) А мне кажется, что при обращении к элементу m массива M именно так и стоит писать. Для обычных программистов, может, это особого значения не имеет, но непрофессиональные программисты пользуются мат. теориями чаще. А математики больше любят обозначения типа M и m вместо Set и ElemOfSet. В результате, решение задачи с использованием какой-то конкретной теории получается прозрачнее. Я говорю не за всех, а только сужу по себе. Мне приходилось кое-что писать на Паскале, где чувствовались недостатки регистронезависимости.
2) Часы сложнее кучи деталей из этих часов. И вообще любой кучи. Потому что это система. Если это была аналогия, то, пожалуй, следует подобрать что-нибудь другое. А эта аналогия, случайно, нужна не для упоминания ограниченной применимости инструмента (которая всем надоела)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2 или Ada?
СообщениеДобавлено: Пятница, 01 Февраль, 2008 17:02 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Valery Solovey писал(а):
... но непрофессиональные программисты пользуются мат. теориями чаще. А математики больше любят обозначения типа M и m вместо Set и ElemOfSet.


Выразительность программ с тяжелой математикой резко повышается, если есть возможность форматировать текст соотв. образом. У меня какой-нибудь Ploss имеет loss в виде subscript, а e -- греческое eps. Ну такое облегчение, такое облегчение, даже обсуждать нечего...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2 или Ada?
СообщениеДобавлено: Вторник, 19 Февраль, 2008 03:15 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Info21 писал(а):
Valery Solovey писал(а):
... но непрофессиональные программисты пользуются мат. теориями чаще. А математики больше любят обозначения типа M и m вместо Set и ElemOfSet.


Выразительность программ с тяжелой математикой резко повышается, если есть возможность форматировать текст соотв. образом. У меня какой-нибудь Ploss имеет loss в виде subscript, а e -- греческое eps. Ну такое облегчение, такое облегчение, даже обсуждать нечего...


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

В яве, кстати, вообще с самого начала весь исходный текст программы -- юникод. Можно использовать хоть кириллический хоть греческий алфавит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2 или Ada?
СообщениеДобавлено: Пятница, 23 Май, 2008 09:39 
Аватара пользователя

Зарегистрирован: Пятница, 23 Май, 2008 09:24
Сообщения: 40
Откуда: Ленинград
rv82 писал(а):
Вот блин! Производители GNAT дают бесплатную версию только для некоммерческого использования! И к, сделанному с его помощью продукту, нужно приложить исходные коды. А если я не хочу коды раздавать?! А если и за программу захочу денег сорвать?!


Уж столько раз этот вопрос перетирался. Пора бы уже поставить жирную точку в этом вопросе, чтобы никаких новичков это больше не смущало. Стандартная библиотека бывает под лицензией GMGPL не только в GNAT Pro, но и в FSF GCC. Соответственно, можно использовать самый обычный GPL Edition, а срез исходников RTL стянуть из какой–нибудь Debian или Gentoo, где они гарантированно будут GMGPL. Осталось какой–нибудь доброй душе скомпилировать GMGPL библиотеку и выложить установщик для неё.

По теме: конечно, Ада :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2 или Ada?
СообщениеДобавлено: Пятница, 23 Май, 2008 10:39 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
OCTAGRAM писал(а):
rv82 писал(а):
Вот блин! Производители GNAT дают бесплатную версию только для некоммерческого использования! И к, сделанному с его помощью продукту, нужно приложить исходные коды. А если я не хочу коды раздавать?! А если и за программу захочу денег сорвать?!


Уж столько раз этот вопрос перетирался. Пора бы уже поставить жирную точку в этом вопросе, чтобы никаких новичков это больше не смущало. Стандартная библиотека бывает под лицензией GMGPL не только в GNAT Pro, но и в FSF GCC. Соответственно, можно использовать самый обычный GPL Edition, а срез исходников RTL стянуть из какой–нибудь Debian или Gentoo, где они гарантированно будут GMGPL. Осталось какой–нибудь доброй душе скомпилировать GMGPL библиотеку и выложить установщик для неё.

По теме: конечно, Ада :)


А можно просто, не извращаясь, взять GNAT из репозитория своего любимого дистрибутивы (дебиана там, убунты...) и спокойно пользовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2 или Ada?
СообщениеДобавлено: Суббота, 24 Май, 2008 11:29 
Аватара пользователя

Зарегистрирован: Пятница, 23 Май, 2008 09:24
Сообщения: 40
Откуда: Ленинград
Это если не Windows


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2 или Ada?
СообщениеДобавлено: Суббота, 24 Май, 2008 21:19 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
OCTAGRAM писал(а):
Это если не Windows

А под виндой можно на кошечках пока натренироваться... И носа не казать, пока не зайдёт речь о переносе под линух... Это даже потом ловчее и быстрее пройдёт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2 или Ada?
СообщениеДобавлено: Понедельник, 13 Апрель, 2009 10:06 

Зарегистрирован: Вторник, 04 Июль, 2006 13:04
Сообщения: 88
Откуда: Novosibirsk
Valery Solovey писал(а):
1) А мне кажется, что при обращении к элементу m массива M именно так и стоит писать. Для обычных программистов, может, это особого значения не имеет, но непрофессиональные программисты пользуются мат. теориями чаще. А математики больше любят обозначения типа M и m вместо Set и ElemOfSet. В результате, решение задачи с использованием какой-то конкретной теории получается прозрачнее. Я говорю не за всех, а только сужу по себе. Мне приходилось кое-что писать на Паскале, где чувствовались недостатки регистронезависимости.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2 или Ada?
СообщениеДобавлено: Понедельник, 13 Апрель, 2009 10:39 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Также, как и
Код:
n ∈ N
В университете не раз ловил себя на том, что понимал лекции только потому, что знал контекст, в котором они читаются. Иначе, фразы типа "эн принадлежит эн" были бы просто бредом. Но даже это иногда не помогало: случалось и ошибаться.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB