Синтаксические правила
Литера-1 может быть любой литерой из набора литер машины.
Если литера-1 должна представлять литеру кавычек, для представления одной литеры кавычек должны использоваться две следующие друг за другом литеры кавычек.
Общие правила
Значением нечислового литерала в рабочей программе является значение, представляемое литерой-1.
Ограничивающие нечисловой литерал кавычки не являются частью значения нечислового литерала.
Все нечисловые литералы относятся к буквенно-цифровой категории.
Числовые литералы
Числовой литерал определяется как строка литер, состоящая из цифр от 0 до 9, знака плюс, знака минус и десятичной точки. Реализация должна разрешать длину числового литерала от 1 до 18 цифр. Правила образования числового литерала следующие:
литерал должен содержать по меньшей мере одну цифру;
литерал не должен содержать более одной литеры знака.
Если указан знак, то он должен быть самой левой литерой в литерале. Если литерал не имеет знака, то он является положительным;
литерал не должен содержать более одной десятичной точки. Десятичная точка рассматривается как подразумеваемая десятичная точка и может занимать в литерале любую позицию, кроме самой правой. Если литерал не содержит десятичной точки, то он является целым числом.
Литерал, составленный по правилам для образования числовых литералов, но заключенный в кавычки, является нечисловым и обрабатывается компилятором как нечисловой;
значением числового литерала является алгебраическая величина, представленная литерами числового литерала. Каждый числовой литерал относится к числовой категории (ч. 6, п. 5.9.1).
Размер числового литерала в терминах литер стандартного формата данных равен количеству составляющих его цифр.
3 н а ч е н и я стандартных констант
. Значения стандартных констант генерируются компилятором. Пользователь может ссылаться на них посредством зарезервированных слов, приведенных ниже. Эти слова при использовании их в качестве стандартных констант не должны заключаться в кавычки. Единственная и множественная форма стандартных констант эквивалентны и могут при употреблении заменяться одна другой.
Значения стандартных констант и зарезервированнь1? слова, используемые для обращения к ним, следующие:
[ALL] ZERO, [ALL] ZEROES ([ВСЕ] НУЛЬ, [ВСЕ] НУЛИ) представляют числовое значение 0 или одну или более литер О из набора литер машины;
[ALL] SPACE, [ALL] SPACES ([ВСЕ] ПРОБЕЛ, [ВСЕ] ПРОБЕЛЫ) представляют одну или несколько литер пробела из набора литер машины;
[ALL] HIGH-VALUE, [ALL] HIGH-VALUES ([ВСЕ] НАИБОЛЬШЕЕ-ЗНАЧЕНИЕ, [ВСЕ] НАИБОЛЬШИЕ-ЗНАЧЕ- НИЯ) — везде, за исключением параграфа SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА), представляют одну или несколько литер, имеющих наибольшую порядковую позицию в программной основной последовательности;
[ALL] LOW-VALUE, [ALL] LOW-VALUES ([ВСЕ] НАИ- МЕНЬШЕЕ-ЗНАЧЕНИЕ, [ВСЕ] НАИМЕНЬШИЕ-ЗНАЧЕНИЯ) ■— везде, за исключением параграфа SPECIAL-NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА), представляют одну или несколько литер, имеющих наименьшую порядковую позицию в программной основной последовательности;[ALL] QUOTE, : [ALL]; QUOTES ([ВСЕ] КАВЫЧКА, [ВСЕ] КАВЫЧКИ) представляет Одну или более литер. Слова QUOTE, QUOTES (КАВЫЧКА, КАВЫЧКИ) не могут использоваться вместо литер кавычек в исходной ^программе для ограничения нечислового литерала. Например/QUOTE ABC QUOTE (КАВЫЧКА АВС КАВЫЧКА) ne-является-йравильніям представлением нечислового литерала «АВС»;
ALL литерал (ВСЕ литерал) представляет всю строку или часть строки, генерируемой последовательной конкатенацией литер, образующих литерал. Литерал должен быть нечисловым. Литерал не может быть стандартной Константой;
[ALL] символическая-литера ([ВСЕ] символическая-лите- ра) представляет одну или! несколько литер, определяемых как значение этой символической литеры в фразе SYMBOLIC CHARACTERS (СИМВОЛИЧЕСКАЯ ЛИТЕРА) параграфа SPECIAL NAMES (СПЕЦИАЛЬНЫЕ-ИМЕНА) (ч. 6, п. 4.5).
Когда стандартная константа представляет собой строку из одной или нескольких литер, длина такой строки определяется компилятором из контекста согласно следующим правилам:
когда стандартная константа указана в фразе VALUE (ЗНАЧЕНИЕ) или когда стандартной константе сопоставляется другое данное, например, в случае'перемещения или сравнения с некоторым данным, строка литер, представленная стандартной константой, повторяется литера за литерой вправо до тех пор, пока результирующая строка не станет' равной или большей по размеру (в литерах) соответствующему данному.
Затем результирующая строка усекается справа до размера (в литерах) соответствующего данного. Такое повторение выполняется независимо от фразы JUSTIFIED (СДВИНУТО), относящейся к этому данному. ... .
когда стандартная константа,: ’ отличная от ALL литерал (ВСЕ литерал), не сопоставляется с другим данным, например, в случае, когда она появляется в операторах DISPLAY (ВЫДАТЬ), STOP (ОСТАНОВИТЬ), STRING (СОБРАТЬ) или UNSTRING (РАЗОБРАТЬ), ее длина равна длине строки в одну литеру;
когда стандартная константа ALL литерал (ВСЕ литерал) не сопоставляется с другим данным, ее длина равна длине литерала.
Стандартная константа может использоваться всюду в форматах вместо литерала, за следующим исключением:
вместо числового литерала разрешается использовать только стандартную константу ZERO, ZEROS, ZEROES (НУЛЬ, НУЛИ);
сопоставление стандартной константы ALL литерал (ВСЕ литерал) при длине литерала больше одной литеры с числовым или числовым редактируемым данным рассматривается в настоящем стандарте как устаревшее средство. При следующем пересмотре стандарта оно будет исключено;
когда стандартная константа используется вместо литерала во фразе ALL литерал (ВСЕ литерал), слово ALL (ВСЕ) избыточно и используется только для удобочитаемости.
За исключением параграфа SPECIAL-NAMES (СПЕЦИАЛЬ- НЫЕ-ИМЕНА), в исходной программе, где используются стандартные константы HIGH-VALUE (НАИБОЛЫПЕЕ-ЗНАЧЕНИЕ) и LOW-VALUE (НАИМЕНЫИЕЕ-ЗНАЧЕНИЕ), действительные литеры, соотнесенные с каждой стандартной константой, зависят от определенного программного алфавита, (ч. 6, пп. 4.4.1, 4.5).
Каждое зарезервированное слово, которое используется для обращения к значению стандартной константы, является отдельной строкой литер, за исключением конструкций, использующих слово ALL (ВСЕ), таких как ALL литерал (ВСЕ литерал), ALL SPACES (ВСЕ ПРОБЕЛЫ) и т. п., которые состоят из двух отдельных строк литер.
Строка литер шаблона
Строка литер шаблона представляется определенной комбинацией набора литер Кобола, используемых в качестве символов, и валютным символом. Объяснение строки литер шаблона и правила, управляющие шаблоном, приведены ниже (ч. 6, п. 5.9).
Любая литера пунктуации, используемая в строке литер шаблона, рассматривается не как знак пунктуации, а как символ спецификации строки литер шаблона.
Статья-комментарий
Статья-комментарий — это статья в разделе идентификации, которая может быть любой комбинацией литер из набора литер вычислительной машины. Статья-комментарий рассматривается в настоящем стандарте как устаревший элемент и будет исключена при следующем пересмотре стандарта.
Понятие машинно-независимого описания данного
Чтобы сделать данные максимально машинно-независимыми, особенности или свойства данных описываются по отношению к стандартному формату данного, а не к формату, ориентированному на оборудование. Этот стандартный формат данного ориентирован на общие применения в обработке данных и использует десятичную систему для представления чисел (независимо от основания системы счисления, используемой в машине) и остальные литеры набора литер Кобола для изображения нечисловых данных.
П о н я т и е логической записи
Чтобы отделить логические характеристики данных от физических характеристик среды памяти данных, используются определенные специальные фразы или набор.фраз, рассматриваемые ниже.
Физические характеристики файла
Физические характеристики файла относятся к представлению данных на вводе или выводе и включают такие особенности как:
группирование логических записей в пределах физических границ среды файла:
средства, с помощью которых файл может быть идентифицирован.
Логические характеристики файла
Логические характеристики файла представлены явным определением каждой логической единицы в самом файле. В Кобол- программе оператор ввода и вывода обращается к одной логической записи.
Важно отметить различие между физической и логической записями. Логическая запись в Коболе — это порция связанной информации, однозначно идентифицируемой и обрабатываемой как единое целое.
Физическая запись — это физическая единица информации, размер и способ записи которой удобен для запоминания данных на входном или выходном устройстве определенной машины. Размер физической записи зависит от оборудования и не находится в прямой связи с размером хранимого файла информации.
Логическая запись может содержаться внутри одной физической записи или несколько логических записей могут содержаться внутри одной физической записи; в случае файлов массовой памяти логическая запись может содержаться в нескольких физических записях. Во входном языке имеются несколько методов для описания взаимосвязи логических и физических записей. После установления взаимосвязи управление доступом к логической записи, связанной с физической записью, обеспечивается взаимодействием объектной программы с предоставляемыми реализацией оборудованием и системами программного обеспечения. В этом документе ссылка на запись означает ссылку на логическую запись, если специально не оговорен термин «физическая запись».
Понятие логической записи применимо не только к файлам данных, но распространяется также на рабочую память. Таким образом, рабочая память может быть сгруппирована в логические записи и определена последовательностью статей описания записи.
При занесении логической записи или извлечении ее из физической записи выполняются все преобразования, требуемые указанной фразой CODE-SET (АЛФАВИТ). При необходимости добавляются или удаляются литеры заполнители. Ни одна из фраз, используемых для описания данных в логической записи, не влияет на эти преобразования.
Понятііе записи.
Описание записи состоит из ряда статей описания данных, которые описывают особенности отдельной записи. Каждая статья описания данных состоит из номера уровня, за которым следует имя, если оно требуется, и далее, при необходимости, следует ряд независимых фраз.
П о и я т и е уровня
Понятие уровня неотъемлемо от понятия структуры логической записи. Это понятие вводится в целях описания подразделений записи для обращения к составляющим ее данным. Подразделение может быть продолжено для возможности обращения к более мелким данным.
Неделимые составляющие записи называются элементарными данными; соответственно запись состоит из последовательности элементарных данных, либо сама запись является элементарным данным.
Для обращения к ряду элементарных данных последние объединяются в группы или групповые данные. Каждая группа представляет названную последовательность, включающую одно или более элементарных данных. Группы, в свою очередь, могут быть объединены в группы из двух или нескольких групп и т. д. Таким образом, элементарное данное может принадлежать более чем одной группе.
Номера уровней
Система номеров уровней задает организацию элементарных данных или групп данных. Записи — наиболее объемлющие данные, им присвоен номер уровня 01. Менее объемлющим данным присваиваются численно большие (не обязательно последовательные) номера уровней, не превосходящие 49. Имеются специальные номера уровней 66, 77, 88, которые являются исключением из этого правила. Каждому используемому номеру уровня в исходной программе соответствует отдельная статья.
Группа включает в себя все группы и элементарные данные, следующие за ней, пока не встретится номер уровня, меньший или равный номеру уровня группы. Все данные, которые подчинены непосредственно некоторому групповому данному, должны описываться с одинаковым номером уровня и иметь номер уровня больший, чем номер уровня, используемый для описания этого группового данного.
Имеется три типа статей, для которых понятие уровня не имеет силы:
статьи, описывающие элементарные данные или группы, вводимые фразой RENAMES (ПЕРЕИМЕНОВЫВАЕТ);
статьи, описывающие несвязанные данные в секциях рабочей ;памяти и связи;статьи, которые описывают имена условий.
Данным, описанным фразой RENAMES (ПЕРЕИМЕНОВЫВАЕТ) с целью перегруппировки данных, присвоен специальный номер уровня 66.
Несвязанным данным, которые не являются подразделением других данных и сами не подразделяются, присвоен специальный номер уровня 77.
Статьям, которые описывают имена условий, соответствующие отдельным значениям условных переменных, присвоен специальный номер уровня 88.
Понятие класса данного
Пять категорий данных (ч. 6, п. 5.9) сгруппированы в три класса: буквенный, числовой и буквенно-цифровой. Для буквенных и числовых данных понятия класс и категория являются синонимами. Буквенно-цифровой класс включает категории буквенноцифровую редактируемую, числовую редактируемую и буквенноцифровую (без редактирования). Каждое элементарное данное- принадлежит одному из классов и одной из категорий. Групповые- данные обрабатываются как буквенно-цифровые данные, независимо от класса элементарных данных, на которые подразделяется это групповое данное. Таблица показывает отношение между классами и категориями данных.