1. Синтаксические правила

  1. Литера-1 может быть любой литерой из набора литер ма­шины.

  2. Если литера-1 должна представлять литеру кавычек, для представления одной литеры кавычек должны использоваться две следующие друг за другом литеры кавычек.

  1. Общие правила

  1. Значением нечислового литерала в рабочей программе яв­ляется значение, представляемое литерой-1.

  2. Ограничивающие нечисловой литерал кавычки не являют­ся частью значения нечислового литерала.

  3. Все нечисловые литералы относятся к буквенно-цифровой категории.

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

Числовой литерал определяется как строка литер, состоящая из цифр от 0 до 9, знака плюс, знака минус и десятичной точки. Реализация должна разрешать длину числового литерала от 1 до 18 цифр. Правила образования числового литерала следующие:

  1. литерал должен содержать по меньшей мере одну цифру;

  2. литерал не должен содержать более одной литеры знака.

Если указан знак, то он должен быть самой левой литерой в лите­рале. Если литерал не имеет знака, то он является положи­тельным;

  1. литерал не должен содержать более одной десятичной точ­ки. Десятичная точка рассматривается как подразумеваемая десятичная точка и может занимать в литерале любую позицию, кроме самой правой. Если литерал не содержит десятичной точки, то он является целым числом.

Литерал, составленный по правилам для образования числовых литералов, но заключенный в кавычки, является нечисловым и обрабатывается компилятором как нечисловой;

  1. значением числового литерала является алгебраическая ве­личина, представленная литерами числового литерала. Каждый числовой литерал относится к числовой категории (ч. 6, п. 5.9.1).

Размер числового литерала в терминах литер стандартного формата данных равен количеству составляющих его цифр.

  1. 3 н а ч е н и я стандартных констант

. Значения стандартных констант генерируются компилятором. Пользователь может ссылаться на них посредством зарезерви­рованных слов, приведенных ниже. Эти слова при использовании их в качестве стандартных констант не должны заключаться в ка­вычки. Единственная и множественная форма стандартных кон­стант эквивалентны и могут при употреблении заменяться одна другой.

Значения стандартных констант и зарезервированнь1? слова, используемые для обращения к ним, следующие:

  1. [ALL] ZERO, [ALL] ZEROES ([ВСЕ] НУЛЬ, [ВСЕ] НУ­ЛИ) представляют числовое значение 0 или одну или более литер О из набора литер машины;

  2. [ALL] SPACE, [ALL] SPACES ([ВСЕ] ПРОБЕЛ, [ВСЕ] ПРОБЕЛЫ) представляют одну или несколько литер пробела из набора литер машины;

  3. [ALL] HIGH-VALUE, [ALL] HIGH-VALUES ([ВСЕ] НАИБОЛЬШЕЕ-ЗНАЧЕНИЕ, [ВСЕ] НАИБОЛЬШИЕ-ЗНАЧЕ- НИЯ) — везде, за исключением параграфа SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА), представляют одну или несколько литер, имеющих наибольшую порядковую позицию в программной основной последовательности;

  4. [ALL] LOW-VALUE, [ALL] LOW-VALUES ([ВСЕ] НАИ- МЕНЬШЕЕ-ЗНАЧЕНИЕ, [ВСЕ] НАИМЕНЬШИЕ-ЗНАЧЕНИЯ) ■— везде, за исключением параграфа SPECIAL-NAMES (СПЕ­ЦИАЛЬНЫЕ-ИМЕНА), представляют одну или несколько литер, имеющих наименьшую порядковую позицию в программной ос­новной последовательности;[ALL] QUOTE, : [ALL]; QUOTES ([ВСЕ] КАВЫЧКА, [ВСЕ] КАВЫЧКИ) представляет Одну или более литер. Слова QUOTE, QUOTES (КАВЫЧКА, КАВЫЧКИ) не могут использоваться вместо литер кавычек в исходной ^программе для ограничения не­числового литерала. Например/QUOTE ABC QUOTE (КАВЫЧ­КА АВС КАВЫЧКА) ne-является-йравильніям представлением не­числового литерала «АВС»;

  5. ALL литерал (ВСЕ литерал) представляет всю строку или часть строки, генерируемой последовательной конкатенацией ли­тер, образующих литерал. Литерал должен быть нечисловым. Ли­терал не может быть стандартной Константой;

  6. [ALL] символическая-литера ([ВСЕ] символическая-лите- ра) представляет одну или! несколько литер, определяемых как значение этой символической литеры в фразе SYMBOLIC CHA­RACTERS (СИМВОЛИЧЕСКАЯ ЛИТЕРА) параграфа SPE­CIAL NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) (ч. 6, п. 4.5).

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

  1. когда стандартная константа указана в фразе VALUE (ЗНАЧЕНИЕ) или когда стандартной константе сопоставляется другое данное, например, в случае'перемещения или сравнения с некоторым данным, строка литер, представленная стандартной константой, повторяется литера за литерой вправо до тех пор, по­ка результирующая строка не станет' равной или большей по раз­меру (в литерах) соответствующему данному.

Затем результирующая строка усекается справа до размера (в литерах) соответствующего данного. Такое повторение выполня­ется независимо от фразы JUSTIFIED (СДВИНУТО), относящей­ся к этому данному. ... .

  1. когда стандартная константа,: ’ отличная от ALL литерал (ВСЕ литерал), не сопоставляется с другим данным, например, в случае, когда она появляется в операторах DISPLAY (ВЫДАТЬ), STOP (ОСТАНОВИТЬ), STRING (СОБРАТЬ) или UNSTRING (РАЗОБРАТЬ), ее длина равна длине строки в одну литеру;

  2. когда стандартная константа ALL литерал (ВСЕ литерал) не сопоставляется с другим данным, ее длина равна длине литера­ла.

