Объявление (информатика): различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Добавил две главы, переведенный с польского
Строка 31:
 
причём объявление и определение могут объединяться или указываться отдельно в различных местах исходного кода (вплоть до разных файлов).
 
== Место объявления ==
Объявление в [[Исходный код|исходном коде]] как правило должны предшествовать первому употреблению данного идентификатора в программе. Объявление представляет собой информацию для транслятора, которая сама по себе не генерирует [[Машинный код|исполняемого кода]] (но зачастую приводит к [[Динамически распределяемая память|выделению памяти]]).
 
Синтаксис большинства языков программирования предусматривает указание объявления в определённом месте исходного кода. Это или специальная секция программы (модуля, подпрограммы, пакета), или начало определённого блока (то есть все объявления должны быть в тексте программы перед первой инструкцией данного блока).
 
== Виды объявлений ==
Объявление может быть:
* неявным
* явным
** полным
** частичным
 
;Неявное объявление
Неявные объявления используются в языках программирования, которые допускают употребление идентификатора без его явного объявления. В этом случае транслятор должен иметь механизм добавления к идентификатору атрибутов на основании определённых методов:
* по умолчанию
* неявно
* исходя из контекста
 
Неявные объявления могут приводить к ошибкам, например, буквенная ошибка в идентификаторе станет причиной новой переменной, тем самым возникнет ошибка в действии программы.
 
;Явное объявление
Явные декларации могут быть полными или частичными. Частичные объявления могут применяться в случаях:
* несимметричная структура атрибутов (напр. в объявлении указание атрибута EXTERNAL может обозначать внешний объект (переменную, процедуру и т. п.), определённый в другом модуле, а отсутствие его указания будет означать внутренний объект (описываемый данным объявлением в данном модуле), причём отсутствие явного указания атрибута возможно будет противоположно для EXTERNAL (например, INTERNAL),
* механизм подстановки атрибутов применяют здесь схожие принципы дополняния атрибутов с методами для неявных объявлений (например, могут существовать атрибуты EXTERNAL и INTERNAL, причём отсутствие явного указания противоположного атрибута для какого-либо из них, будет обозначать указание одного из их, например, INTERNAL).
 
== Примеры объявлений в языках ==