OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 179 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 9  След.
Автор Сообщение
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Четверг, 03 Декабрь, 2009 15:04 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Galkov писал(а):
...меняя ANYPTR на мои конкретные типы ... Типы в полях структуры (которые обозначены как ANYPTR) должны быть тождественны - быть наследником недопустимо
Это почему? Просто процедура-обработчик должна быть такой:
Код:
PROCEDURE MyHandler (this: ANYPTR; ...аргументы...);
BEGIN
  WITH this: MyType DO
     ...
  END
END MyHandler;
Если вдруг переменная this оказывается не совместимой с типом MyType, то WITH генерирует исключительную ситуацию и выполнение команды завершается трапом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Четверг, 03 Декабрь, 2009 15:11 
Модератор
Аватара пользователя

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

Есть некоторый процедурный интерфейс. Переменная такого типа может указывать на произвольную реализацию (в любом модуле). Хочется указывать ещё и на такую же реализацию, если её обеспечивает не модуль, а объект.

Если поговорить чисто понятийно...
То возникает, конечно, тонкость - в Дельфях и проч., где параметр скрыт, ещё можно признать, что метод A(x, y, z) и процедура A(x, y, z) - это один и тот же процедурный интерфейс. Когда параметр this явный, то формально уже нет.
Это не к критике, а просто, рассуждения.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Четверг, 03 Декабрь, 2009 15:12 
Модератор
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Четверг, 03 Декабрь, 2009 15:17 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Galkov писал(а):
Valery Solovey писал(а):
Нету WITH после вызова? Значит есть перед ним
Неправда Ваша. Вовсе не значит. Если мы осуществляем селектирование, значит сначала кто-то это объединил в одно целое. Только это. Но совершенно не значит, что без этого объединения не обойтись.
Обойтись. И существует много случаев, когда это "обойтись" выглядит значительно проще и естественней.

Если послать по общему каналу для Вас "объединить", то Вы что-то неправильно понимаете. А если не пользоваться каналом, то о гибкости ПО можно забыть.

Это было первое, а второе - не "кто-то объединил в общее целое", а изначально целое. Вы "селектируете" всегда. Вы не можете не селектировать вручную. Иначе можно сказать "компьютера, компютера напиши мне программу". Так вот: Вы сначала "селектируете", а потом делаете запрос. А здесь наоборот.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Четверг, 03 Декабрь, 2009 23:11 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Илья Ермаков писал(а):
P.S. Только такое ощущение, что как только фундаментальность штуки прочувствуется, станет ясно, что всё многообразие возможных примений конкретным средством не покрыть. И прошивать его в язык не стоит, если всё равно перереализовывать надо будет под ситуацию.

Хм... Как бы это объяснить, что без языка не получится...
Ну давайте я попробую говорить "аки теоретик", хотя это и не моя сильная сторона.
Предположим, что под типом мы понимаем множество значений, которое могут принимать представители этого типа.
Тогда структура из двух типизированных полей - это произведение двух множеств (в том смысле произведение, что является множеством пар представителей из соответствующих множеств)
Далее, имеем отношение эквивалентности на этом "произведении". Которое помещает в один класс эквивалентности структуры, у которых эквивалентны тип поля obj, и тип первого аргумента поля proc. Еще раз замечу, что IS - не катит, он не есть отношение эквивалентности.
Так вот, нужный нам тип - это множество именно классов эквивалентности над этим множеством-произведением.
Как бы, эдакая "одномерная линия" в "двухмерном" пространстве-произведении (если исходить из глупейшего предположения, что исходные множества были представимы одномерным пространством).
Ну и что получается? Произведение множеств - имеет адекватный "конструктор типа" в Языке. А выделение "множества классов эквивалентности" - нет.
Поэтому и думаю, что имеющимися средствами не обойтись. Собственно, тут персонально моих мыслей вообще немного. Больше наблюдений, чем мыслей. Например такое наблюдение: А сделавши, говорят: "ну и фигня же получилась", и начинают делать QT

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

У меня самого куча вопросов возникает, если размышлять "о совершенстве Мира". Не таких, что не имеют решения, а таких, что имеющиеся решения не очень вдохновляют.
Есть разработчик объекта- отправителя сообщей. А есть - объекта-получателя.
И было бы правильно (надежно), что бы у них вообще не было потребности знать как о проблемах друг-друга, так и о проблемах того, кто будет "сшивать" их творчество.
Ну а кто тогда будет определять типы сообщений....
Есть Думатель, который может чего-то делать (вычислять, интегрировать, дифференцировать, и т.п.) с текстовыми формулами. Его Автор такие методы и написал, как сам понимал. И знать не хотел, что это будут сообщения от таймера, от полей ввода, или вообще запрос по интернету.
Соответственно, и автор какого-нибудь визуального контролла понятия не имел, что сообщения он будет отправлять какому-то там Решателю
А кто будет иметь ??? Кто будет заводить типы сообщений, или стыковать сигнатуры слотов с сигналами ???
((в смысле, я не прошу решения задачи, мне известны какие-то))
Как-то надо влезать в уже построенные ящики, или надстройки делать...

