ГОСУДАРСТВЕННЫЙ СТАНДАРТ
СОЮЗА ССР

ЯЗЫК ПРОГРАММИРОВАНИЯ
БЕЙСИК

ГОСТ 27787-88

И

15 р. 40 к. БЗ &—91

зд ание официальное

КОМИТЕТ СТАНДАРТИЗАЦИИ И МЕТРОЛОГИИ СССР
МоскваГОСУДАРСТВЕННЫЙ СТАНДАРТ
СОЮЗА ССР

ЯЗЫК ПРОГРАММИРОВАНИЯ
БЕЙСИК

ГОСТ 27787-88

Издание официальное

МОСКВА 1992ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР

ЯЗЫК ПРОГРАММИРОВАНИЯ БЕЙСИК ГОСТ 27787-88

Programming language Basic

ОКСТУ 4002

Срок действия с 01.07.89

до 01.07.94

Настоящий стандарт устанавливает:

  1. сйнтаксиспрограмм, написанных на языке Бейсик;

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

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

  4. семантические правила для интерпретации смысла программ, написанных на языке Бейсик;

  5. ошибки и исключительные ситуации, которые должны быть об­наружены, а также способ, при помощи которого эти ошибки и исключи­тельные ситуации должны быть обработаны.

Настоящий стандарт не устанавливает:

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

  2. средства, при помощи которых выполняются программы, напи­санные на языке Бейсик;

  3. состав и форму документации на реализации языке Бейсик и программы, написанные на языке Бейсик.

  1. ОСНОВНЫЕ ПОЛОЖЕНИЯ

    1. Для обеспечения переносимости программ, написанных на язы­ке Бейсик, стандарт строится по концепции ’’Ядро плюс модули”.

Ядро содержит описание операторов и функций, обязательных к реализации на всех ЭВМ, имеющих в составе программного обеспече­ния язык Бейсик, независимо от их архитектуры и комплектации.

Издание официальное

© Издательство стандартов, 19,88

© Издательство стандартов, 1992_

Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен без разрешения Госстандарта СССРКаждый модуль содержит описание операторов и функций, реализа­ция которых зависит от архитектуры и от комплектации ЭВМ, имеющих в составе программного обеспечения язык Бейсик.

Каждый модуль содержит один или два уровня. Во всех случаях уровни с меньшим номером (нижние) являются собственными подмно­жествами уровней с большим номером (верхних) внутри того же моду­ля.

  1. В стандарте определены следующие способы конструирования допустимых подмножеств языка Бейсик:

  1. полный язык Бейсик, состоящий из ядра и высших уровней моду­лей;

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

  3. минимальное подмножество должно включать ядро языка Бей­сик.

  1. Каждая реализация должна устанавливать обеспечиваемое ею подмножество. Для .выбранного подмножества реализация должна воспринимать все элементы языка.

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

Каждая реализация языка Бейсик может иметь также дополнитель­ные средства в ядре и модулях. Однако такая реализация бўдет удов­летворять настоящему стандарту только в том случае, если она обеспе­чивает синтаксис и семантику операторов и других элементов языка, описание которых приведено в модулях.

  1. Программа удовлетворяет стандарту только, если:

  1. каждый оператор, содержащийся в программе, является синтак­сически правильным образом, оператора, специфицированного настоя­щим стандартом;

  2. каждый оператор имеет только то значение, которое приведено в настоящем стандарте;

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

  1. Реализация соответствует настоящему стандарту только, если:

  1. она допускает и обрабатывает программы, соответствующие нас­тоящему стандарту;

  2. она интерпретирует ошибки и исключительные ситуации в соот­ветствии со спецификациями настоящего стандарта;

  3. 3) .ее интерпретация семантики каждого оператора, входящего в состав программы, удовлетворяющей стандарту, соответствует специфи­кации из настоящего стандарта;

  4. ее интерпретация семантики, удовлетворяющей стандарту прог- раммы в целом, соответствует спецификации из настоящего стандарта;

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

  6. она сопровождается руководством, в котором однозначно опре­делены действия, предпринимаемые в ответ на обращение к средствам, которые в настоящем стандарте назнваны ’’неопределенными” или ’’за­висящими от реализации”.

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

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

  1. Реализации, удовлетворяющие настоящему стандарту, могут допускать выполнение программ, написанных на расширенном языке, не требуя вывода Сообщений о всех конструкциях, не соответствующих настоящему стандарту. Однако каждый оператор или другой элемент программы, описание которого приведено в реализованном подмножес­тве настоящего стандарта, не удовлетворяющий описанным здесь синтак­сическим правилам, должен вызывать сообщение об ошибке.

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

  1. Некоторые исключительные ситуации (где это указано) могут обрабатываться в соответствии с процедурами, описанными в настоя­щем стандарте; если таковая процедура отсўтствует илй не может быть реализована из-за аппаратных ограничений или ограничений, налагаемых операционной средой, то соответствующая исключительная ситуация должна вызывать завершение программы.

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

  1. СТРУКТУРА ОПИСАНИЯ ЯЗЫКА