Стандартная константа может использоваться всюду в форма­тах вместо литерала, за следующим исключением:

  1. вместо числового литерала разрешается использовать толь­ко стандартную константу ZERO, ZEROS, ZEROES (НУЛЬ, НУ­ЛИ);

  2. сопоставление стандартной константы ALL литерал (ВСЕ литерал) при длине литерала больше одной литеры с числовым или числовым редактируемым данным рассматривается в настоя­щем стандарте как устаревшее средство. При следующем пере­смотре стандарта оно будет исключено;

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

За исключением параграфа SPECIAL-NAMES (СПЕЦИАЛЬ- НЫЕ-ИМЕНА), в исходной программе, где используются стандарт­ные константы HIGH-VALUE (НАИБОЛЫПЕЕ-ЗНАЧЕНИЕ) и LOW-VALUE (НАИМЕНЫИЕЕ-ЗНАЧЕНИЕ), действительные литеры, соотнесенные с каждой стандартной константой, зависят от определенного программного алфавита, (ч. 6, пп. 4.4.1, 4.5).

Каждое зарезервированное слово, которое используется для обращения к значению стандартной константы, является отдель­ной строкой литер, за исключением конструкций, использующих слово ALL (ВСЕ), таких как ALL литерал (ВСЕ литерал), ALL SPACES (ВСЕ ПРОБЕЛЫ) и т. п., которые состоят из двух от­дельных строк литер.

  1. Строка литер шаблона

Строка литер шаблона представляется определенной комбина­цией набора литер Кобола, используемых в качестве символов, и валютным символом. Объяснение строки литер шаблона и прави­ла, управляющие шаблоном, приведены ниже (ч. 6, п. 5.9).

Любая литера пунктуации, используемая в строке литер шаб­лона, рассматривается не как знак пунктуации, а как символ спе­цификации строки литер шаблона.

  1. Статья-комментарий

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

  1. Понятие машинно-независимого описания данного

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

  1. П о н я т и е логической записи

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

  1. Физические характеристики файла

Физические характеристики файла относятся к представлению данных на вводе или выводе и включают такие особенности как:

  1. группирование логических записей в пределах физических границ среды файла:

  2. средства, с помощью которых файл может быть идентифи­цирован.

  1. Логические характеристики файла

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

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

Физическая запись — это физическая единица информации, размер и способ записи которой удобен для запоминания данных на входном или выходном устройстве определенной машины. Раз­мер физической записи зависит от оборудования и не находится в прямой связи с размером хранимого файла информации.

Логическая запись может содержаться внутри одной физиче­ской записи или несколько логических записей могут содержать­ся внутри одной физической записи; в случае файлов массовой памяти логическая запись может содержаться в нескольких физи­ческих записях. Во входном языке имеются несколько методов для описания взаимосвязи логических и физических записей. После ус­тановления взаимосвязи управление доступом к логической за­писи, связанной с физической записью, обеспечивается взаимодей­ствием объектной программы с предоставляемыми реализацией оборудованием и системами программного обеспечения. В этом документе ссылка на запись означает ссылку на логическую за­пись, если специально не оговорен термин «физическая запись».

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

При занесении логической записи или извлечении ее из физиче­ской записи выполняются все преобразования, требуемые указан­ной фразой CODE-SET (АЛФАВИТ). При необходимости добав­ляются или удаляются литеры заполнители. Ни одна из фраз, ис­пользуемых для описания данных в логической записи, не влияет на эти преобразования.

  1. Понятііе записи.

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

  1. П о и я т и е уровня

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

Неделимые составляющие записи называются элементарными данными; соответственно запись состоит из последовательности элементарных данных, либо сама запись является элементарным данным.

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

  1. Номера уровней

Система номеров уровней задает организацию элементарных данных или групп данных. Записи — наиболее объемлющие дан­ные, им присвоен номер уровня 01. Менее объемлющим данным присваиваются численно большие (не обязательно последователь­ные) номера уровней, не превосходящие 49. Имеются специаль­ные номера уровней 66, 77, 88, которые являются исключением из этого правила. Каждому используемому номеру уровня в исходной программе соответствует отдельная статья.

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

Имеется три типа статей, для которых понятие уровня не имеет силы:

  1. статьи, описывающие элементарные данные или группы, вводимые фразой RENAMES (ПЕРЕИМЕНОВЫВАЕТ);

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

Данным, описанным фразой RENAMES (ПЕРЕИМЕНОВЫВА­ЕТ) с целью перегруппировки данных, присвоен специальный но­мер уровня 66.

Несвязанным данным, которые не являются подразделением других данных и сами не подразделяются, присвоен специальный номер уровня 77.

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

  1. Понятие класса данного

Пять категорий данных (ч. 6, п. 5.9) сгруппированы в три клас­са: буквенный, числовой и буквенно-цифровой. Для буквенных и числовых данных понятия класс и категория являются синони­мами. Буквенно-цифровой класс включает категории буквенно­цифровую редактируемую, числовую редактируемую и буквенно­цифровую (без редактирования). Каждое элементарное данное- принадлежит одному из классов и одной из категорий. Групповые- данные обрабатываются как буквенно-цифровые данные, незави­симо от класса элементарных данных, на которые подразделяется это групповое данное. Таблица показывает отношение между клас­сами и категориями данных.