Типовые переменные

Типовые переменные

Ряд авторов, среди которых Ким Брюс (Kim Bruce), Дэвид Шенг (David Shang) и Тони Саймонс (Tony Simons), предложили решение на основе типовых переменных (type variables), значениями которых являются типы. Их идея проста:

[x]. взамен ковариантных переопределений разрешить объявление типов, использующее типовые переменные;

[x]. расширить правила совместимости типов для управления такими переменными;

[x]. считать язык (в остальном) безвариантным;

[x]. обеспечить возможность присваивания типовым переменным в качестве значений типы языка.

Подробное изложение этих идей читатели могут найти в ряде статей по данной тематике, а также в публикациях Карделли (Cardelli), Кастаньи (Castagna), Вебера (Weber) и др. Начать изучение вопроса можно с источников, указанных в библиографических заметках к этой лекции. Мы же не будем заниматься этой проблемой, и вот почему.

[x]. Надлежаще реализованный механизм типовых переменных относится к категории, позволяющей использовать тип без полной его спецификации. Эта же категория включает универсальность и закрепление объявлений. Этот механизм мог бы заменить другие механизмы этой категории. Вначале это можно истолковать в пользу типовых переменных, но результат может оказаться плачевным, так как не ясно, сможет ли этот всеобъемлющий механизм справиться со всеми задачами с той легкостью и простотой, которая присуща универсальности и закреплению типов.

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

Это заставляет нас вернуться к уже рассмотренным механизмам: ограниченной и неограниченной универсальности, закреплению типов и, конечно, наследованию.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

1.3. Переменные

Из книги Программирование на языке Пролог автора Клоксин У.

1.3. Переменные Если вы хотите узнать, что нравится Джону, то было бы утомительно спрашивать «Нравятся ли Джону книги?», «Нравится ли Джону Мэри?» и так далее, получая каждый раз ответ да или нет. Более разумно обратиться к Пролог-системе с просьбой назвать что-нибудь, что


8.1.5.4 Типовые пользователи

Из книги Информационная технология ПРОЦЕСС СОЗДАНИЯ ДОКУМЕНТАЦИИ ПОЛЬЗОВАТЕЛЯ ПРОГРАММНОГО СРЕДСТВА автора Автор неизвестен


Типовые проекции

Из книги AutoCAD 2009 автора Орлов Андрей Александрович

Типовые проекции Использование типовых проекций значительно упрощает просмотр трехмерных объектов. Направление проецирования можно выбрать с помощью команд в меню View ? 3D Views (Вид ? Трехмерные виды). Программа предлагает выбрать шесть типовых проекций и четыре


2.1.2 Типовые конфигурации

Из книги Руководство администратора баз данных Informix. автора Кустов Виктор

2.1.2 Типовые конфигурации В основе систем, разработанных на основе СУБД Informix, лежит принцип архитектуры "клиент-сервер". Клиент - это пользовательская прикладная программа, обеспечивающая взаимодействие (интерфейс) базы данных с пользователем. Всю работу, связанную с


Типовые проекции

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

Типовые проекции Использование типовых проекций значительно упрощает просмотр трехмерных объектов. Направление проецирования можно выбрать с помощью команд группы меню Views (Виды) на вкладке View (Отображение) ленты. Программа предлагает выбрать шесть типовых проекций и


1.9. ТИПОВЫЕ ОШИБКИ ОБУЧАЕМЫХ ПРИ СОСТАВЛЕНИИ ТЕХНИЧЕСКОГО ЗАДАНИЯ

Из книги Технологии программирования автора Камаев В А

1.9. ТИПОВЫЕ ОШИБКИ ОБУЧАЕМЫХ ПРИ СОСТАВЛЕНИИ ТЕХНИЧЕСКОГО ЗАДАНИЯ В приложении 2 приведен пример выполнения учебного технического задания. В примере опущены: лист утверждения, титульный лист и приложения.Главным, что отличает одно ТЗ от другого, является- смысл


Типовые сценарии использования PKI

Из книги Инфраструктуры открытых ключей автора Полянская Ольга Юрьевна

Типовые сценарии использования PKI В лекциях 3, 4 и 5 обсуждалась архитектура, которую можно назвать полнофункциональной PKI (см. табл. 17.2). Были определены компоненты, функции и сервисы инфраструктуры, которая в некотором смысле является совершенной, потому что теоретически


Переменные

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

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


Функции и переменные. Локальные переменные

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

Функции и переменные. Локальные переменные Объявленные ранее функции создают внутри своего тела собственные переменные. Это так называемые локальные переменные. Такие переменные доступны только внутри тела функции, в котором они объявлены. При завершении выполнения


Функции и переменные. Локальные переменные

Из книги Программирование на языке Пролог для искусственного интеллекта автора Братко Иван

Функции и переменные. Локальные переменные Объявленные ранее функции создают внутри своего тела собственные переменные. Это так называемые локальные переменные. Такие переменные доступны только внутри тела функции, в котором они объявлены. При завершении выполнения


16.1. Архитектура, ориентированная на типовые конфигурации 

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

16.1. Архитектура, ориентированная на типовые конфигурации  16.1.1. Основные понятия Под системами, ориентированными на типовые конфигурации (образцы), мы будем понимать программные системы специальной архитектуры. Для некоторых конкретных типов задач такая архитектура


3.4.3. Переменные

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен


Переменные

Из книги IT-безопасность: стоит ли рисковать корпорацией? автора Маккарти Линда


Использовать типовые архитектурные схемы

Из книги C++ для начинающих автора Липпман Стенли

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


3.2. Переменные

Из книги Linux Mint и его Cinnamon. Очерки применителя автора Федорчук Алексей Викторович


Переменные

Из книги автора

Переменные Переменные играют для аргументов команд примерно такую же роль, что и псевдонимы — для команд. То есть избавляют от необходимости мрачного ввода повторяющихся последовательностей символов. Конечно, это — далеко не единственное (а может быть, и не главное)