Все время как-то получается: хочешь надежность - жертвуй эффективностью
А я хочу И надежность, и НЕ жертвовать
Ну это так - отвлекся..........


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Четверг, 03 Декабрь, 2009 23:24 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Valery Solovey писал(а):
Если послать по общему каналу для Вас "объединить", то Вы что-то неправильно понимаете
Ага, щаз :wink:
Для меня определяющим является результат, и затраты на его получения.
Пример с Думателями приведен специально для демонстрации, что исходной потребности чего селектировать - не было объективно (Валерий, только не спрашивайте меня, что такое объективно :D )
А селектирование с помощью WITH - это преодоление той проблемы, которую мы сами же и создали. По каким причинам - другой разговор. Но проблема это благоприобретенная, а не врожденная.
О чем топик-то ???
О том, что какую-то часть таковых задач можно было БЫ делать гораздо эффективнее и понятнее, без создания неких проблем, которые в последствии следует преодолевать. Даже очень эффективное преодоление некой проблемы - хуже, чем вообще не знать про нее (да не создавать ее)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Четверг, 03 Декабрь, 2009 23:43 
Модератор
Аватара пользователя

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

С одной стороны, есть технический смысл: указатель на процедурный обработчик, который может быть связан как с модулем, так и с объектом. С другой стороны, есть абстрактный смысл: частный, простой случай получения "остаточного алгоритма".
С одной стороны, всё разумно. С другой, не пересекается с имеющимися средствами, ортогонально.

Переходим к вопросу "а как это будет..."

Нюанс. Это - ссылочный объект. Для ссылочного объекта важно соответствие его времени жизни с временем жизни адресуемого объекта. Т.е. кроме POINTER TO RECORD и POINTER TO ARRAY возникает третья разновидность, тоже требующая автоматического управления.

Однако тут можно бы, в принципе, убить двух зайцев. Тип PROCEDURE на данный момент оказывается немножко "изгоем", потому что тоже ссылочный, но на контроль времени жизни для него "забили". А он тоже нужен, т.к. модуль может выгружаться, и т.п.
Лично у меня иногда используется свой библиотечный тип, который хранит адрес процедуры безопасно (как пару Kernel.Module и offset. Т.к. Kernel.Module остаётся в памяти навсегда и после выгрузки, то при вызове я могу определить, что этот модуль уже имеет refcnt < 0, и разыменовывать процедуру нельзя).

Можно пораскинуть мозгами о некотором новом типе POINTER TO PROCEDURE, который мог бы указывать на процедуры, независимо от того, связаны они с модулем или объектом.

Однако с точки зрения Ваших любимых (иронизирую по-доброму :) ) подсчётов операций будут косвенности лишние, конечно, будут.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Четверг, 03 Декабрь, 2009 23:46 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Да, в принципе, определить такой тип как тройку (mod, offs, obj). Компилятор в места присваиваний этому типу вставляет код, инициализирующий правильным образом.

В месте вызова идёт проверка невыгруженности модуля, затем если obj # NIL, то он фигачится в стек, фигачатся в стек параметры (или в обратном порядке, кажется, при WinApi call), идёт вызов по адресу mod.code + offs.

Сборщик мусора знает этот тип и "якорит" obj.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 00:00 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Сергей Губанов писал(а):
Это почему? Просто процедура-обработчик должна быть такой
И чего будет ???
Если proc - это виртуальная ф-ия для типа MyType, а this является наследником этого типа, который переопределил этот виртуал.
И откуда MyHandler знает, что какой-то умник использует его имя в непотребном контексте, если для обычных вызовов методов, этого не даст компилятор.
Но это - так...
В другом главное.
Мне понятно, что задачку с думателями/решателями можно решить на КП. И мне уже стали понятны общепринятые механизмы для этого. Я не ищу способа решить задачу существующими средствами, но пытаюсь обосновать что та задачка значительно проще по своей природе

