ГОСТ 22558-89 сторінка 21 з 116
П о н я т и е логической записи
Чтобы отделить логические характеристики данных от физических характеристик среды памяти данных, используются опреде
ленные специальные фразы или набор.фраз, рассматриваемые ниже.
Физические характеристики файла
Физические характеристики файла относятся к представлению данных на вводе или выводе и включают такие особенности как:
группирование логических записей в пределах физических границ среды файла:
средства, с помощью которых файл может быть идентифицирован.
Логические характеристики файла
Логические характеристики файла представлены явным определением каждой логической единицы в самом файле. В Кобол- программе оператор ввода и вывода обращается к одной логической записи.
Важно отметить различие между физической и логической записями. Логическая запись в Коболе — это порция связанной информации, однозначно идентифицируемой и обрабатываемой как единое целое.
Физическая запись — это физическая единица информации, размер и способ записи которой удобен для запоминания данных на входном или выходном устройстве определенной машины. Размер физической записи зависит от оборудования и не находится в прямой связи с размером хранимого файла информации.
Логическая запись может содержаться внутри одной физической записи или несколько логических записей могут содержаться внутри одной физической записи; в случае файлов массовой памяти логическая запись может содержаться в нескольких физических записях. Во входном языке имеются несколько методов для описания взаимосвязи логических и физических записей. После установления взаимосвязи управление доступом к логической записи, связанной с физической записью, обеспечивается взаимодействием объектной программы с предоставляемыми реализацией оборудованием и системами программного обеспечения. В этом документе ссылка на запись означает ссылку на логическую запись, если специально не оговорен термин «физическая запись».
Понятие логической записи применимо не только к файлам данных, но распространяется также на рабочую память. Таким образом, рабочая память может быть сгруппирована в логические записи и определена последовательностью статей описания записи.
При занесении логической записи или извлечении ее из физической записи выполняются все преобразования, требуемые указанной фразой CODE-SET (АЛФАВИТ). При необходимости добавляются или удаляются литеры заполнители. Ни одна из фраз, используемых для описания данных в логической записи, не влияет на эти преобразования.
Понятііе записи.
Описание записи состоит из ряда статей описания данных, которые описывают особенности отдельной записи. Каждая статья описания данных состоит из номера уровня, за которым следует имя, если оно требуется, и далее, при необходимости, следует ряд независимых фраз.
П о и я т и е уровня
Понятие уровня неотъемлемо от понятия структуры логической записи. Это понятие вводится в целях описания подразделений записи для обращения к составляющим ее данным. Подразделение может быть продолжено для возможности обращения к более мелким данным.
Неделимые составляющие записи называются элементарными данными; соответственно запись состоит из последовательности элементарных данных, либо сама запись является элементарным данным.
Для обращения к ряду элементарных данных последние объединяются в группы или групповые данные. Каждая группа представляет названную последовательность, включающую одно или более элементарных данных. Группы, в свою очередь, могут быть объединены в группы из двух или нескольких групп и т. д. Таким образом, элементарное данное может принадлежать более чем одной группе.
Номера уровней
Система номеров уровней задает организацию элементарных данных или групп данных. Записи — наиболее объемлющие данные, им присвоен номер уровня 01. Менее объемлющим данным присваиваются численно большие (не обязательно последовательные) номера уровней, не превосходящие 49. Имеются специальные номера уровней 66, 77, 88, которые являются исключением из этого правила. Каждому используемому номеру уровня в исходной программе соответствует отдельная статья.
Группа включает в себя все группы и элементарные данные, следующие за ней, пока не встретится номер уровня, меньший или равный номеру уровня группы. Все данные, которые подчинены непосредственно некоторому групповому данному, должны описываться с одинаковым номером уровня и иметь номер уровня больший, чем номер уровня, используемый для описания этого группового данного.
Имеется три типа статей, для которых понятие уровня не имеет силы:
статьи, описывающие элементарные данные или группы, вводимые фразой RENAMES (ПЕРЕИМЕНОВЫВАЕТ);
статьи, описывающие несвязанные данные в секциях рабочей ;памяти и связи;
статьи, которые описывают имена условий.
Данным, описанным фразой RENAMES (ПЕРЕИМЕНОВЫВАЕТ) с целью перегруппировки данных, присвоен специальный номер уровня 66.
Несвязанным данным, которые не являются подразделением других данных и сами не подразделяются, присвоен специальный номер уровня 77.
Статьям, которые описывают имена условий, соответствующие отдельным значениям условных переменных, присвоен специальный номер уровня 88.
Понятие класса данного
Пять категорий данных (ч. 6, п. 5.9) сгруппированы в три класса: буквенный, числовой и буквенно-цифровой. Для буквенных и числовых данных понятия класс и категория являются синонимами. Буквенно-цифровой класс включает категории буквенноцифровую редактируемую, числовую редактируемую и буквенноцифровую (без редактирования). Каждое элементарное данное- принадлежит одному из классов и одной из категорий. Групповые- данные обрабатываются как буквенно-цифровые данные, независимо от класса элементарных данных, на которые подразделяется это групповое данное. Таблица показывает отношение между классами и категориями данных.
В ы б о р представления литер и основания системы счисления
Значение числового данного может быть представлено в нескольких формах, таких как двоичная или десятичная, в зависимости от оборудования. Кроме того, имеется несколько способов представления десятичных чисел. Так как эти представления являются в действительности комбинациями битов, они обычно называются двоично-кодированной десятичной формой. Выбор основания системы счисления обычно зависит от арифметических возможностей машины. Если допустима более чем одна арифметическая форма, то выбранная форма указывается фразой об использовании. Двоично-кодированная десятичная форма используется также для представления литер и символов, которые являются буквенно-цифровыми данными. Выбор надлежащей двоично-кодированной буквенно-цифровой или двоично-кодированной десятичной формы зависит от возможностей машины и ее внешней среды.
Когда ЭВМ обеспечивает несколько значений представления данных, должен быть использован стандартный формат данных,, если описание данного не оговаривает противного. Если как внешняя среда, так и машина допускают более чем одну форму представления или если внешняя среда, соответствующая данному, отсутствует, выбор оговаривается во фразе об использовании, фразе- PICTURE (ШАБЛОН) и других фразах описания; данных. Каж- 142
дая реализация предоставляет полное объяснение возможных форм представления для ЭВМ, на которой она реализует Кобол. Метод выбора подходящей формы представления данного, используемый реализацией, позволяет программисту предвидеть и (или) управлять этим выбором.
Данное
Класс
Категория
Элементарное
Буквенный
Буквенная
Числовой
Числовая
Буквенно-цифровой
Числовая редактируемая, буквенно-цифровая редактируемая, буквенно-цифровая
Неэлементарное .(групповое)
Буквенно-цифровой
Буквенная, числовая, числовая редактируемая, буквенно-цифровая редактируемая, буквенно-цифровая
.Под размером элементарного данного или группы данных понимается число литер в представлении данного в стандартном формате данных. Выделение данных и особенности использования могут привести к различию между этим размером и действительным -числом литер, необходимых для внутреннего представления.
А ліг е б р а и ч е с к и е знаки
, Алгебраические знаки разделяются на две категории: знак числа,, который относится к числовому данному и числовому литералу со знаком, и знак редактирования, который появляется в редактирующей фразе для установления знака данного.
. Фраза SIGN (ЗНАК) позволяет программисту задать представление знака числа. Эта фраза необязательна; если она не используется, представление знака числа определяется реализацией.
Редактирующие знаки вставляются в данное посредством использования символов фразы PICTURE (ШАБЛОН), управляемых знаком.
С т а н д а р т н ы е правила выравнивания
‘ Стандартные правила для расположения значения в поле элементарного данного зависят от категории принимающего поля. Это следующие правила:
если принимающее поле описано как числовое, то:
данное выравнивается по десятичной точке и помещается в принимающее поле с дополнением нулями или усечением при необходимости на каждом из его концов;
когда подразумеваемая десятичная точка явно не задана, данное рассматривается так, как если бы оно имело подразумеваемую десятичную точку, расположенную непосредственно за ее самой правой литерой, и было выровнено так, как указано выше;
если принимающее данное является числовым редактируемым данным, то пересылаемое данное выравнивается по десятичной точке и дополняется нулями или усекается на каждом из концов, как указано позициями литер принимающего данного; кроме того, если это требуется редактированием, замещаются ведущие нули;
если принимающее данное буквенно-цифровое (отличное от числового редактируемого данного), буквенно-цифровое редактируемое или буквенное, пересылаемое данное помещается в принимающие позиции литер выровненным по самой левой позиции литер в данном и справа дополняется пробелами или усекается при необходимости.
Если задана фраза JUSTIFIED (СДВИНУТО) для принимающего данного, перечисленные стандартные правила изменяются в соответствии с описанием для фразы JUSTIFIED (СДВИНУТО) (ч. 6, п. 5.6).
В ы р а в н и в а н и е данного для повышения эффективности объектного кода
В некоторых вычислительных машинах память организована таким образом, что существуют естественные адресуемые границы машинной памяти, например, границы слова, полуслова, байта. Способ хранения данных определяется объектной программой и нет необходимости учитывать эти естественные границы при описании данного.
Однако определенное использование данных (например, в арифметических операциях или при индексировании) может быть облегчено, если данные хранятся выровненными относительно естественных границ памяти. В частности, если части двух или нескольких данных расположены между соседними естественными границами или некоторая естественная граница дробит единое данное, для организации доступа к этим данным и их запоминания в рабочей программе могут потребоваться дополнительные машинные операции.
Данные, выровненные относительно естественных границ памяти с целью избежания дополнительных машинных операций при доступе к ним, объявляются выделенными.
Выделение может достигаться двумя путями:
применением фразы SYNCHRONIZED (ВЫДЕЛЕНО);
соответствующей естественным границам организацией данных без использования фразы SYNCHRONIZED (ВЫДЕЛЕНО).
Каждая реализация, обеспечивающая специальные виды выравнивания, должна указывать точную интерпретацию действий, подлежащих выполнению. Использование выровненных данных в группе может быть эффективным при выполнении операторов, использующих группу в качестве операнда. Каждая реализация, обеспечивающая специальные типы выравнивания данного, должна описать воздействие неявного заполнителя и семантику оператора, использующего эту группу.
Однозначность ссылок
Каждое имя, определенное пользователем в Кобол-программе, присваивается им определенному ресурсу, который будет использоваться в решении проблемы обработки данных (см. п. 4.2.2 настоящей части). Что касается использования ресурсов, оператор в Кобол-программе должен содержать ссылку, которая однозначно идентифицирует эти ресурсы.
Для гарантии однозначности ссылки имя, определенное пользователем, можно уточнять, индексировать или модифицировать ссылку согласно правилам, описанным ниже.
Когда одно и то же имя используется в отдельных программах для двух или более появлений ресурсов одного и того же типа и когда само по себе уточнение не позволяет в одной из этих программ отличить два идентично названных ресурса, тогда применяются специальные соглашения, ограничивающие область действия имен. Эти соглашения гарантируют, что ресурсы идентифицированы так, как описано в программе, содержащей ссылку (ч. 10, п. 1.3.8).
Если это не оговорено правилами для оператора, любое индексирование и модификация ссылки производятся только один раз как первая операция при выполнении оператора.
Уточнение
Каждое определенное пользователем имя, явно используемое в Кобол-программе, должно быть однозначным в силу одного из перечисленных ниже обстоятельств:
никакое другое имя не имеет идентичного написания;
имя однозначно в контексте фразы REDEFINES (ПЕРЕОПРЕДЕЛЯЕТ) (ч. 6, п. 5.10);
имя определяется внутри такой иерархии имен, что ссылка на него может быть сделана однозначной посредством упоминания одного или более старших уровней иерархии.
Старшие уровни называются уточнителями, а процесс, определяющий однозначность ссылок, называется уточнением. В исходной программе могут появляться идентичные определенные пользователем имена; однако затем должна быть установлена однозначность посредством уточнения для каждого определенного пользователем имени, на которое имеется явная ссылка, за исключени
ем случая переопределения. Нет необходимости указывать все имеющиеся в распоряжении уточнители для установления однозначности. Зарезервированные слова, именующие специальные регистры, требуют уточнения для обеспечения однозначности всякий раз, когда исходная программа приводит к появлению более одного экземпляра какого-либо из специальных регистров. На имя параграфа или имя секции, появляющиеся в программе, нельзя ссылаться из любой другой программы;
программа содержится в другой программе либо содержит другую программу ( ч. 10, п. 1.3.8).
Независимо от вышесказанного, одно и то же имя данных не может использоваться как имя внешней записи и как имя любого другого внешнего данного в программе, содержащей другую программу или содержащейся в некоторой программе и описывающей эту внешнюю запись данных. Одно и то же имя данных не может употребляться как имя данного, обладающего свойством глобального, и как имя любого другого данного, описанного в программе, описывающей это глобальное данное.
Побачили розбіжність з офіційним текстом?