ISO/IEC TR 25438:2006 Информационные технологии — Common Language Infrastructure (CLI) — Технический отчет: Common Generics - Стандарты и спецификации PDF

ISO/IEC TR 25438:2006
Информационные технологии — Common Language Infrastructure (CLI) — Технический отчет: Common Generics

Стандартный №
ISO/IEC TR 25438:2006
Дата публикации
2006
Разместил
International Organization for Standardization (ISO)
Последняя версия
ISO/IEC TR 25438:2006
сфера применения
Стандартные библиотеки CLI (ISO/IEC 23271) предоставляют набор общих типов, которые могут использоваться несколькими языками. С добавлением дженериков в CLI стандартные библиотеки были расширены и теперь включают ряд распространенных универсальных типов, в частности коллекций. Однако в настоящее время эти библиотеки не включают в себя множество простых универсальных типов, встречающихся в различных языках. Любой язык, использующий эти общие типы, должен реализовывать их, а не полагаться на библиотеку CLI, тем самым снижая совместимость языков. В настоящем техническом отчете рассматривается эта проблема, предоставляя ряд таких распространенных типов. Универсальные кортежи (типы продуктов) являются стандартными для ряда языков: C++ (пара шаблонов), Ada, Haskell и Standard ML (SML). Однако языки различаются количеством предопределенных размеров кортежей, поддерживаемых их стандартными библиотеками; например, C++ предоставляет только один (пара), тогда как Haskell предоставляет восемь (размеры от 2 до 9), а SML допускает кортеж любого размера. В данном техническом отчете представлено девять (размеров от 2 до 10). Универсальное программирование поощряет программирование «более высокого порядка», когда универсальные функции (методы) принимают аргументы типа функции (делегата), которые имеют универсальные типы. Примеры включают ограничения Ada with и общие ограничения, а также аргументы функций в Haskell и SML. В CLI значения функций предоставляются в виде делегатов, поэтому в этом предложении определяются стандартные универсальные типы делегатов для функций (которые возвращают значение) и процедур (которые этого не делают). Еще два типа, встречающиеся в ряде языков, представляют собой необязательный тип, который либо содержит значение какого-либо другого типа, либо указывает на отсутствие такого значения; и любой тип, который содержит значение одного из двух возможных типов и указание того, какой из них присутствует. Данное предложение обеспечивает обе эти возможности. Примечание. Необязательный тип аналогичен типу System.Nullable, но отличается от него. Наконец, в существующих универсальных языках была обнаружена необходимость использования типа-заполнителя, когда конкретный универсальный параметр не требуется для конкретного использования универсального типа. Для этой цели часто предоставляется стандартный тип с одним значением, часто называемый Unit или Void. Данный технический отчет включает такой тип.

ISO/IEC TR 25438:2006 История

  • 2006 ISO/IEC TR 25438:2006 Информационные технологии — Common Language Infrastructure (CLI) — Технический отчет: Common Generics



© 2023. Все права защищены.