Лекция №22Интерфейсы и типы данных: общие положения

Одно из базовых средств при определении интерфейсов в программировании — типы данных. Тип позволяет понять, каким образом следует интерпретировать данные в памяти компьютера и какие операции к этим данным применимы. Роль типов в определении интерфейсов различается в зависимости от выбранной парадигмы программирования.

В процессе развития программной инженерии стала важна возможность описания типов данных, независимых от языка программирования. В частности, такое описание необходимо для решения проблемы взаимодействия компонентов, реализованных в разных средах. Международными организациями ISO и IEC был разработан соответствующий стандарт 11404 «Типы данных общего назначения». В нем содержатся:

Различные языки программирования по-разному реализуют систему типов, описанную в ISO 11404. В процедурных языках (например, C) система типов «плоская» — взаимоотношения между типами не определены. В объектно-ориентированных ЯП типы данных формируют иерархию — все типы или, по крайней мере, большинство, являются потомками базового типа (java.lang.Object в Java, object в Python).

Различается в языках программирования и объем реализованных типов из стандарта 11404. В этом смысле самым характерным является процедурный тип данных, описывающий функции. Первоначально появившись в функциональных ЯП, процедурный тип затем распространился на другие категории языков. Полноценная поддержка функций как типа данных присутствует, например, в объектно-ориентированных Python и JavaScript; в некоторой степени процедурный тип поддерживается в C# (делегаты) и Java 8 (функциональные интерфейсы).

Скачать презентацию