Описание каждой конструкции языка построено следующим об­разом.

  1. Общее описание Содержит краткое описание средств Бейсика, которые должны обрабатываться, и указывает общую синтаксическую форму для этих средств. " •

  2. Синтаксис. Синтаксис описан при помощи обозначения в виде формы Бэкуса-Наура, детали которой приведены в приложении 1. Нес­колько слов, составляющих в синтаксисе лексическую единицу, соеди­нены знаком дефис (-).

  1. Примеры, Краткий список правильных примеров, получаемых при помощи некоторых грамматических правил, представленных в син­таксисе. Нумерация примеров соответствует нумерации грамматических правил и не-будет последовательной, если примеры иллюстрируют не все правила.

  2. Семантика. Семантические правила служат двум целям. Во-пер­вых, они исключают некоторые конструкции, которые допустимы син­таксисом, но по смыслу не удовлетворяют описанию. Во-вторых, они придают смысл упоминаемым конструкциям.

  3. Исключения. Описываются исключения, -возникающие в том случае, когда система, реализующая транслятор с языка Бейсик, обна­руживает, что программа не может быть выполнена или не исполняется в соответствии с настоящим описанием.

  4. Примечания. Здесь содержатся замечания по некоторым особен­ностям самого описаний и требования по реализации языкового Бейсик- процессора для конкретной операционной поддержки.

В приложении 2 приведены пояснения основных терминов, исполь­зуемых в настоящем стандарте.

  1. ОПИСАНИЕ ЯДРА

    1. Символы и тексты

      1. Общее описание

