Читайте также:
|
|
Паралельным явлением в совершенствовании техники прог-ния стало развитие концепции типа даных. Сталкиваясь в своей жизни с объектами различной природы, чел привык объединять в одну группу объекты со сходными признаками и применять к ним одни и те же способы обработки, наиболее им св-веные. Типы даных, порождаемые конст-рами типов, назются структурными типами даных. Их исп-ние позволяет упростить работу прог-иста при отображении структур обрабатываемых даных на структуры, предлагаемые ЯП. При работе со структурными даными конкретного типа даных прог-ист пользуется операциями, предоставляемыми этим типом даных. Тем не менее, ограниченое кол-во конст-ров типов не позволяет адекватно представить в проге любой необходимый тип даных с тем наборам операций, кот отражает семантику даного типа даных. Чтобы дать прог-исту возможность определять в проге нужные ему типы даных (в дополнение к стандартным и структурным типам даных), разработана концепция абстр-ых типов даных, обладающих интерфейсом и реализацией. Вся необходимая юзеру информация (имена операций, типы их парамов и типы рез-тов) сосредотачивалась в доступном ему интерфейсе, а детали реализации типа даных (представление его значений посредством значений известных типов даных и тела операций) были скрыты от него. Реализация типа даных в свою очередь, состоит из представления и тел операций. Интерфейс типа даных предоставляет юзеру информацию об именах и профилях операций. Имя операции — это либо идентификатор, либо — специальный символ (знак). Профиль операции указывает имена типов аргументов и типа рез-та операции. Если интерфейс типа даных фиксируется автором языка прог-ния, а реализация — разработчиком компилятора (интерпретатора), то такой тип даных назется встроеным, или стандартным. Если же и интерфейс и реализация создаются програмирующим на даном языке, то такой тип даных назется произвольным, или юзерским. Представление встроеного типа всегда выражается каким-то кол-вом байтов памяти. Т.к. представление юзерского типа в конечном итоге может быть выражено в байтах, имеет смысл операция определения размера типа даных. Как встроеные, так и юзерские типы даных разделяются, в свою очередь, на конкретные и родовые (парамизованые) типы. Конкретный тип характеризует определеное множво значений, он не требует дальнейшего уточнения и готов к непосредственому использованию. Родовой тип характеризует множво множв значений, он обладает парамами и требует конкретизации путем подстановки аргументов. Фактически, родовой тип — это функция высокого уровня (типовая функция), порождающая типы даных с родствеными интерфейсами. Др вариант родового типа даных — это макрос, кот в рез-те макроподстановки превращается в определение конкретного типа даных. По последнему варианту трактуются шаблоны в С++.
Дата добавления: 2015-01-29; просмотров: 27 | Поможем написать вашу работу | Нарушение авторских прав |