Если набор литер содержит меньше 72 литер, недостающие литеры могут быть заменены парами литер. Такая замена рассматривается как устаревшее средство в этом варианте стандарта и будет исключена при следующем пересмотре стандарта.
Структура языка
Отдельные литеры языка связываются в строки литер и разделители. Разделители определяют границы строк литер. Допускается несколько идущих подряд разделителей. Последовательность строк литер и разделителей образует текст исходной программы.
Разделители
Разделителями является цепочка из одной или нескольких литер. Правила образования разделителей следующие:
литера пунктуации пробел является разделителем. Всюду, где пробел используется в качестве разделителя или части разделителя, может стоять несколько пробелов. Все пробелы, следующие непосредственно за разделителями: запятой, точкой с запятой 130или точкой, -являются частью этих разделителей и не рассматриваются как отдельный разделительный пробел;
литеры пунктуации запятая (если она не используется в -строке литер шаблона) и точка с запятой, за которыми следует пробел, являются разделителями и могут использоваться везде, где используется разделитель пробел. Они могут использоваться для удобочитаемости программы;
литера пунктуации точка, за которой следует цробел, является разделителем (разделитель точка). Она должна использоваться только для указания конца предложения или там, где это указано в форматах;
литеры пунктуации правая и левая скобки являются разделителями. Скобки могут проставляться (при соблюдении баланса левых и правых скобок) как ограничители в арифметических выражениях, для условий, индексов и модификаторов ссылки;
литера пунктуации «(кавычки) является разделителем. Непосредственно перед открывающими кавычками должен стоять пробел или левая скобка; непосредственно за закрывающими кавычками, соответствующими открывающим кавычкам, должен стоять один из разделителей: пробел, запятая, точка с запятой, точка или правая скобка;
ограничители псевдотекста являются разделителями. Непосредственно перед открывающим ограничителем псевдотекста должен стоять пробел; за закрывающим ограничителем псевдотекста должен стоять один из разделителей: пробел, запятая, точка с запятой или точка.
Ограничители псевдотекста могут использоваться только в паре, ограничивая псевдотекст;
литера пунктуации двоеточие (:) является разделителем и должна использоваться только там, где это указано в общих форматах;
разделитель пробел может быть проставлен по желанию непосредственно перед любым разделителем, однако следует учитывать:
правила, определенные форматом представления (п. 7 настоящей части);
в случае разделителя «закрывающая кавычка» предшествующий пробел рассматривается как часть нечислового литерала, а не как разделитель;
в случае открывающего ограничителя псевдотекста предшествующий пробел необходим;
разделитель пробел может по желанию проставляться непосредственно за любым разделителем, за исключением открывающих кавычек, для которых пробел рассматривается как часть нечислового литерала, а не как разделитель.
Любая литера пунктуации, которая используется как часть спецификации строки литер шаблона или числового литерала, рассматривается не как литера пунктуации, а как символ, используемый в спецификации строки литер шаблона или числового литерала. Строки литер шаблона ограничиваются только разделителями: пробелом,запятой,точкой с запятой или точкой.
Правила, установленные для образования разделителей, не применяются к литерам, которые составляют нечисловые литералы, статьи-комментарии или строки комментария.
Строки литер
Строка литер есть литера или последовательность смежных литер, которые образуют литерал, слово Кобола, строку литер шаблона или статью-комментарий. Строка литер ограничивается разделителями.
Слова Кобола
Словом Кобола является строка литер, состоящая не более чем из 30 литер и образующая слово, определенное пользователем, системное имя или зарезервированное слово. Каждая литера слова Кобола принадлежит набору букв, цифр и дефиса. Дефис не может быть первой или последней литерой слова. Каждая строчная буква рассматривается как эквивалент соответствующей ей прописной буквы. В исходной программе зарезервированные слова и слова, определенные пользователем, образуют непересекаю- щиеся множества; системные имена и слова, определенные пользователем, образуют пересекающиеся множества. Одно и то же слово Кобола может использоваться как системное имя и как слово, определенное пользователем, внутри исходной программы. Отдельное появление такого слова Кобола классифицируется контекстом статьи или фразы, в котором оно появляется.
Слова, определенные пользователем
Словом, определенным пользователем, является слово Кобола, задаваемое пользователем в соответствии с форматом фразы или оператора. Каждая литера такого слова выбирается для английской нотации из набора литер А, ..., Z, 0, 1, ..., 9, - (для русской нотации из набора литер А, . . ., Я, D, F, G, I, J, L, N, Q, R, S, U, V, W, Y, Z, 0, 1, 2, ..., 9, -). Слово не может начинаться или заканчиваться дефисом. Имеются следующие типы слов, определенных пользователем:
Имя алфавита;
Имя библиотеки;
Имя данного;
Имя записи;
Имя индекса;
Имя класса;
Имя коммуникации;
Имя отчета;
Имя параграфа;
Имя программного модуля;
Имя программы;
Имя секции; , .
Имя текста;
Имя условия;
Имя файла;
Мнемоническое имя;
Номер сегмента;
Номер уровня;
Символическая литера.
Внутри заданной исходной программы, за исключением любой содержащейся в ней программы, определенные пользователем слова группируются в следующие непересекающиеся множества:
Имена алфавитов;
Имена библиотек;
Имена индексов;
Имена классов;
Имена коммуникаций;
Имена отчетов;
Имена параграфов;
Имена программных модулей;
Имена программ;
Имена секций; і
Имена текстов;
Имена условий, имена данных, имена записей;
Имена файлов;
Мнемонические имена;
Символические литеры.
Все слова, определенные пользователем, за исключением номеров сегментов и номеров уровней, могут принадлежать только одному из этих непересекающихся множеств. Кроме того, все слова, определенные пользователем, в данном непересекающемся множестве либо не должны дублироваться, либо должны допускать установление однозначности, определяемое правилами однозначности ссылок (п. 4.3.8 настоящей части).
За исключением имени параграфа, имени секции, номера уровня и номера сегмента, все слова, определенные пользователем, должны содержать по крайней мере одну буквенную литеру. Номера сегментов и номера уровней могут повторяться: представление номера сегмента или номера уровня может совпадать с любым другим номером сегмента или номером уровня.
Имя условия
Имя условия — имя, поставленное в соответствие специальному значению, множеству значений или области значений внутри полного множества значений, допустимых для некоторого имени данного. Само имя данного называется условной переменной.
Имена условий могут быть определены в разделе данных или в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) раздела оборудования, где переключателям, определенным реализацией, должно быть приписано имя условия для состояния «включено» или «выключено», или для того и другого.
Имя условия используется для сокращения записи условия отношения, определяющего, что соответствующая условная переменная равна одному из множества значений, предписанных этому имени условия. Имя условия используется также в оператора SET (УСТАНОВИТЬ), указывая, что соответствующее значение должно быть помещено в условную переменную.
Мнемоническое имя
Мнемоническое имя — это слово, определенное пользователем, которое ставится в соответствие имени реализации. Это соответствие устанавливается в параграфе SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) раздела оборудования (ч. 6, п. 4.5).
Имя параграфа
Именем параграфа является слово, которое называет параграф в разделе процедур. Имена параграфов эквивалентны тогда и только тогда, когда они составлены из одной и той же последовательности одного и того же количества цифр и (или) других литер.
Имя секции
Имя секции — слово, которое называет секцию в разделе процедур. Имена секций эквивалентны только тогда, когда они составлены из одной и той же последовательности одного и того же количества цифр и (или) других литер.
Другие имена, определяемые пользователем
Спецификации всех других типов слов, определяемых пользователем (см. ч. 3).
Систем н ые имена
Системным именем является слово Кобола, которое используется для связи с операционной средой. Правила для образования системных имен определяются реализацией с тем ограничением, что каждая литера, используемая при образовании системного имени, должна быть выбрана из набора литер для слов, определенных пользователем (см. п. 4.2.2.1.1 настоящей части), причем «-» не может быть первой или последней литерой системного имени.
Имеются следующие типы системных имен:
Имя машины;
Имя реализации;
Имя языка.В каждой реализации эти.три типа,системных имен образуют непересекающиеся множества; отдельное. системное имя может принадлежать только одному из них. Для каждого из перечисленных типов системных имен имее.тся определение (см. ч. 3).
3 а р е з е р в и р о в а{н Н;ые слов а
Зарезервированным еловом ; является слово Кобола из определенного списка слов, которые могут быть использованы в исходной Кобол-программе, но которые не могут использоваться как слова, определяемые пользователем, или кар. системные имена. Зарезервированные слова могут, использоваться только в соответствии с общими форматами (п. 8.настоящей части).
Имеются следующие типы-зарезервированных слов:
Обязательные слова;
Необязательные слова; .....
Слова специального.назначения./
Обязательные слова. ...
Обязательное слово—это. слово, вхождение которого обязательно при использовании формата, содержащего это слово. Имеются два типа обязательных слов:
ключевые слова. В каждом формате такие слова записаны прописными буквами и подчеркнуты;
слова-специальные литеры. Это знаки арифметических операций и литеры отношения. ....
Необязательные слова
Внутри каждого из форматов слова, записанные прописными буквами и не подчеркнутые, называются необязательными и могут включаться в текст по желанию пользователя для придания тексту удобочитаемости. Наличие или отсутствие необязательного слова внутри формата не изменяет семантики Кобол-программы, в которой оно используется.
Слова специального назначения
Имеются два типа слов специального назначения:
Специальные регистры;
Стандартные константы.
Специальные регистры
Для ссылок на специальные регистры используются определенные зарезервированные слова. Специальными регистрами являются фиксированные поля памяти вычислительной машины, которые главным образом используются для запоминания информации, получаемой при выполнении специфических функций Кобола. Если не оговорено противное, для каждой программы создается один специальный регистр каждого типа. Специальный регистр может использоваться в общих форматах всюду,- где используются имена данных или идентификаторы, принадлежащие той же категории, что и специальный регистр, если не оговорено противное.
Если разрешаются уточнения, специальные регистры при необходимости могут уточняться для обеспечения однозначности (п. 4.3.8.1 настоящей части).
Специальными регистрами являются следующие:
DEBUG-ITEM (ДАННЫЕ-ОТЛАДКИ) (ч. 15, п. 1.3.2);
LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) (ч. 7, п. 1.3.8);
LINE-COUNTER (СЧЕТЧИК-СТРОК) (ч. 13, п. 1.2.3);
PAGE-COUNTER (СЧЕТЧИК-СТРАНИЦ) (ч. 13, п. 1.2.2).
Стандартные константы
Определенные зарезервированные слова используются для именования специальных констант и ссылок на них. Эти зарезервированные слова определены в п. 4.2.2.2.3 в настоящей части.
Литералы
Литерал — строка литер, значение которой определяется упорядоченным набором литер, из которых она составлена, или спецификацией зарезервированного слова, являющегося стандартной константой. Каждый литерал принадлежит к одному из двух видов: числовому или нечисловому.
Н е ч и с л о в ы е литералы
Нечисловой литерал определяется как ограниченная кавычками слева и справа строка литер. Реализация должна допускать длину литерала от одной до 160 литер. Длина нечислового литерала относится к его представлению в объектной программе.
Общий формат
«{литера-1}...»