Ну посмотрите, нафига проверять тип в run time, в каждом хэндлере, если все это прекрасно выполнимо на этапе компиляции.
Ну не дает компилятор (дельфи) написать присваивание с такими типами и именами методов, которые надо проверять в run time. Ровно так же, как ни один нормальный компилятор не дает вызвать метод для чужого объекта. Это правильно, и надежно.
Вы присмотритесь к нему - там же, действительно, все просто, как топор. И настолько же надежно. Ей богу - это "Автомат Калашникова"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 00:03 
Модератор
Аватара пользователя

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

1) Процедура принимает один параметр VAR par: ANYREC. (Ограничение несильное, т.к. в КП передачу расширяемой записи на практике используют вместо процедур с переменной сигнатурой - эффективность такой передачи почти такая же, как и у простого вызова).
2) Получение указателя на метод идёт не языково, а по имени метода (нет в языке и в SYSTEM способа адресовать связанную процедуру).

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

Код:
MODULE ProcPointers;

  TYPE
     Pointer* = RECORD ... END;
     Proc = PROCEDURE (VAR par: ANYREC);

  PROCEDURE (IN p: Pointer) Call* (VAR par: ANYREC);

  PROCEDURE NewPointerToProc* (proc: Proc; OUT ptr: Pointer);

  PROCEDURE NewPointerToObj* (obj: ANYPTR; IN proc: ARRAY OF CHAR; OUT ptr: Pointer);

END ProcPointers.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 00:09 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Илья Ермаков писал(а):
Однако тут можно бы, в принципе, убить двух зайцев. Тип PROCEDURE на данный момент оказывается немножко "изгоем", потому что тоже ссылочный, но на контроль времени жизни для него "забили". А он тоже нужен, т.к. модуль может выгружаться, и т.п.
Ну да, про "изгоя" припоминаю
Но как рассуждал Шульц :!:
Мне казалось, что ни у кого не хватит наглости выгрузить модуль, если еще живы объекты из него порожденные
Т.е., та часть этого типа, которая есть POINTER TO RECORD, как бы защитит и кодовую часть модуля, даже если указатель на метод есть "изгой"
А если "не изгой", ну значит комбинация двух известных защит, как в обыкновенной структуре...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 02:55 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Galkov писал(а):
Ну перейдем к сравнению... Конечно же, я немного лукавил про сравнение: мне сразу было известно, что эффективнее, чем это сделано с использованием procedure of object - сделать нельзя. С уровнем доверия три девятки.
... "Никак пока в толк не возьму, отчего в КП нет такого полезного типа"
Думал-думал - ну ничему не противоречит вроде... Появляется и "защита" - работает как все указательные типы...
В каких задачах эта эффективность даст такие плюсы, чтобы нужно было включать в язык? Это учитывая что ББ-й механизм с сообщениями более гибкий и разница в скорости - константа - несколько лишних команд.

Гуёвые callback-и (viewtopic.php?p=38616#p38616)? В ББ гуй на сообщениях и тормозов не заметно...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 11:04 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Galkov писал(а):
Если proc - это виртуальная ф-ия для типа MyType
Нет, в Блэкбоксе значением процедурной переменной может быть только обычная процедура, а не связанная с типом.

Теперь на счёт эффективности.

Цепочка выбора типа:

IF obj IS Typ1 THEN ...
ELSIF obj IS Typ2 THEN ...
ELSIF obj IS Typ3 THEN ...
END

равно как и селектор WITH

WITH obj: Typ1 DO ...
| obj: Typ2 DO ...
| obj: Typ3 DO ...
END

тратят на каждую ветвь менее 3 тактов (в среднем - 2.8 такта).

То есть в процедуре:
Код:
PROCEDURE MyHandler (this: ANYPTR; ....аргументы.... );
BEGIN
  WITH this: MyType DO
    ...
  END
END MyHandler;
проверка WITH замедляет её работу всего на 3 такта (при условии, что все данные находятся в кэше процессора). Если тело процедуры будет выполняться, например, более 30 тактов, то лишние 3 такта на этом фоне будут малозаметны.

Для сравнения: в дотнете операция выяснения типа занимает тактов пятнадцать-восемнадцать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 11:48 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Galkov писал(а):
Для меня определяющим является результат, и затраты на его получения.
Пример с Думателями приведен специально для демонстрации, что исходной потребности чего селектировать - не было объективно
Да ну? Хорошо. Значит, "селектировать" не надо. Ладно. Тогда скажитем не, как эти думатели будут вызываться?
1. Их было три только для понтов, а на самом деле вызываться будет только первый (остальные будут для балласта).
2. Вызываться они будут в том порядке, в котором они были представлены.
3. Вызываться будут в обратном порядке.
4. Какой-то другой порядок вызова.

Galkov писал(а):
А селектирование с помощью WITH - это преодоление той проблемы, которую мы сами же и создали.
Ну, если подходить философски, то возможно да. Но если добавить прагматики, то проблема не в том, что необходимо делать выбор, а в том, когда его производить.
Galkov писал(а):
О чем топик-то ???
О том, что какую-то часть таковых задач можно было БЫ делать гораздо эффективнее и понятнее, без создания неких проблем, которые в последствии следует преодолевать. Даже очень эффективное преодоление некой проблемы - хуже, чем вообще не знать про нее (да не создавать ее)
Топик о том, что кому-то не хватает детальки, без которой обычно можно обойтись.

P.S. А по-моему, даже не особо эффективное преодоление некой проблемы лучше, чем вообще не знать про неё.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 14:00 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Илья Ермаков писал(а):
По поводу сопоставления типа. Простой IS выполняется так: известен level сопоставляемого типа. В дескрипторе любого типа прямая таблица всех базовых типов. Обращаемся obj->type->base[level] и сравниваем с проверяемым типом

Правильно ли я понял:
    1) Всякий объект, имеет ссылку на дескриптор типа, которую мы поименовали type
    2) Этот дескриптор, вместо того, чтобы иметь просто ссылку на предка, имеет ссылку на упорядоченный массив base указателей на дескрипторы всех своих предков
    3) Размер этого массива и определяет level нашего типа данных
    4) Массив base персонален для каждого типа. Т.е., для каждого типа создаются как дескриптор, так и этот массив (в одной структуре данных, или в разных - это уже не самые значительные подробности)
    5) Таковое "не рациональное" использование памяти сделано специально, чтобы IS превратился из итеративной/рекурсивной процедуры в линейный код с быстродействием О(1)
    6) И который компилятор исполняет inline :?:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 14:57 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Сергей Губанов писал(а):
