Cтраница 1
Локализация идентификатора, представляющего метку, имеет тот же смысл, что и в случае, когда идентификатор представляет любой другой объект. В частности, нельзя извне перейти по метке внутрь какого-либо блока, так как вне этого блока данная метка недоступна. [1]
![]() |
Схематический пример локализации меток в блоках. [2] |
Во-первых, локализация идентификаторов в блоке позволяет программировать большие задачи по частям, независимо друг от друга, причем разными лицами, не опасаясь противоречия в обозначениях. [3]
Для иллюстрации принципа локализации идентификаторов рассмотрим несколько искусственно построенный пример двух блоков, один из которых входит в состав другого. [4]
Однако следует руководствоваться принципом локализации идентификаторов в блоках, из которого вытекает, что идентификаторы п и i, локальные, соответственно, в воображаемом блоке и в преобразованном теле процедуры, обозначают там другие величины, не те, которые обозначены теми же идентификаторами в основном блоке. [5]
Однако следует руководствоваться принципом локализации идентификаторов в блоках, из которого вытекает, что идентификаторы п и г, локальные, соответственно, в воображаемом блоке и в преобразованном теле процедуры, обозначают там другие величины, не те, которые обозначены теми же идентификаторами в основном блоке. [6]
Второй вопрос касается уточнения понятия локализации идентификаторов в блоке. Если объект, представляемый локализованным в каком-либо блоке идентификатором, является простой переменной или массивом, то при каждом входе в этот блок значение данного объекта не определено. Поэтому прежде, чем использовать значения переменных, связанных с этим объектом, им нужно сначала присвоить какие-то значения. Объекты, которые представлены вне данного блока идентификаторами, локализованными в этом блоке, оказываются доступными после выхода из него, причем ( в случае простой переменной или массива) они будут иметь после выхода из данного блока те же значения, что и перед входом в него. [7]
Блочная структура построения программ и принцип локализации идентификаторов позволяют при разработке программ получить дополнительные преимущества. [8]
Метка, представленная идентификатором метки, найденным в результате вычисления именующего выражения, определяется в соответствии с правилами локализации идентификаторов в блоках, сформулированными в предыдущем разделе. Может случиться, что эта метка находится за пределами блока Вд, одним из операторов которого является выполняемый оператор перехода. Пусть идентификатор метки локален в блоке В2, охватывающем блок Ва. Тогда выполнение блока В1 ( а также всех блоков, содержащих блок Вг и содержащихся в блоке В2, прекращается. При этом перестают существовать все объекты, представленные всеми идентификаторами, локальными в этих блоках. [9]
Метка, представленная идентификатором метки, найденным в результате вычисления именующего выражения, определяется в соответствии с правилами локализации идентификаторов в блоках, сформулированными в предыдущем разделе. [10]
Отыскивается описание процедуры с этим идентификатором. При этом учитывается принцип локализации идентификаторов: сначала выясняется, не описан ли этот идентификатор в том же блоке, где содержится оператор процедуры, если нет, то проверяется объемлющий блок, затем следующий объемлющий блок и так далее. [11]
Точнее, установим, что начинающие описание процедуры описатель типа ( если он есть), описатель procedure и идентификатор описываемой процедуры как бы составляют открывающую скобку begin фиктивного блока, в то время как закрывающая скобка end этого блока подразумевается непосредственно перед точкой с запятой, следующей за описанием рассматриваемой процедуры. Для двух любых блоков, включая фиктивные, справедливо утверждение о том, что либо они не пересекаются, либо один из них содержится в другом. Понимая под термином блок как определенные синтаксисом блоки, так и только что описанные фиктивные блоки, можно сформулировать правила локализации идентификаторов следующим образом. [12]