Данные характеризуются тремя качествами: семантикой, синтаксисом и прагматикой.
Семантика — это содержательная (смысловая) характеристика данных. Она определяет множество возможных значений чанных и множество операций, которые можно выполнить над значениями данных без потери смысла.
Синтаксис — это формальная характеристика данных, определяющая внешний вид (структуру) данных. Синтаксис основан на стаандартах языка программирования и задается грамматикой, которая включает алфавит и синтаксические правила изображения тех или иных конструкций языка, в частности изображения данных.
Прагматика — это характеристика, определяющая правила использования данных в ЭВМ в результате распознавания смысла (интерпретации) данных, т.е. прагматика данных в ЭВМ — это алгоритмы их обработки.
Комбинации семантической и синтаксической характеристик данных в программировании называют типом данных. Комбинирование большого количества семантической и синтаксической характеристик данных позволяет породить множество титпов данных. Очевидно, что в языке программирования невозможно предусмотреть средства для использования всех возможных типов данных, а поэтому используется лишь ограниченное число типов. Типы данных в современных языках программирования принято делить на две большие группы: скалярные и структурированные.
|
|
Данные скалярных типов рассматриваются как цельные простые неделимые объекты, атомы данных. Стандартными для почти всех современных ЭВМ, поддерживаемыми на конструктивном уровне, являются такие скалярные типы данных, как целый тип, вещественный тип, логический тип, символьный тип, ссылочный тип и д$.
Данные структурированных типов представляются как составные агрегатные объекты, элементы которых могут быть данными одного и того же или различного типа. Значения структурированного типа представляют собой совокупность значений компонентов, относящихся к составляющим типам, и называются составными. Если имеется только один составляющий тип, т.е. все компоненты относятся к одному типу, то он называется базовым типом. Число различных значений, входящих в тип Т, называется мощностью Т. Поскольку составляющие типы также могут быть составными, то можно построить целую иерархию структур, но конечные компоненты структуры должны быть атомарными.
Если для значений некоторого типа существует отношение порядка, то такой тип называется порядковым. К ним относятся целый, логический, символьный, ссылочный типы, а также типы, созданные на основе перечисления всех возможных значений.
В современных системах программирования определено несколько основных структур данных (фундаментальных структур), на основе которых в программе могут строиться более сложные структуры, представляющие собой некоторые абстрактные данные реального мира (абстрактные типы). Такими фундаментальными структурами являются массив, запись и множество. К ним можно отнести с некоторыми ограничениями и последовательные файлы (последовательности). Фундаментальные структуры являются молекулами, с помощью которых строятся усложненные структуры.
|
|
Можно привести следующее толкование структуры [21]. Структурой данных называют совокупность элементов данных, между которыми существуют некоторые отношения, причем элементами данных могут быть как атомарные данные, так и структуры данных. Структуру можно определить как S = (D/R), где D — множество элементов данных, R — Множество отношений между элементами данных. Все связи одного элемента данных с другими образуют элемент отношений, связанный (ассоциированный) с соответствующим элементом данных. Пару, содержащую элемент данных и элемент отношений, назовем элементом структуры (рис. 1.2).
В некоторых случаях отношения между элементами данных настолько просты, что не возникает особой необходимости их отображения, т.е. элементы отношений могут отсутствовать в явном виде, например в массиве, где все элементы имеют один и тот же тип и следуют друг за другом.
Из вышеизложенного можно сделать вывод, что структура данных — это организованная некоторым образом информация, которая может быть описана, создана и обработана программами. Благодаря структурам данных можно выразить содержательный смысл конкретных представлений информации на физических носителях [27]. При описании на языке программирования структура, а во многих случаях и ее составные части получают имена, пп кптопым псушеетвпяется гтостугт к ним. Уточняется какбудут представлены структура в целом и ее составные части с учетом разрешенных операций над структурой и операций над составными частями.
Как и любые данные, структура данных представляется на трех уровнях. На внешнем уровне структура данных описывается как абстрактный объект. При этом определяются ее организация, возможные значения и операции, разрешенные над структурой (внешняя спецификация). Таким образом, определение структуры данных на внещнем уровне эквивалентно определению нового типа данных и его свойств.
Обобщая вышеизложенное, можно определить абстрактный тип данных (АТД) как математическую модель данных с совокупностью операций, определенных в этой модели. Элементами данных абстрактного типа могут быть переменные стандартных типов, структуры и АТД, отличные от определенных в данной модели АТД [3]. Операции, определенные в модели АТД, реализуются как процедуры. Такие процедуры можно рассматривать как обобщение понятия оператора. Таким образом, программисту могут создавать и применять собственные операторы. Эти операторы могут иметь операндами не только данные, определенные в АТД, но и данные стандартных типов и фундаментальные данные, а также данные, определенные в других АТД. Наиболее полное воплощение абстрактные типы данных нашли в системах программирования, поддерживающих объектно-ориентированное программирование.
//символ по коду int code=123; char symb= char(code); | //код по символу char symb=’c’; int code= int(symb); |