Статические структуры относятся к разряду непримитивных
структур, которые, фактически, представляют собой структурирован-
ное множество примитивных, базовых, структур. Например, вектор
может быть представлен упорядоченным множеством чисел. Поскольку
по определению статические структуры отличаются отсутствием из-
менчивости, память для них выделяется автоматически - как прави-
ло, на этапе компиляции или при выполнении - в момент активизации
того программного блока, в котором они описаны. Ряд языков прог-
раммирования (PL/1, ALGOL-60) допускают размещение статических
структур в памяти на этапе выполнения по явному требованию прог-
раммиста, но и в этом случае объем выделенной памяти остается не-
изменным до уничтожения структуры. Выделение памяти на этапе ком-
пиляции является столь удобным свойством статических структур,
что в ряде задач программисты используют их даже для представле-
ния объектов, обладающих изменчивостью. Например, когда размер
массива неизвестен заранее, для него резервируется максимально
возможный размер.
Каждую структуру данных характеризуют её логическим и физи-
ческим представлениями. Очень часто говоря о той или иной струк-
туре данных, имеют в виду её логическое представление. Физическое
представление обычно не соответствует логическому, и кроме того,
может существенно различаться в разных программных системах. Не-
редко физической структуре ставится в соответствие дескриптор,
или заголовок, который содержит общие сведения о физической
структуре. Дескриптор необходим, например, в том случае, когда
граничные значения индексов элементов массива неизвестны на этапе
компиляции, и, следовательно, выделение памяти для массива может
быть выполнено только на этапе выполнения программы (как в языке
PL/1, ALGOL-60). Дескриптор хранится как и сама физическая струк-
тура, в памяти и состоит из полей, характер, число и размеры ко-
торых зависят от той структуры, которую он описывает и от приня-
тых способов ее обработки. В ряде случаев дескриптор является со-
вершенно необходимым, так как выполнение операции доступа к
структуре требует обязательного знания каких-то ее параметров, и
эти параметры хранятся в дескрипторе. Другие хранимые в дескрип-
торе параметры не являются совершенно необходимыми, но их исполь-
зование позволяет сократить время доступа или обеспечить контроль
правильности доступа к структуре. Дескриптор структуры данных,
поддерживаемый языками программирования, является "невидимым" для
программиста; он создается компилятором и компилятор же, формируя
объектные коды для доступа к структуре, включает в эти коды ко-
манды, обращающиеся к дескриптору.
Статические структуры в языках программирования связаны со
структурированными типами. Структурированные типы в языках прог-
раммирования являются теми средствами интеграции, которые позво-
ляют строить структуры данных сколь угодно большой сложности. К
таким типам относятся: массивы, записи (в некоторых языках -
структуры) и множества (этот тип реализован не во всех языках).