Положительные OO-утверждения
Этот раздел явно подчеркивает трактовку Д&Д OO как "Other Orthogonal", а не как "Object-Oriented". По сути дела, ни одно из положительных OO-утверждений не имеет прямого отношения к объектной ориентации.
- В языке D должна допускать проверка типов во время компиляции.
- Если в языке D допускается определение некоторого типа T' как подтипа некоторого супертипа T, то такая возможность должна соответствовать некоторой четко определенной и общепризнанной модели.
- Если в языке D допускается определение типа T' как подтипа некоторого другого типа T, то это не противоречит тому, чтобы T' определялся как подтип и некоторого иного типа, который не является типом T или каким-либо супертипом T (если требования OO-утверждения 2 не запрещают такую возможность).
- Язык D должен быть вычислительно полным. В языке D может иметься (но не должна требоваться) поддержка вызова из так называемых "основных программ", написанных на языках, отличных от D. Аналогично, в языке D может иметься (но не должна требоваться) поддержка использования других языков программирования для реализации определяемых пользователями операций.
- Инициация транзакций должны производиться только средствами явного выполнения операции "begin transaction". Завершение транзакции должно производиться только средствами выполнения операций "commit" или "rollback"; фиксация всегда должна быть явной, а откат может быть неявным (если транзакция завершается неуспешно не по своей вине). Если транзакция TX завершается выполнением операции commit ("нормальное завершение"), то изменения, произведенные TX в соответствующей базе данных, должны быть зафиксированы. Если транзакция TX завершается выполнением операции rollback ("ненормальное завершение"), то изменения, произведенные транзакцией TX в соответствующей базе данных, должны быть аннулированы.
- В языке D должны поддерживаться вложенные транзакции, т.е. должно допускаться образование транзакцией-предком TX транзакции-потомка TX' до завершения транзакции TX. При этом:
- TX и TX' должны взаимодействовать с одной и той же базой данных (что в действительности требуется RM-требованием 17).
- Не требуется задержка выполнения TX на время выполнения TX' (хотя это и допускается). Однако TX не должна завершаться до завершения TX'; другими словами, TX' должна полностью содержаться в TX.
- Откат TX должен включать откат TX', даже если TX' завершилась фиксацией. Другими словами, "фиксация" всегда интерпретируется в контексте предка (если он существует) и может быть отменена транзакцией-предком.
- Пусть AggOp - агрегатная операция, такая как SUM. Если аргумент AggOp является пустым, то:
- Если AggOp является сокращенной формой некоторой итеративной бинарной операции Op (в случае SUM это операция "+") и если для Op существует начальное значение (0 в случае SUM), то результатом вызова AggOp должно быть это начальное значение;
- В противном случае результат вызова AggOp должен быть неопределенным.
Последнее OO-утверждение снова явно направлено на избавление от неопределенных значений. Но, во-первых, лично для меня совершенно неочевидно, что при сложении пустого набора чисел должно получиться значение 0. По-моему, это как минимум неясно с позиций интуиции. Во-вторых, во второй части этого утверждения появляется словосочетание "неопределенный результат", но что это значит, формально не поясняется.
Назад |
Содержание |
Вперед
|
|
|
|
|
|
|
|
Новости мира IT:
- 04.02 - Отчёт о развитии Fedora Workstation: AI, Wayland, HDR, MIPI-камеры и Flatpak
- 04.02 - Для борьбы с телефонными мошенниками в России будут использовать ИИ и базу биометрических данных
- 04.02 - Opera представила заботливый браузер Air — он поможет бороться со стрессом и поддерживать концентрацию
- 04.02 - Microsoft причислила к вредоносам средства обхода ограничений для установки Windows 11
- 04.02 - Китай начал антимонопольное расследование против Google в ответ на повышение импортных пошлин США
- 04.02 - OpenAI выпустит ИИ-гаджет, который кардинально изменит взаимодействие человека с компьютером
- 04.02 - Энтузиаст создал клиент Discord для древних ПК на Windows 95 и 98
- 04.02 - «Нестабильная, но многообещающая»: американцы начали тестировать спутниковую связь Starlink для обычных смартфонов
- 04.02 - Суд обязал ЕС выплатить компании Intel €515 млн за отменённый штраф 2009 года
- 31.01 - Apple поставила новый рекорд по числу активных устройств, но рост замедлился
- 31.01 - Первое в мире судно с захватом CO2 из собственных выхлопов скоро отправится в море
- 31.01 - Apple отчиталась о «лучшем за всю историю квартале» вопреки падению продаж iPhone
- 31.01 - Intel завершила год с убытками в $18,8 млрд — продажи Core и Xeon упали, но руководство верит, что скоро всё наладится
- 31.01 - Российские медиа объявили войну пиратам: число заблокированных ссылок в поисковиках удвоилось за год
- 31.01 - Почти половина бизнеса IBM теперь приходится на ПО — компания делает ставку на ИИ и open source
- 27.01 - Microsoft открыл код СУБД DocumentDB, основанной на PostgreSQL
- 27.01 - На соревновании Pwn2Own Automotive 2025 представлено 49 уязвимостей автомобильных систем
- 27.01 - Россия опустилась 8-е место в мире по количеству DDoS-атак в 2024 году
- 27.01 - Биткоин провалился ниже $98 тыс. после обвала акций американских ИИ-компаний
- 27.01 - В Великобритании появится крупнейший в Европе дата-центр, который построят для неназванного гиперскейлера
Архив новостей
|
|
|
|
|
|
|
|
|
|
|
|
|