Если набор литер содержит меньше 72 литер, недостающие ли­теры могут быть заменены парами литер. Такая замена рассмат­ривается как устаревшее средство в этом варианте стандарта и будет исключена при следующем пересмотре стандарта.

  1. Структура языка

Отдельные литеры языка связываются в строки литер и раздели­тели. Разделители определяют границы строк литер. Допуска­ется несколько идущих подряд разделителей. Последователь­ность строк литер и разделителей образует текст исходной прог­раммы.

  1. Разделители

Разделителями является цепочка из одной или нескольких ли­тер. Правила образования разделителей следующие:

литера пунктуации пробел является разделителем. Всюду, где пробел используется в качестве разделителя или части разде­лителя, может стоять несколько пробелов. Все пробелы, следую­щие непосредственно за разделителями: запятой, точкой с запятой 130или точкой, -являются частью этих разделителей и не рассматри­ваются как отдельный разделительный пробел;

  1. литеры пунктуации запятая (если она не используется в -строке литер шаблона) и точка с запятой, за которыми следует пробел, являются разделителями и могут использоваться везде, где используется разделитель пробел. Они могут использоваться для удобочитаемости программы;

  2. литера пунктуации точка, за которой следует цробел, явля­ется разделителем (разделитель точка). Она должна использо­ваться только для указания конца предложения или там, где это указано в форматах;

  3. литеры пунктуации правая и левая скобки являются разде­лителями. Скобки могут проставляться (при соблюдении балан­са левых и правых скобок) как ограничители в арифметических выражениях, для условий, индексов и модификаторов ссылки;

  4. литера пунктуации «(кавычки) является разделителем. Не­посредственно перед открывающими кавычками должен стоять пробел или левая скобка; непосредственно за закрывающими ка­вычками, соответствующими открывающим кавычкам, должен стоять один из разделителей: пробел, запятая, точка с запятой, точка или правая скобка;

  5. ограничители псевдотекста являются разделителями. Не­посредственно перед открывающим ограничителем псевдотекста должен стоять пробел; за закрывающим ограничителем псевдотек­ста должен стоять один из разделителей: пробел, запятая, точка с запятой или точка.

Ограничители псевдотекста могут использоваться только в паре, ограничивая псевдотекст;

  1. литера пунктуации двоеточие (:) является разделителем и должна использоваться только там, где это указано в общих фор­матах;

  2. разделитель пробел может быть проставлен по желанию непосредственно перед любым разделителем, однако следует учи­тывать:

  1. правила, определенные форматом представления (п. 7 нас­тоящей части);

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

  3. в случае открывающего ограничителя псевдотекста предше­ствующий пробел необходим;

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

Любая литера пунктуации, которая используется как часть спецификации строки литер шаблона или числового литерала, рас­сматривается не как литера пунктуации, а как символ, используе­мый в спецификации строки литер шаблона или числового литера­ла. Строки литер шаблона ограничиваются только разделителями: пробелом,запятой,точкой с запятой или точкой.

Правила, установленные для образования разделителей, не применяются к литерам, которые составляют нечисловые литера­лы, статьи-комментарии или строки комментария.

  1. Строки литер

Строка литер есть литера или последовательность смежных литер, которые образуют литерал, слово Кобола, строку литер шаблона или статью-комментарий. Строка литер ограничивается разделителями.

  1. Слова Кобола

Словом Кобола является строка литер, состоящая не более чем из 30 литер и образующая слово, определенное пользователем, системное имя или зарезервированное слово. Каждая литера сло­ва Кобола принадлежит набору букв, цифр и дефиса. Дефис не может быть первой или последней литерой слова. Каждая строч­ная буква рассматривается как эквивалент соответствующей ей прописной буквы. В исходной программе зарезервированные сло­ва и слова, определенные пользователем, образуют непересекаю- щиеся множества; системные имена и слова, определенные поль­зователем, образуют пересекающиеся множества. Одно и то же слово Кобола может использоваться как системное имя и как сло­во, определенное пользователем, внутри исходной программы. От­дельное появление такого слова Кобола классифицируется контек­стом статьи или фразы, в котором оно появляется.

  1. Слова, определенные пользователем

Словом, определенным пользователем, является слово Кобо­ла, задаваемое пользователем в соответствии с форматом фразы или оператора. Каждая литера такого слова выбирается для анг­лийской нотации из набора литер А, ..., Z, 0, 1, ..., 9, - (для рус­ской нотации из набора литер А, . . ., Я, D, F, G, I, J, L, N, Q, R, S, U, V, W, Y, Z, 0, 1, 2, ..., 9, -). Слово не может начинаться или заканчиваться дефисом. Имеются следующие типы слов, оп­ределенных пользователем:

  1. Имя алфавита;

  2. Имя библиотеки;

  3. Имя данного;

  4. Имя записи;

  5. Имя индекса;

  6. Имя класса;

  7. Имя коммуникации;

  8. Имя отчета;

  9. Имя параграфа;

  10. Имя программного модуля;

  11. Имя программы;

  12. Имя секции; , .

  13. Имя текста;

  14. Имя условия;

  15. Имя файла;

  16. Мнемоническое имя;

  17. Номер сегмента;

  18. Номер уровня;

  19. Символическая литера.

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

  1. Имена алфавитов;

  2. Имена библиотек;

  3. Имена индексов;

  4. Имена классов;

  5. Имена коммуникаций;

  6. Имена отчетов;

  7. Имена параграфов;

  8. Имена программных модулей;

  9. Имена программ;

  10. Имена секций; і

  11. Имена текстов;

  12. Имена условий, имена данных, имена записей;

  13. Имена файлов;

  14. Мнемонические имена;

  15. Символические литеры.

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