Набор символов языка Бейсик является подмножеством символов, приведенных в ГОСТ 27465—87. Текст — это последовательность сим­волов, которая используется в программе на языке Бейсик в качестве примечаний (см. п. 3.15), текстовых констант (см. п. 3.3.) или данных (см. п. 3.13.).

  1. Синтаксис

  1. прописная-буква-латинская = A|B|C|D|E|F|G|H|I|J|K|L|M| N|O]P|Q|R|S|T|U|V|W|X|Y|Z

  2. прописна1я-буква-русская = А|Б|В|Г|Д|Е|Ё|Ж|3|И|Й|К|Л|М| Н 1О|П|Р|С|Т|У|Ф|Х|Ц|Ч|Ш|Щ|Ъ|Ы|Ь|Э|Ю|Я

  3. цифра = 0| 112|3|4|5|6|7|8|9

  4. символ-текста = кавычки символ-текста-в-кавычках

  5. символ-текста-в-кавычках = восклицательный знак|номері знак- денежной-единицы I процент І коммерчесКое-И I апостроф I круглая-скобка- левая|круглая-скобка-правая| звездочка (запятая | дрофная-черта | обрат- ' ная-дробная-черта | двоеточие | точка-с-запятой-с-запятой | меньше | равно | больше I вопросительный-знак I подчеркивание | стрелка-вверх | символ-тек- ста-не-в-кавычках (графическое изображение этих символов по ГОСТ 27465-87)

  6. символ-текста-не-в-кавычках = пробел (простой-символ-текста’

  7. простой-символ-текста = знак-плюс | знак-минус | точка] цифра | прописная-буква-латинская | прописная-буква-русская

  8. примечания = символ-текста *

  9. текст-в-кавычках = кавычки символ-текста-в-кавычках. * кавыч­ки

  10. текст-не-в-кавычках = простой-символ-текста|простой-символ- текста символ-текст-не-в-кавычках * простой-символ-текста

  1. Примеры

  1. В ’’ПРИМЕЧАНИЯХ” МОЖНО ИСПОЛЬЗОВАТЬ ЛЮБОЙ СИМ­ВОЛ (!,? = и т.д.)

  2. ”В ТЕКСТЕ В КАВЫЧКАХ МОЖНО ИСПОЛЬЗОВАТЬ ЗАПЯТЫЕ, ПРОБЕЛЫ”

  3. ALFA+5

  1. Семантика

Буквы могут быть прописными буквами латинского или русского алфавита.

Все остальные символы-текста — это любые символы.

  1. Примечания

Различные типы символов и текста, описанные в синтаксисе, соответ­ствуют различным видам использования текста в Бейсик-программе. При­мечания могут использоваться в операторах примечаний (см. п. 3.15.). Текст-в-кавычках может использоваться в качестве текстовых-констант (см. п. 3.3.). Текст-без-кавычек может использоваться наряду с текстом- в-кавычках в качестве элементов данных (см. п. 3.13); текст-без-кавы- чек не может начинаться или заканчиваться пробелами.

  1. Программы

    1. Общее описание

Программа на языке Бейсик представляет собой последовательность строк, причем последняя строка программы — это строка, содержащая оператор-конца. Каждая строка программы должна содержать служеб­ное слово. Каждая строка должна иметь уникальный номёр-строки, кото­рый служит меткой оператора, расположенного в этой строке.

  1. Синтаксис

  1. программа = блок ♦ последняя-строка

  2. блок = строка-с-оператором|цикл-с-шагом

  3. строка-с-оператором = номер-строки оператора конец-строки

  4. номер-строки = цифра цифра? цифра? цифра?

  5. конец-строки — определяется реализацией

'6) последняя-строка = номер-строки оператор-конца .конец-строки

  1. оператор-конца - END

  1. оператор = оператор-хранения-данных|оператор-определения-фун- кции I оператор-описания-массива | оператор-вызова-подпрограммы | оператор-безусловного-перехода | оператор-условного перехода | опера- тор-ввода I оператор-присваивания | оператор-вычисляемого-перёхода | оператор-вывода | оператор-запуска-генератора-псевдослучайных-чисел I оператортрассылки-данных | оператор-примечаний | оператор-восстанов- ления-указателя-рассылки | оператор-возврата-из-подпрограммы | опера- тор-останова | оператор-объявления-нижней-границыстрока = строкя-с оператором последняя стос’■-я

Синтаксические описания операторов и цикла-с-шагом приведены ниже в соответствующих подразделах.

3.2.3, Примеры

6) 999 END

  1. Семантика

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

• 1) не будет задано некоторое действие, определяемое оператором-

управления или блоком-цикла;

  1. не произойдет неустранимаяошибка;

  2. не выполнится оператор-конца.

Относительно пробелов существует специальное соглашение. За ис­ключением случаев, перечисленных ниже, пробелы могут встречаться в любом месте программы, не влияя на ее выполнение.

Проблемы не допустимы:

  1. в начале строки;

  2. внутри служебного слова;

  3. внутри слова ТАВ в вызове-табуляции;

  4. внутри числовой-константы;

  5. внутри номера-строки;

  6. внутри функции или внутри идентификатора;

  7. внутри операций отношений, состоящих из нескольких симво­лов.

Пробелы в тексте-в-кавычках и в тексте-без-кавычек являются зна­чащими.

Др и после каждого служебного слова должен стоять хотя бы один пробел (после служебного слова вместо пробела,может стоять конец- строки).