Cтраница 3
Использование идентификаторов тем для контекстного вывода справочной информации не допускается. [31]
![]() |
Характеристики трех типов указателей. [32] |
Указатель в виде идентификатора записи иногда называется символическим указателем. Использование идентификаторов записей в качестве указателей обеспечивает возможность перемещения отдельных записей без изменения всех записей, указывающих на них. Для некоторых файлов это чрезвычайно важно, так как в файл добавляются новые записи, а старые записи перемещаются, чтобы освободить место для хранения вновь вводимых записей. Для файлов, имеющих много указателей и используемых в режиме добавления новых записей, предпочтительнее применять символические указатели, чем адресные. [33]
Идентификатор - это имя, введенное в выражение для резервирования места под значение, которое хранится в поле или элементе управления. На основе использования идентификаторов можно создавать выражения, которые используют информацию, хранящуюся в таблицах, формах, отчетах. Например, [ Дата ] относится к значению поля Дата таблицы СТУДЕНТ. [34]
Внутри блока все использования идентификатора локальны по отношению к этому блоку, если только нет оператора GLOBAL, и поэтому для каждого блока создается своя таблица имен. Общая структура таблицы имен имеет как статическую сторону, определяемую тем, как написана программа, так и динамическую сторону, определяемую тем, в каком порядке блоки выполнялись. Это последняя из особенностей программы, которой мы касаемся в данном описаний. Как только ПК встречает новый блок, обработка старого блока-приостанавливается и вся информация об этом блоке, которая должна быть сохранена для последующей активизации блока ( иногда ее называют записью активизации), отправляется в стек. После этого формируются новый стек и его запись активизации на верхушке старого стека. Конечно, новая запись должна со держать-ссылку на старую запись, для того чтобы после окончания нового блока можно было восстановить старый блок вместе с информацией о его состоянии. [35]
Это противоречие в языке АЛГОЛ разрешает тоже блок. Он позволяет ввести автономное использование идентификаторов, при котором допускается использование в различных блоках одного и того же идентификатора для различных целей. Благодаря таким возможностям составители алгоритмов получают определенную свободу выбора идентификаторов для внутренних величин. [36]
В результате иерархической связи блоков одни и те же данные могут быть и локальными, и глобальными. Принцип локализации описаний допускает использование одинаковых идентификаторов для обозначения различных видов данных при условии, что область их действия не пересекается. [37]
![]() |
Направленный граф, описывающий вычисление значения функции. [38] |
Другой вид мультипроцессорной обработки воплощен в потоковых машинах. Одним из принципов потоковой архитектуры является использование кодовых идентификаторов, или маркеров, для одновременного прохождения данных в процессах. [39]
Объекты списка разделяются запятыми. Начальные значения устанавливаются этим соответствием. При использовании идентификатора массива в списке объектов предполагается, что всем элементам массива присваиваются начальные значения. Тип значения должен совпадать с типом объекта, которому присваивается значение. [40]
Это определение означает, что добавление справа к идентификатору буквы или цифры переводит один идентификатор в другой. Таким образом, образуется цепочка идентификаторов, в которой каждый последующий идентификатор включает в себя предыдущий; в начале этой цепочки обязательно стоит идентификатор, состоящий из одной буквы - вот почему мы определили ранее идентификатор как последовательность букв и цифр, начинающуюся с буквы. В Subset Algol 60 на использование идентификаторов наложено дополнительное ограничение: внутри одного блока все идентификаторы, представляющие разные объекты, должны различаться по первым шести знакам. [41]
Тип данных задает множество однородных значений. Язык позволяет пользователю конструировать собственные типы данных и посредством определения типа вводить идентификатор, именующий сконструированный тип. Во всех описываемых ниже конструкциях употребление какого-либо типа автоматически разрешает использование соответствующего идентификатора типа. [42]
![]() |
Диаграмма области действия явного, неявного и контекстуального описания данных. [43] |
Например, дано использующее вхождение - GO ТО М, а метки ни в одной доступной зоне нет. В результате М рассматривается как арифметическая величина, что недопустимо в операторе перехода. Идентификация должна быть однозначной, в противном случае разобраться в назначении и правильности использования идентификаторов очень трудно. Поэтому описание одинаковых идентификаторов в одном блоке не допускается. [44]
Можно заключить, что решение о том, пользоваться ли нелокальными идентификаторами, должно приниматься в зависимости от конкретной задачи. Выдвинутая здесь аргументация не применима к программе длиной в сотни страниц. Многие преподаватели программирования с гораздо большим усердием, чем мы в этой книге, доказывают, что использование нелокальных идентификаторов всегда плохо. На самом деле, однако, оказывается, что большинство нетривиальных программ имеют глобальные идентификаторы, причем в результате они оказываются более наглядными. [45]