Нет, в Блэкбоксе значением процедурной переменной может быть только обычная процедура, а не связанная с типом
Ну вот видите...
И как тогда понимать "Ну изготовьте этот тип сами если он Вам так нравится" :?:


Сергей Губанов писал(а):
тратят на каждую ветвь менее 3 тактов (в среднем - 2.8 такта).
Ну я бы не горячился, насчет "трех тиков" :wink:
Если производить измерения временных затрат каким-то циклом по коротенькой тестовой программе, исполняющейся миллионы раз, то - возможно. Нужная нам память будет лежать в самом близком кэше, и частота системной шины памяти (которая очень даже не частота проца) никак не задействована.
Но я выражу сомнения, что это очень похоже на реальную жизнь. В которой может приключиться и свопинг при обращении к памяти. Хотя это другая крайность, конечно же.

Интересное кино :D
Если я скажу, что моя сегодняшняя бука (тот же "моно", тот же XP-Home) с частотой 2.128ГГц крутится раз в пять быстрее предыдущей (2.8ГГц) - это не удивит никого. А вот обращение к памяти - 3 тика :lol:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 14:58 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
>> Всякий объект, имеет ссылку на дескриптор типа

Ещё надо добавить, что этот указатель прячется компилятором где-то "сбоку", а не внедряется в тело объекта.

В частности, следующий массив объектов:

a: ARRAY 2 OF RECORD x: BYTE END;

будет иметь размер всего 2 байта, а вовсе не 2*(1+4) как было бы если указатель на дескриптор типа был бы внедрён внутрь каждого RECORD.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 14:59 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Galkov писал(а):
И как тогда понимать "Ну изготовьте этот тип сами если он Вам так нравится" :?:
Я показал как, привёл полный код.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 15:01 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Galkov писал(а):
Илья Ермаков писал(а):
По поводу сопоставления типа. Простой IS выполняется так: известен level сопоставляемого типа. В дескрипторе любого типа прямая таблица всех базовых типов. Обращаемся obj->type->base[level] и сравниваем с проверяемым типом

Правильно ли я понял:


Да, только:

Цитата:
3) Размер этого массива и определяет level нашего типа данных


Размер массива всегда 16 (см. структуру Kernel.Type), level лежит отдельным полем. type.base[type.level] = type.
(Поскольку глубина 16 - это фантастика (да больше 3 редко бывает), то самую старшую ячейку(и) при разных расширениях рантайма можно использовать под свои нужды).

Цитата:
5) Таковое "не рациональное" использование памяти сделано специально, чтобы IS превратился из итеративной/рекурсивной процедуры в линейный код с быстродействием О(1)
6) И который компилятор исполняет inline :?:

Да, именно так.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Пятница, 04 Декабрь, 2009 15:34 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Илья Ермаков писал(а):
самую старшую ячейку(и) при разных расширениях рантайма можно использовать под свои нужды).
Шаловливые ручонки...


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

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


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

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


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

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