ГОСТ 27974-88 сторінка 36 з 45
Алгол 68 разрабатывался как международный язык программирования, поэтому определяющий документ, хотя и написан на английском языке и использует служебные слова и обозначения на основе английского языка, предусматривает возможность создания в соответствии с некоторыми правилами версий Алгола 68 для других национальных языков и переводов определяющего документа на другие языки. Перевод на русский язык одновременно содержит и русскую версию языка Алгол 68, позволяющую наряду с английскими служебными словами и обозначениями использовать служебные слова и обозначения на основе русского языка. Данный перевод был рассмотрен и принят временной научно-технической комиссией (ВНТК), специально созданной для этой цели при Государственном Комитете Совета Министров СССР по науке и технике (ГКНТ) в 1976 г. и утвержден ГКНТ в качестве определяющего документа для русской версии Алгола 68. Этот документ опубликован в 1979 г. параллельно с английским текстом (Пересмотренное сообщение об Алголе 68; Ред. А. Ван Вейн- гаарден, Б. Майу, Дж. Пек, К. Костер, М. Синцов, Ч. Линдси, Л. Меертенс, Р. Фискер: Пер. с англ. А. А. Берса, под ред. А. П. Ершова - М.: Мир, 1979).
Настоящий стандарт воспроизводит часть публикации 1979 г. с минимальными изменениями технического характера.
Требования к машинному представлению программы, содержащиеся в приложении 2, также основаны на документе ИФИП (Wilfred J. Hansen, Hendrik Boom. The Report on the standard hardware representation for ALGOL 68. ALGOL Bulletin, 40, pp. 25-43), принятом РГ 2.1, утвержденном ТК 2 и одобренном для публикации Генеральной Ассамблеей ИФИП. В буквальном виде этот документ не может быть принят для русской версии из-за необходимости одновременного использования русского и латинского алфавитов и особенностей символьных наборов отечественных устройств подготовки и отображения информации. Правила машинного представления для русской версии Алгола 68 неоднократно обсуждались ВНТК и рабочей группой по алгоритмическому языку Алгол 68 (РГ А68) комиссии по языкам и системам программирования при ГКНТ. ВНТК приняла вариант машинного представления, предложенный В. В. Бролем и впоследствии реализованный В. Б. Яковлевым в трансляторе для МВК „Эльбрус”.
При подготовке настоящего стандарта В. В. Бролем и В. Б. Яковлевым с учетом опыта использования реализации на МВК „Эльбрус” разработан новый вариант машинного представления программ на Алголе 68.
ПРИЛОЖЕНИЕ 2
Обязательное
ТРЕБОВАНИЯ К МАШИННОМУ ПРЕДСТАВЛЕНИЮ ПРОГРАММЫ
-
ОПРЕДЕЛЕНИЯ
-
Абстрактная литера - это одна из следующих 152 литер:
-
буквы латинского алфавита:
А, В, С, D, Е, F, G, Н, I, J, К, L, М, N, О, Р, Q, R, S, Т, U, Ў, W, X, Y, Z,
а, Ъ, с, d, е, f, g, h, і, j, k, 1, m, n, o, p, q. r, s, t, u, v, w, x, y, z
буквы русского алфавита:
-
А, Б, В, Г, Д, Е, Ё, Ж, З, И, Й, К, Л, М, Н, О, П, Р, С, Т, У, Ф, X, Ц, Ч, Ш, Щ, Ъ, Ы, ь, З, ю, Я,
а, б, в, г, д, е, є, ж, з, и, й, к, л, м, н, о, п, р, с, т, у, ф, х, ц, ч, ш, щ, ъ, ы, ь, з, ю, я цифры:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
прочие литеры:
пробел ” -і % '()* + ,-./: ; < = >@ [ ],_ і
Представление программы на Алголе 68 определяют как разделенную на строчки последовательность абстрактных литер.
-
Конкретная литера — это некоторая литера, имеющаяся на устройстве ввода- вывода. Каждая такая литера составлена из множества знаков и кодов в соответствии с местными соглашениями.
-
Разделитель - это особенность типографского набора (п. 9.4.d), начало или конец текста программы или любая абстрактная литера, отличная от буквы, цифры или знака подчеркивания. Слова и выделенные слова ограничиваются разделителями.
-
1.4. Две строки литер соприкасаются, если между ними нет литер или особенностей типографского набора. Если одна из строк литер следует за или предшествует другой, то они также соприкасаются.
-
Выделенное слово - это:
любое представление, составленное из выделенных букв или цифр в эталонном языке (подраздел 9.4) (т.е. символы-выделенное-СЛОВО и представления, указанные в п.9.4.1 как выделенные);
символ, представленный выделенным словом;
литеры, записывающие выделенное слово способом, специфицированным в подразделе 3.4 настоящего приложения.
-
-
Слово - это символ-СЛОВО (подпункт 9.4.2.2.а), например, - „конец файла” - это слово.
-
Слог — непустая последовательность букв и цифр (слово „конец файла”, использованное так, как в п.3.4.1 настоящего приложения, состоит из двух слогов).
-
-
ПРЕДСТАВЛЕНИЕ КОНСТРУКТОВ АЛГОЛА 68
-
Для каждой абстрактной литеры реализация должна предусматривать одну или несколько конкретных литер, отличающихся от конкретных литер для других абстрактных литер.
-
Если предусмотрено несколько конкретных литер (например, ДЛЯ „ I ” и „I” и „!”) то они должны эквивалентно обрабатываться всюду, кроме как в строках и при распечатке программ, где каждая представляет саму себя.
-
В каждом алфавите соответствующие друг другу прописные и строчные буквы эквивалентны, за исключением ситуаций, предусмотренных в подразделе 3.1 и п.3.5.2 настоящего приложения.
-
Конструкт в языке представления получается заменой символов на их представления. Представление для каждого символа дается в терминах абстрактных литер. Кодирование конструктов в языке представления для машинной обработки осуществляется заменой каждой абстрактной литеры на соответствующую ей конкретную литеру и вставкой особенностей типографского набора (там, где это разрешено).
В некоторых реализациях отдельные конкретные литеры могут не иметь представлений на устройствах ввода-вывода. В таких случаях реализация должна обеспечить дополнительное представление соответствующих им абстрактных литер (например, в виде комбинаций конкретных литер, доступных на этих устройствах). При этом, в частности, допускается расширение списка зарезервированных слов из подпункта 3.4.1.3 настоящего приложения, а также введение альтернативных обозначений из раздела 10 и расширение списка представлений символов из п.9.4.1 настоящего стандарта альтернативными представлениями, использующими только доступные конкретные литеры.
Чтобы перенос программ сводился только к простой транслитерации, реализация должна предусматривать способ представления программ в виде, не использующем подобных местных соглашений, и преобразование программ к такому виду.
-
ОТДЕЛЬНЫЕ ПРЕДСТАВЛЕНИЯ
-
Элементы строки
-
Множество элементов-строки (подпункт 8.1.4.1.Ь) - это множество абстрактных литер без кавычки и апострофа, но с символом-образ-кавычки и символом- образ-апострофа. Значение каждой абстрактной литеры есть сама литера. Соответствующие друг другу прописные и строчные буквы имеют различные естественные значения. Симол-образ-кавычки записывают двумя соприкасающимися кавычками и его естественным значением является кавычка. Символ-образ-апострофа записывают двумя соприкасающимися апострофами и его естественным значением является апостроф (один апостроф может использоваться в реализациях как регистровая литера).
-
-
Последовательность управляющих литер, отсутствующих на устройствах ввода- вывода, или одна такая литера в изображении-строки может быть представлена следующим образом:
символ-апостроф,
символ-открыть,
символ-образов-управляющих-литер, символ-закрыть.
Образы литер в списке могут задаваться целыми десятичными числами, а также их обозначениями в русской или латинской нотации по ГОСТ 27465 и должны разделяться запятыми.
-
Дополнительная особенность типографского набора — „разрыв строки” - предусмотрена для использования только внутри изображений-строк и изображений- литерных и записывается как кавычка с последующими одной или более особенностями типографского набора, отличными от разрыва строки, с последующей еще одной кавычкой.
Когда изображение-строки должно быть размещено в исходном тексте программы на нескольких строчках, разрыв строки позволяет указывать количество пробелов в конце одной строчки и однозначно определяет положение продолжения изображения строки на следующей строчке.
-
Элементы прагматов
-
Последовательностыо-элементов-ПОЯСНЕНИЙ-ОФОРМЛЕННЫХ (п.9.2.1.с) может служить любая последовательность литер (не обязательно абстрактных), в которую не входит последовательность (вместе с разделителями), представляющая сам символ-ПОЯСНЕНИЕ-ОФОРМЛЕННЫЙ (т.к. последний,завершается прагмат). В реализации возможны, однако, дальнейшие ограничения на последовательность литер, допустимых в прагматах (но только не в примечаниях).
-
Предусмотрены шесть стандартных элементов-прагматов: СТРАНИЦА (PAGE), ТЧК (POINT), BP (UPPER), РЕЗ (RES), ЗАПОМНИТЬ (PUSH), ВОССТАНОВИТЬ (POP) (В скобках английские эквиваленты элементов-прагматов). Эти элементы должны распознаваться хотя бы в их минимальной форме:
-
Символ-прагмат-ОФОРМЛЕННЫЙ, элемент,
Символ-прагмат-ОФОРМЛЕННЫЙ.
Каждый из перечисленных элементов-прагматов записывается как последовательность букв, которым могут предшествовать или за которыми могут следовать особенности типографского набора. (Во всех выделяющих режимах символ-прагмат может быть записан как „ПРАГМ” с последующим разделителем).
-
-
Новая страница
-
При распечатке некоторого конструкта в конкретных литерах с помощью процессора Алгол 68 прагмат, содержащий элемент прагмата СТРАНИЦА (PAGE), указывает, что строчку, следующую за строчкой, содержащей замыкающий символ-прагмат, печатают с начала новой страницы. (Прагмат СТРАНИЦА не является, однако, особенностью типографского набора).
-
-
Запоминание режима выделения
-
Прагмат, содержащий элемент-прагмата ЗАПОМНИТЬ (PUSH), указывает, что значение действующего в данном месте прагмата, определяющего режим выделения (подраздел 3^. настоящего приложения), запоминается для последующего восстановления.
-
Прагмат, содержащий элемент-прагмата ВОССТАНОВИТЬ (POP), связывается с последним из прагматов, содержащих элемент-прагмата ЗАПОМНИТЬ, еще не связанным с другим прагматом, содержащим элемент-прагмата ВОССТАНОВИТЬ (если такой есть), и восстайавливает действие того из прагматов, задающих режим выделения, который действовал перед этим прагматом.
-
-
-
Особенности типографского набора
-
Особенностями типографского набора являются пробел, новая строчка и разрыв строки. Новая строчка может быть одной конкретной литерой или физическим явлением, подобным концу записи. Разрыв строки используют только в изображени- ях-строки.
-
-
Слова и выделенные слова
-
Представление слов и выделенных слов определяют „режим выделения”, Существует три режима выделения: выделение точкой, выделение прописными буквами, резервирование слов.
-
Новый режим вводится прагматом, содержащим один из элементов-прагмата ТЧК (POINT), BP (UPPER), РЕЗ. (RES) и начинает действовать сразу же после замыкающего символа-прагмат. Режим не действует на „оформление” представления (так, в режимах ВР и РЕЗ „ПРАГМ” соответствует „ПРАГМ”). Приводимые ниже правила требуют наличия разделителя в некоторой позиции. В качестве разделителей можно использовать особенности типографского набора. Слова различаются только тогда, когда различны конкатенации их подслов, например, „конец файла” может быть записан также как „коне цфайла”.
-
В режиме выделения точкой (ТЧК) выделенные слова представляют следующим образом:
выделенные слова начинаются с точки ( . ), за которой следуют слоги, содержащие по порядку абстрактные буквы и цифры, соответствующие выделенным буквам и цифрам слова;
слоги должны разделяться литерами подчеркивания, но не особенностями типографского набора;
за выделенным словом должен следовать разделитель.
В режиме выделения точкой слова представляют следующим образом:
слово составляется из последовательности одного или более слогов, разделенных нулем или более особенностей типографского набора;
слог составляется из соответствующих, расположенных по порядку, абстрактных букв и цифр и может завершаться литерой подчеркивания;
если слог не завершается литерой подчеркивания, то после него должен следовать разделитель.
-
В режиме выделения прописными буквами (ВР) слова и выделенные слова представляют как в режиме ТЧК, но только с использованием дополнительных правил:
в выделенных словах не должно быть смешения прописных и строчных букв: точка может быть опущена перед выделенным словом из прописных букв, если ему предшествует разделитель, отличный от точки, строчная буква или цифра, не являющаяся „прописной цифрой”. „Прописная цифра” - это цифра, которой предшествует прописная буква или прописная цифра;
Побачили розбіжність з офіційним текстом?
Дивіться також
Сборник ГОСТ ЕСКД
Збірник із 154 стандартів