За исключением имени параграфа, имени секции, номера уров­ня и номера сегмента, все слова, определенные пользователем, должны содержать по крайней мере одну буквенную литеру. Но­мера сегментов и номера уровней могут повторяться: представле­ние номера сегмента или номера уровня может совпадать с любым другим номером сегмента или номером уровня.

  1. Имя условия

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

Имена условий могут быть определены в разделе данных или в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) разде­ла оборудования, где переключателям, определенным реализаци­ей, должно быть приписано имя условия для состояния «включено» или «выключено», или для того и другого.

Имя условия используется для сокращения записи условия от­ношения, определяющего, что соответствующая условная пере­менная равна одному из множества значений, предписанных этому имени условия. Имя условия используется также в оператора SET (УСТАНОВИТЬ), указывая, что соответствующее значение долж­но быть помещено в условную переменную.

  1. Мнемоническое имя

Мнемоническое имя — это слово, определенное пользователем, которое ставится в соответствие имени реализации. Это соответст­вие устанавливается в параграфе SPECIAL-NAMES (СПЕЦИ­АЛЬНЫЕ-ИМЕНА) раздела оборудования (ч. 6, п. 4.5).

  1. Имя параграфа

Именем параграфа является слово, которое называет параграф в разделе процедур. Имена параграфов эквивалентны тогда и только тогда, когда они составлены из одной и той же последова­тельности одного и того же количества цифр и (или) других ли­тер.

  1. Имя секции

Имя секции — слово, которое называет секцию в разделе про­цедур. Имена секций эквивалентны только тогда, когда они сос­тавлены из одной и той же последовательности одного и того же количества цифр и (или) других литер.

  1. Другие имена, определяемые пользователем

Спецификации всех других типов слов, определяемых пользо­вателем (см. ч. 3).

  1. Систем н ые имена

Системным именем является слово Кобола, которое использу­ется для связи с операционной средой. Правила для образования системных имен определяются реализацией с тем ограничением, что каждая литера, используемая при образовании системного имени, должна быть выбрана из набора литер для слов, определен­ных пользователем (см. п. 4.2.2.1.1 настоящей части), причем «-» не может быть первой или последней литерой системного имени.

Имеются следующие типы системных имен:

  1. Имя машины;

  2. Имя реализации;

Имя языка.В каждой реализации эти.три типа,системных имен образуют непересекающиеся множества; отдельное. системное имя может принадлежать только одному из них. Для каждого из перечислен­ных типов системных имен имее.тся определение (см. ч. 3).

  1. 3 а р е з е р в и р о в а{н Н;ые слов а

Зарезервированным еловом ; является слово Кобола из опреде­ленного списка слов, которые могут быть использованы в исход­ной Кобол-программе, но которые не могут использоваться как слова, определяемые пользователем, или кар. системные имена. За­резервированные слова могут, использоваться только в соответст­вии с общими форматами (п. 8.настоящей части).

Имеются следующие типы-зарезервированных слов:

  1. Обязательные слова;

  2. Необязательные слова; .....

  3. Слова специального.назначения./

  1. Обязательные слова. ...

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

  1. ключевые слова. В каждом формате такие слова записаны прописными буквами и подчеркнуты;

  2. слова-специальные литеры. Это знаки арифметических опе­раций и литеры отношения. ....

  1. Необязательные слова

Внутри каждого из форматов слова, записанные прописными буквами и не подчеркнутые, называются необязательными и мо­гут включаться в текст по желанию пользователя для придания тексту удобочитаемости. Наличие или отсутствие необязательного слова внутри формата не изменяет семантики Кобол-программы, в которой оно используется.

  1. Слова специального назначения

Имеются два типа слов специального назначения:

  1. Специальные регистры;

  2. Стандартные константы.

  1. Специальные регистры

Для ссылок на специальные регистры используются определен­ные зарезервированные слова. Специальными регистрами являют­ся фиксированные поля памяти вычислительной машины, которые главным образом используются для запоминания информации, по­лучаемой при выполнении специфических функций Кобола. Если не оговорено противное, для каждой программы создается один специальный регистр каждого типа. Специальный регистр может использоваться в общих форматах всюду,- где используются имена данных или идентификаторы, принадлежащие той же категории, что и специальный регистр, если не оговорено противное.

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

Специальными регистрами являются следующие:

  1. DEBUG-ITEM (ДАННЫЕ-ОТЛАДКИ) (ч. 15, п. 1.3.2);

  2. LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) (ч. 7, п. 1.3.8);

  3. LINE-COUNTER (СЧЕТЧИК-СТРОК) (ч. 13, п. 1.2.3);

  4. PAGE-COUNTER (СЧЕТЧИК-СТРАНИЦ) (ч. 13, п. 1.2.2).

  1. Стандартные константы

Определенные зарезервированные слова используются для именования специальных констант и ссылок на них. Эти зарезер­вированные слова определены в п. 4.2.2.2.3 в настоящей части.

  1. Литералы

Литерал — строка литер, значение которой определяется упо­рядоченным набором литер, из которых она составлена, или специ­фикацией зарезервированного слова, являющегося стандартной константой. Каждый литерал принадлежит к одному из двух ви­дов: числовому или нечисловому.

  1. Н е ч и с л о в ы е литералы

Нечисловой литерал определяется как ограниченная кавычка­ми слева и справа строка литер. Реализация должна допускать длину литерала от одной до 160 литер. Длина нечислового литера­ла относится к его представлению в объектной программе.

  1. Общий формат

«{литера-1}...»