Component Pascal и среда разработки BlackBox |
Здравствуйте!
Начал изучать новый язык программирования Component Pascal
http://www.oberon.ch/
http://www.inr.ac.ru/~info21/
http://www.uni-vologda.ac.ru/oberon/
Но нигде не нашел рускоязычного сайта, на котором был бы форум посвященный этому
языку.
Наверняка среди посетителей этого сайта есть специалисты по языку Component Pascal и
среде BlackBox.
А посему, перейду сразу к делу. У меня есть вопрос про сборщик мусора в BlackBox.
Может быть кто-нибудь сможет объяснить что нужно
сделать чтобы он заработал?
Я имею в виду следующую простейшую тестовую програмку:
MODULE sgTest003;
IMPORT StdLog;
PROCEDURE Проверка*;
TYPE A = POINTER TO ARRAY 10000000 OF INTEGER;
VAR a: A;
BEGIN
StdLog.String(" Создаю "); StdLog.Ln();
NEW(a); (* В этом месте я вижу через Windows Task Manager как BlackBox забрал
память*)
StdLog.String(" Выхожу из области видимости "); StdLog.Ln();
a := NIL; (* Я думаю, что сборщик мусора должен активизироваться в этом месте *)
END Do;
(* В этом месте я ожидаю, что BlackBox отдаст память обратно в распоряжение Windows
XP*)
BEGIN
END sgTest003.
Вызываю процедуру Проверка посредством кликания мышью на
(Коммандер)sgTest003.Проверка
и наблюдаю через Task Manager за памятью. BlackBox ее только забирает и назад не
отдает.
Даже если я выгружу модуль Dev ---> Unload, все равно BlackBox не вернет память
обратно
в распоряжение Windows XP. Память возвращается только когда я выключаю сам
BlackBox 1.4 Shareware Edition.
Кто-нибудь понимает в чем дело?
С уважением,
Сергей Губанов
Всего в теме 117 сообщений
Добавить свое сообщение
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 67 07-06-2006 15:19 | |
Ответ на »сообщение 47« (Руслан Богатырев)
___________________________
Ну вот, теперь хоть проясняется, что виновата, оказывается, форма, а не конкретно языки. Что касается формы, то чему удивляться: если кто-то кого-то ...
Призыв к модератору: вырубать подобные посты независимо от остального содержания. Если человеку есть, что сказать, пусть постится еще раз.
№ 66 07-06-2006 15:17 | |
Ответ на »сообщение 45« (Takun)
___________________________
UNIX можно написать на любом языке, но не на любом языке можно написать ОС Оберон.
Браво еще раз! Уважаю. Наш человек.
№ 65 07-06-2006 15:14 | |
Ответ на »сообщение 39« (Takun)
___________________________
... считаю модуль в первую очередь контейнером для инвариантов. Именно установка и сохранность определенных инвариантов может быть основой для создания и гарантии правильного функционирования сложных динамических систем. В том числе и компонентных.
Это может быть так же аргументом во всех доставшей дискуссии О2-КП. Аргумент против О2, а так же С, Ява, С# и прочих: язык допускающий нарушение установленных программистом инвариантов не пригоден для практического использования. ^_^
Браво!
№ 64 07-06-2006 15:12 | |
Ответ на »сообщение 37« (AVC)
___________________________
Мне (пока) неизвестны гарантии того, что модуль можно выгрузить без ошибок.
Достаточно не использовать процедурные переменные. Тогда корректная выгрузка модулей не сложнее сбора мусора.
№ 63 07-06-2006 15:09 | |
Ответ на »сообщение 44« (AVC)
___________________________
.. ссылка размещается в документе.
Поэтому вопрос о возможности и целесообразности выгрузки модулей, ИМХО, остается неясным.
В ББ вьюшки, для которых модулей нет, превращаются в т.наз. Alien, сохраняют все свое содержимое, и корректно обрабатываются, а рисуются тем самым крестом в сером окне.
Выгрузка модулей необходима, когда система (например, на кластере) получает задачи в виде модулей с удаленной управляющей машины. Модули старых задач должны быть выгружены.
№ 62 07-06-2006 08:11 | |
Ответ на »сообщение 61« (AVC)
___________________________
Ответ на »сообщение 57« (Takun)
Кажется, так и было.
Я имел в виду, что задействовали, в общем, тот же механизм: Oberon.Call etc.
Так вроде это не сереализация. Просто в глобальную переменную помещают строку текста с параметрами, которые процедура потом парсит. Объект с произвольной структурой так не передашь, только примитивные типы.
№ 61 07-06-2006 08:00 | |
Ответ на »сообщение 57« (Takun)
___________________________
Я имею в виду механизм исполнения команд и сериализации объектов.
Помоему в персистентных объектов изначально не было (только Text), их потом добавили.
Кажется, так и было.
Я имел в виду, что задействовали, в общем, тот же механизм: Oberon.Call etc.
№ 60 07-06-2006 08:00 | |
Ответ на »сообщение 58« (Руслан Богатырев)
___________________________
А сформулировать понятие практичности языка программирования на примере КП вы не можете?
№ 59 07-06-2006 07:52 | |
Ответ на »сообщение 58« (Руслан Богатырев)
___________________________
я не вижу оснований для использования данного места под обсуждение именно таких вопросов.
Где я вам другой возьму? :(
№ 58 07-06-2006 07:44 | |
Ответ на »сообщение 56« (Takun)
___________________________
Я не вижу, чем тема нашего разговора выходит за рамки "мыслей об Обероне". Не вижу причин, что бы считать это место "чужим углом". Если вы считаете, что я вышел за допустимые рамки, прошу извинить меня.
Прочитайте внимательно название того форума, где мы сейчас общаемся. Несмотря на пояснения Антона Григорьева в первых сообщениях, я не вижу оснований для использования данного места под обсуждение именно таких вопросов. В том числе и по принципиальным соображениям. Если обсуждение имеет отношение к КП или BlackBox, тогда вопросов нет.
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|