ГОСУДАРСТВЕННЫЙ СТАНДАРТ
СОЮЗА ССР
ЯЗЫК ПРОГРАММИРОВАНИЯ
БЕЙСИК
И
15 р. 40 к. БЗ &—91
зд ание официальноеКОМИТЕТ СТАНДАРТИЗАЦИИ И МЕТРОЛОГИИ СССР
МоскваГОСУДАРСТВЕННЫЙ СТАНДАРТ
СОЮЗА ССР
ЯЗЫК ПРОГРАММИРОВАНИЯ
БЕЙСИК
Издание официальное
МОСКВА 1992ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР
ЯЗЫК ПРОГРАММИРОВАНИЯ БЕЙСИК ГОСТ 27787-88
Programming language Basic
ОКСТУ 4002
Срок действия с 01.07.89
до 01.07.94
Настоящий стандарт устанавливает:
сйнтаксиспрограмм, написанных на языке Бейсик;
форматы и точность данных, а также диапазон представления чисел для данных, поступающих на вход процессора обработки данных, управляемого программой, написанной на языке Бейсик;
форматы и точность данных, а также диапазон представления чисел, получаемых в результате выполнения процессором обработки данных программы, написанной на языке Бейсик;
семантические правила для интерпретации смысла программ, написанных на языке Бейсик;
ошибки и исключительные ситуации, которые должны быть обнаружены, а также способ, при помощи которого эти ошибки и исключительные ситуации должны быть обработаны.
Настоящий стандарт не устанавливает:
механизм, при помощи которого программы, написанные на языке Бейсик, преобразуются для использования процессором обработки данных;
средства, при помощи которых выполняются программы, написанные на языке Бейсик;
состав и форму документации на реализации языке Бейсик и программы, написанные на языке Бейсик.
ОСНОВНЫЕ ПОЛОЖЕНИЯ
Для обеспечения переносимости программ, написанных на языке Бейсик, стандарт строится по концепции ’’Ядро плюс модули”.
Ядро содержит описание операторов и функций, обязательных к реализации на всех ЭВМ, имеющих в составе программного обеспечения язык Бейсик, независимо от их архитектуры и комплектации.
Издание официальное
© Издательство стандартов, 19,88
© Издательство стандартов, 1992_
Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен без разрешения Госстандарта СССРКаждый модуль содержит описание операторов и функций, реализация которых зависит от архитектуры и от комплектации ЭВМ, имеющих в составе программного обеспечения язык Бейсик.
Каждый модуль содержит один или два уровня. Во всех случаях уровни с меньшим номером (нижние) являются собственными подмножествами уровней с большим номером (верхних) внутри того же модуля.
В стандарте определены следующие способы конструирования допустимых подмножеств языка Бейсик:
полный язык Бейсик, состоящий из ядра и высших уровней модулей;
подмножества языка Бейсик — любые комбинации ядра и уровней модулей, отличные от полного языка Бейсик;
минимальное подмножество должно включать ядро языка Бейсик.
Каждая реализация должна устанавливать обеспечиваемое ею подмножество. Для .выбранного подмножества реализация должна воспринимать все элементы языка.
В дальнейшем, говоря о языке Бейсик, имеется в виду любое допустимое стандартом подмножество языка Бейсик, если явно не оговорено противное.
Каждая реализация языка Бейсик может иметь также дополнительные средства в ядре и модулях. Однако такая реализация бўдет удовлетворять настоящему стандарту только в том случае, если она обеспечивает синтаксис и семантику операторов и других элементов языка, описание которых приведено в модулях.
Программа удовлетворяет стандарту только, если:
каждый оператор, содержащийся в программе, является синтаксически правильным образом, оператора, специфицированного настоящим стандартом;
каждый оператор имеет только то значение, которое приведено в настоящем стандарте;
общая совокупность операторов образует пример допустимый программы, имеющей только то значение, которое приведено в настоящем стандарте.
Реализация соответствует настоящему стандарту только, если:
она допускает и обрабатывает программы, соответствующие настоящему стандарту;
она интерпретирует ошибки и исключительные ситуации в соответствии со спецификациями настоящего стандарта;
3) .ее интерпретация семантики каждого оператора, входящего в состав программы, удовлетворяющей стандарту, соответствует спецификации из настоящего стандарта;
ее интерпретация семантики, удовлетворяющей стандарту прог- раммы в целом, соответствует спецификации из настоящего стандарта;
она допускает ввод, обработку и вывод чисел с точностью не меньшей и в диапазоне не меньшим, чем указано в настоящем стандарте;
она сопровождается руководством, в котором однозначно определены действия, предпринимаемые в ответ на обращение к средствам, которые в настоящем стандарте назнваны ’’неопределенными” или ’’зависящими от реализации”.
Ряд элементов языка рассчитан на определенные устройства оборудования, функционирование которых должна" обеспечить реализация. Реализация оговаривает необходимую минимальную конфигурацию оборудования и специфические компоненты оборудования, функционирование которых она обеспечивает.
Элементы языка, относящиеся к оборудованию, не обеспечиваемому реализацией, могут не включаться в язык, но их отсутствие должно специально оговариваться.
Реализации, удовлетворяющие настоящему стандарту, могут допускать выполнение программ, написанных на расширенном языке, не требуя вывода Сообщений о всех конструкциях, не соответствующих настоящему стандарту. Однако каждый оператор или другой элемент программы, описание которого приведено в реализованном подмножестве настоящего стандарта, не удовлетворяющий описанным здесь синтаксическим правилам, должен вызывать сообщение об ошибке.
Обо всех исключительных ситуациях, описанных в настоящем стандарте, должны выводиться сообщения, если только реализация не содержит механизм, который может быть вызван пользователем для обработки э,тих ситуаций.
Некоторые исключительные ситуации (где это указано) могут обрабатываться в соответствии с процедурами, описанными в настоящем стандарте; если таковая процедура отсўтствует илй не может быть реализована из-за аппаратных ограничений или ограничений, налагаемых операционной средой, то соответствующая исключительная ситуация должна вызывать завершение программы.
Настоящий стандарт не описывает порядок, в котором исключительные ситуации будут обнаруживаться и обрабатываться.
СТРУКТУРА ОПИСАНИЯ ЯЗЫКА
Описание каждой конструкции языка построено следующим образом.
Общее описание Содержит краткое описание средств Бейсика, которые должны обрабатываться, и указывает общую синтаксическую форму для этих средств. " •
Синтаксис. Синтаксис описан при помощи обозначения в виде формы Бэкуса-Наура, детали которой приведены в приложении 1. Несколько слов, составляющих в синтаксисе лексическую единицу, соединены знаком дефис (-).
Примеры, Краткий список правильных примеров, получаемых при помощи некоторых грамматических правил, представленных в синтаксисе. Нумерация примеров соответствует нумерации грамматических правил и не-будет последовательной, если примеры иллюстрируют не все правила.
Семантика. Семантические правила служат двум целям. Во-первых, они исключают некоторые конструкции, которые допустимы синтаксисом, но по смыслу не удовлетворяют описанию. Во-вторых, они придают смысл упоминаемым конструкциям.
Исключения. Описываются исключения, -возникающие в том случае, когда система, реализующая транслятор с языка Бейсик, обнаруживает, что программа не может быть выполнена или не исполняется в соответствии с настоящим описанием.
Примечания. Здесь содержатся замечания по некоторым особенностям самого описаний и требования по реализации языкового Бейсик- процессора для конкретной операционной поддержки.
В приложении 2 приведены пояснения основных терминов, используемых в настоящем стандарте.
ОПИСАНИЕ ЯДРА
Символы и тексты
Общее описание
Набор символов языка Бейсик является подмножеством символов, приведенных в ГОСТ 27465—87. Текст — это последовательность символов, которая используется в программе на языке Бейсик в качестве примечаний (см. п. 3.15), текстовых констант (см. п. 3.3.) или данных (см. п. 3.13.).
Синтаксис
прописная-буква-латинская = 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
прописна1я-буква-русская = А|Б|В|Г|Д|Е|Ё|Ж|3|И|Й|К|Л|М| Н 1О|П|Р|С|Т|У|Ф|Х|Ц|Ч|Ш|Щ|Ъ|Ы|Ь|Э|Ю|Я
цифра = 0| 112|3|4|5|6|7|8|9
символ-текста = кавычки символ-текста-в-кавычках
символ-текста-в-кавычках = восклицательный знак|номері знак- денежной-единицы I процент І коммерчесКое-И I апостроф I круглая-скобка- левая|круглая-скобка-правая| звездочка (запятая | дрофная-черта | обрат- ' ная-дробная-черта | двоеточие | точка-с-запятой-с-запятой | меньше | равно | больше I вопросительный-знак I подчеркивание | стрелка-вверх | символ-тек- ста-не-в-кавычках (графическое изображение этих символов по ГОСТ 27465-87)
символ-текста-не-в-кавычках = пробел (простой-символ-текста’
простой-символ-текста = знак-плюс | знак-минус | точка] цифра | прописная-буква-латинская | прописная-буква-русская
примечания = символ-текста *
текст-в-кавычках = кавычки символ-текста-в-кавычках. * кавычки
текст-не-в-кавычках = простой-символ-текста|простой-символ- текста символ-текст-не-в-кавычках * простой-символ-текста
Примеры
В ’’ПРИМЕЧАНИЯХ” МОЖНО ИСПОЛЬЗОВАТЬ ЛЮБОЙ СИМВОЛ (!,? = и т.д.)
”В ТЕКСТЕ В КАВЫЧКАХ МОЖНО ИСПОЛЬЗОВАТЬ ЗАПЯТЫЕ, ПРОБЕЛЫ”
ALFA+5
Семантика
Буквы могут быть прописными буквами латинского или русского алфавита.
Все остальные символы-текста — это любые символы.
Примечания
Различные типы символов и текста, описанные в синтаксисе, соответствуют различным видам использования текста в Бейсик-программе. Примечания могут использоваться в операторах примечаний (см. п. 3.15.). Текст-в-кавычках может использоваться в качестве текстовых-констант (см. п. 3.3.). Текст-без-кавычек может использоваться наряду с текстом- в-кавычках в качестве элементов данных (см. п. 3.13); текст-без-кавы- чек не может начинаться или заканчиваться пробелами.
Программы
Общее описание
Программа на языке Бейсик представляет собой последовательность строк, причем последняя строка программы — это строка, содержащая оператор-конца. Каждая строка программы должна содержать служебное слово. Каждая строка должна иметь уникальный номёр-строки, который служит меткой оператора, расположенного в этой строке.
Синтаксис
программа = блок ♦ последняя-строка
блок = строка-с-оператором|цикл-с-шагом
строка-с-оператором = номер-строки оператора конец-строки
номер-строки = цифра цифра? цифра? цифра?
конец-строки — определяется реализацией
'6) последняя-строка = номер-строки оператор-конца .конец-строки
оператор-конца - END
оператор = оператор-хранения-данных|оператор-определения-фун- кции I оператор-описания-массива | оператор-вызова-подпрограммы | оператор-безусловного-перехода | оператор-условного перехода | опера- тор-ввода I оператор-присваивания | оператор-вычисляемого-перёхода | оператор-вывода | оператор-запуска-генератора-псевдослучайных-чисел I оператортрассылки-данных | оператор-примечаний | оператор-восстанов- ления-указателя-рассылки | оператор-возврата-из-подпрограммы | опера- тор-останова | оператор-объявления-нижней-границыстрока = строкя-с оператором последняя стос’■-я
Синтаксические описания операторов и цикла-с-шагом приведены ниже в соответствующих подразделах.
3.2.3, Примеры
6) 999 END
Семантика
Программа, написанная на языке Бейсик, состоит из последовательности строк, расположенных, в порядке возрастания номеров-строк. Строка с максимальным номером должна быть последней-строкой. Строки программы выполняются поочередно, начиная с первой по порядку, до тех пор, пока:
• 1) не будет задано некоторое действие, определяемое оператором-
управления или блоком-цикла;
не произойдет неустранимаяошибка;
не выполнится оператор-конца.
Относительно пробелов существует специальное соглашение. За исключением случаев, перечисленных ниже, пробелы могут встречаться в любом месте программы, не влияя на ее выполнение.
Проблемы не допустимы:
в начале строки;
внутри служебного слова;
внутри слова ТАВ в вызове-табуляции;
внутри числовой-константы;
внутри номера-строки;
внутри функции или внутри идентификатора;
внутри операций отношений, состоящих из нескольких символов.
Пробелы в тексте-в-кавычках и в тексте-без-кавычек являются значащими.
Др и после каждого служебного слова должен стоять хотя бы один пробел (после служебного слова вместо пробела,может стоять конец- строки).