Представление типа АТД
При программировании с использованием АТД возможны три подхода (они могут быть смешаны):
1) перед началом написания основной программы полностью определить все требуемые типы данных;
2) определить только те характеристики АТД, которые требуются для написания программы и проверки ее синтаксической корректности;
3) воспользоваться готовыми библиотечными определениями.
В каждом из этих подходов имеются свои достоинства и недостатки, но их объединяет то, что при написании программы известны по меньшей мере внешние характеристики всех типов данных. В некотором смысле это означает, что расширен язык программирования.
Подобная внешняя характеристика АТД называется его представлением или спецификацией.
Представление включает имя АТД и набор спецификаций доступных пользователю операций со значениями этого типа.
Со своей стороны, спецификация операции состоит из имени и типов параметров (в последнее время такие спецификации принято называть сигнатурами операций).
Для однозначного определения компилятором того, какая реально функция или процедура должна быть вызвана при обращении к операции, обычно требуют, чтобы сигнатуры всех операций всех АТД, используемых в программе, были различны (мы еще вернемся к этой теме ниже при обсуждении возможностей полиморфизма).
Переменные, используемые для внутреннего представления значений типа называются переменными состояния, а их совокупность состоянием значений.
Иногда исходя из соображений эффективности допускается прямой доступ к некоторым переменным состояния значений типа (путем использования обычных предопределенных операций чтения и записи). В этом случае переменные состояния, доступные в таком режиме, также специфицируются во внешнем представлении типа.