Раздел 3.2 - Идентификаторы

Ada требует задания имен для процедур, пакетов и многих других конструкций. Эти имена называют идентификаторами. Примерами имен могут быть ``Hello'', ``Launch_Torpedo'', и ``X12''. Идентификатор должен начинаться с буквы, а далее могут следовать как буквы, так и цифры или символы подчеркивания. Как отмечалось в предыдущем уроке, строчные и прописные буквы считаются эквивалентными.

Ниже приведен строгий синтаксис идентификатора в BNF-формате:

идентификатор ::= буква { [ "_" ] буква_или_цифра }
буква_или_цифра ::= буква | цифра

Все символы в идентификаторе являются значимыми, и в Ada-компиляторах максимальная поддерживаемая длина строк и идентификаторов должна быть не менее, чем 200 (!) символов. Скорее всего, вы конечно же, не будете использовать так много, но сама идея является очень гибкой.

Ограничением данного синтаксиса является то, что символы подчеркивания не могут следовать подряд. Это сделано умышленно, так как на некоторых принтерах два последовательных символа подчеркивания выглядят, как один. Кроме того, идентификатор не может начинаться и заканчиваться символом подчеркивания.

Вы можете использовать одиночный символ в качестве идентификатора, но не злоупотребляйте этой возможностью. Если в вашей программе используются только идентификаторы, состоящие из одного символа, будет очень трудно разобраться в ней спустя некоторое время. Лучше всего использовать идентификаторы, которые четко указывают на смысл хранимого или исполняемого. Также, хотя Ada и разрешает использовать символы "L" и "O" в качестве идентификаторов, это нежелательно, так как маленькая буква "L" практически не отличима от единицы (1), а маленькая "О" - от нуля (0) на некоторых системах.


Упражнение:

Даны списки идентификаторов:

  1. Hello, 2Run, Really_Quit
  2. Refresh_Screen, X22

Какой из списков содержит только корректные идентификаторы (не учитывая запятые, которые разделяют их)?

  1. Список 1
  2. Список 2

Вы можете также:

PREVIOUS Перейти к предыдущему разделу

NEXT     Перейти к следующему разделу

OUTLINE  Вернуться к содержанию Урока 3

David A. Wheeler (dwheeler@ida.org)

Перевод: Юрий Королев   Общая редакция перевода: Г.Ю. Сисюк

Исходная копия этого документа находится по адресу "http://www.adahome.com/Tutorials/Lovelace/s3s2.htm".

Исходная копия перевода размещена на сайте http://www.ada-ru.org