Непейвода Н.Н. Программирование. Раздел 3

Непейвода Н.Н. Программирование. Страница 299

если в результате выполнения действий, указанных в правилах (а), (Ь) и (с), имя остается ненайденным, то оно считается неопределенным, а его использование — некорректным.

Перечисленные правила локализации имен языковых объектов зачастую до­полняются еще одним соглашением (это сделано, например, в языкеPascal):

поиск использованного в программе или подпрограмме имени осуще­ствляется среди тех описаний (какоголибо контекста), которые тексту­ально предшествуют точке использования имени.

Правило (е) впервые появилось в связи с идеей так называемой однопро­ходной трансляции (построения объектного кода за один просмотр текста программы), но в дальнейшем оказалось, что оно хорошо согласуется с принципами модульного и структурного программирования, и задача транс­ляции отошла на второй план.

Правила локализации имен — второе по важности после именования средство языка, предопределяющее его возможности в части использования процедур. Они отвечают на вопросы о регламенте взаимоотношения текста процедуры и текста программы.

Для языка С/С++, где вложенных процедур нет, все представляется до­вольно просто, и следующая схема программы иллюстрирует введенные понятия.

Из приведенных схем видно, как глобальные имена экранируются локаль­ными описаниями и, тем самым, становятся недоступными во вложенных блоках.

Все сказанное выше про локализацию имен при практическом приме­нении необходимо согласовывать с возможностями используемой системы программирования. Применительно к языку С/С++ нужно иметь в виду нали­чие препроцессора, который, в принципе, 'не знает' языка, но, тем не менее, оперирует с именами программного текста. Среди прочего действия препро­цессора включают в себя подстановку определенным образом оформленных фрагментов вместо их имен, которые определяются операторами #с!еАпе. В результате в программном тексте появляются как нормальные, относящи­еся к языку имена, так и имена обозначений текстовых фрагментов. Так вот, если первые подчиняются только что определенным правилам локализации, то вторые — нет. Они подчиняются правилам, которые "знает" препроцес­сор: если имя определено оператором #с!еАпе как обозначение некоторого

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама