Передовица (меню разделов)
⇓
Документы
⇓
Из архива академика Ершова
⇓
15.05.1984
Ссылка на скан документа в архиве академика Ершова.
APPENDIX A
СООТВЕТСТВИЕ РУССКОЙ И АНГЛИЙСКОЙ ЛЕКСИКИ В ОПИСЫВАЕМЫХ ВЕРСИЯХ
В связи с отсутствием на клавиатуре ЭВМ "APPLE" русских букв версия Э1.3 базируется на английской версии. Ниже приводятся соответствия между ключевыми словами, заголовками режимов и т.д. (кроме диагностических сообщений и названий стандартных процедур и функций - они приведены в приложениях...)
А.1 ОБЩЕЕ СИСТЕМНОЕ МЕНЮ.
А1.1 Э1.3
******************************** ********************************
* ПРОГРАММНАЯ СИСТЕМА * * PROGRAMMING SYSTEM *
* * * *
* "Ш К О Л Ь Н И Ц А" * * "S H C O L N I C A" *
* * * *
* (НАЧАЛЬНЫЙ ЗАГРУЗЧИК) * * (INITIAL LOADER) *
* * * *
* ВЕРСИЯ 1 * * VERSION 1 *
* * * *
* НОВОСИБИРСК 1984 * * NOVOSIBIRSK 1984 *
* * * *
******************************** ********************************
В СИСТЕМЕ ЕСТЬ: THERE ARE IN SYSTEM:
Р - РАПИРА-ИНТЕРПРЕТАТОР R - RAPIRA-INTERPRETATOR
Ф - РАЗМЕТКА РАБОЧИХ ДИСКОВ M - EXIT TO MONITOR
ЧТО ? YOUR CHOICE:
А.2 КЛЮЧЕВЫЕ СЛОВА ЯЗЫКА РАПИРА.
А1.1 Э1.3 БПС NLF БУМАГУ PRINTER В IN ВИДА TYPE ВВОД INPUT ВКЛ ON ВСЕ CLOSE ВСЕХ ALL ВЫБОР CASE ВЫВОД OUTPUT ВЫКЛ OFF ВЫХОД EXIT ДАННЫХ DATA ДЗУ DISK ДЛЯ FDR ДО TO ЗАКРЫТЬ STORE 3АЩИТУ PROTECT И AND ИЗ OF ИЛИ OR ИМЕН NAMES ИМЕНА NAMES ИНАЧЕ ELSE КАК AS КАТАЛОГ CATALOG КНД END КОНТРОЛЬ CONTROL МЕНЮ MENU НА TO НЕ NOT ОТ FROM ОТКРЫТЬ OPEN ОТЛАДКУ DEBUG ПАКЕТ PACKETS ПОВТОР REPEAT ПОЗИЦИЯ LOCATE ПОКА WHILE ПРОКРУТКУ MONITOR ПРОТОКОЛ PROTOCOL ПРОЦ PROC ПУСК START РАЗ TIMES РАЗА TIME РАПИРА JNO РЕЗ RES РОБИК --- СЛЕД TRACE СТЕРЕТЬ DELETE СТОП STOP СТРОК LINES ТЕКСТОВ TEXTS ТО THEN ФАЙЛ FILE ФАЙЛА FILE ФАЙЛОВ FILES ФУНЦ FUNC ЧАСТ PARTIAL ШАГ STEP ЭКРАН DISPLAY ЗАП REC ФАЙЛ FILE ПРОЦ PROC ФУНЦ FUNC СВОБОДНЫХ БЛОКОВ: 234 234 FREE BLOCKS
А.3 НАЗВАНИЯ РЕЖИМОВ (ИНФОРМАЦИОННАЯ СТРОКА ЭКРАНА)
РЕЖИМ А1.1 Э1.3
ОСНОВНОЙ ** РАПИРА-АГАТ 1.1 ** RAPIRA-APPLE ][ PLUS
ПРИОСТАНОВКА ** П А У З А ** P A U S E
ОСТ. ПО ОШИБКЕ ** О Ш И Б К А ** ERROR PAUSE
А1.1 Э1.3
******************************** ********************************
* * * *
* ТЕКСТОВЫЙ РЕДАКТОР СИСТЕМЫ * * RAPIRA TEXT EDITOR *
* * * *
* "Ш К О Л Ь Н И Ц А" * * (VERSION 4) *
* * * *
* НОВОСИБИРСК 1985 * ********************************
* *
********************************
ПЕРЕЙТИ К СТРОКЕ КАТАЛОГ SET LINE NUMBER CATALOG
ЗАПОМНИТЬ ТЕКСТ СЧИТАТЬ ФАЙЛ SET TEXT LOAD FILE
ВЫДАТЬ НА БУМАГУ ЗАПИСАТЬ ФАЙЛ WRITE TO PRINTER SAVE FILE
ОЧИСТИТЬ БУФЕР СТЕРЕТЬ ФАЙЛ CLEAR BUFER DELETE FILE
ВЫЙТИ ДОПИСАТЬ ФАЙЛ EXIT APPEND FILE
КОНЕЦ ОПИСАНИЯ РАБОТА С ДЗУ 2 FINISH EDITING SET DRIVE 2
ИМЯ ФАЙЛА:ИМЯ-ТЕКУЩЕГО-ФАИЛ FILE NAME:CURRENT-FILENAME
ПРОЧИЕ СООБЩЕНИЯ:
А1.1 Э1.3
НОМЕР СТРОКИ (1) - LINE NUMBER (1)
С КАКОЙ СТРОКИ (1) - FROM (1)
ДО КАКОЙ СТРОКИ (75) - TO (75)
НАЖМИТЕ ЛЮБУЮ КЛАВИШУ PRESS ANY KEY
ПАМЯТЬ ПЕРЕПОЛНЕНА BUFFER FULL
TEXT,FILE NAME
А.4 ПРОЧИЕ СООБЩЕНИЯ И ЗАПРОСЫ СИСТЕМЫ.
А1.1 Э1.3
ОСТАНОВ В СТРОКЕ 12 ИМЯПРОЦ *** BREAK IN LINE 12 OF 'PROCNAME' ***
ИМЯ: ПРИСВАИВАТЬ (Д/Н)? NAME: ASSIGN (Y/N) ?
ЗАПОМНИТЬ (Д/Н) ? TO SAVE (Y/N)?
КАТАЛОГ ИМЕН CATALOG NAMES
КАТАЛОГ ПРОЦЕДУР CATALOG PROCEDURES
.ПУСТО. .EMPTY.
.ПРОЦЕДУРА. .PROCEDURE.
.ФУНКЦИЯ. .FUNCTION.
.ФАЙЛ. .FILE.
(Ч) , (П) , (С) (P) , (E) , (S)
ЦЕЛ INT
ДРОБ REAL
КОРТ KORT
МНОЖ SET
APPENDIX B
СИМВОЛЫ.
В этом приложении описывается символьный набор системы "ШКОЛЬНИЦА", ввод и отображение символов, их свойства в различных режимах работы системы.
Основное изложение ведется для ЭВМ "АГАТ" и ВЕРСИИ А1.1. В скобках приводятся соответствующие сведения "APPLE" и ВЕРСИИ Э1.3.
В.1 ПОНЯТИЕ О СИМВОЛАХ И ИХ ОБРАБОТКЕ.
Весь диалог пользователя с ЭВМ ведется с помощью символов. Символ - это минимальная единица текстовой информации в системе (в языке это литера). В системе "ШКОЛЬНИЦА" предусмотрена обработка 256 различных символов. Сопоставление им цифр, букв, знаков и даже некоторых действий позволяет организовать хранение и обработку текстовой информации с ЭВМ.
Символы различаются по своему коду. Код символа - это целое число от 0 до 255.
Символы выполняют три основные функции:
- Вводятся с клавиатуры ЭВМ (каждая клавиша, нажатая на том или ином регистре, посылает в машину код, рассматриваемый системой как код некоторого символа);
- Из них состоят хранящиеся в памяти текстовые данные;
- Выводятся на экран, печатающее устройство и т.п. (некоторым символам соответствует определенное изображение, возможно, разное на разных устройствах).
Кроме того, поступление с клавиатуры или на вывод некоторых символов рассматривается системой как сигнал пользователя или программы о необходимости выполнить дополнительные действия, предусмотренные в данном режиме работы. Такие символы часто называют управляющими.
Схематически процесс ввода, хранения и отображения символов можно изобразить так:
КЛАВИАТУРА ПАМЯТЬ ЭКРАН, ПЕЧ. УСТР-ВО
НАЖАТАЯ -(ВВОД) --> КОД СИМВОЛА - (ВЫВОД) --> ИЗОБРАЖЕНИЕ
КЛАВИША ^ ^ СИМВОЛА
ВЫПОЛНЕНИЕ ДОПОЛНИТЕЛЬНЫХ ДЕЙСТВИЙ
Поскольку многие вводимые символы сразу же поступают на вывод, то есть символы, которые несут дополнительную нагрузку и на вводе, и на выводе.
Ниже приводится более подробное описание набора символов системы "ШКОЛЬНИЦА" и их функциональной нагрузки.
В.2 КЛАВИАТУРА.
Клавиатура обеспечивает ввод символов на 4 регистрах: основном (одиночно нажатые клавиши), регистрах "РЕГ". "УПР" и "УПР-РЕГ" ("SHIFT", "CTRL" и "CTRL-SHIFT"). Нажатие любой клавиши, кроме "СБР" и "ПВТ" ("RESET" и "REPT"), на одном из этих регистров вызывает ввод в машину некоторого символа.
В таблицах 2.1 и 2.2 показано, какой код выдает та или иная клавиша. Обратите внимание на следующие особенности:
А) существуют клавиши (например, пробел, цифры, стрелки и др.), Которые "нечувствительны" к некоторым регистрам и выдают один и тот же символ;
Б) клавиатура обеспечивает ввод не всех 256 символов; это может оказаться удобным в тех программах, где потребуются зарезервированные символы, которые нельзя ввести с клавиатуры;
В) некоторые клавиши АГАТА" на регистрах "УПР" и "УПР-РЕГ" вообще не выдают никакого символа.
Г) каждая функциональная клавиша выдает тот же код, что и некоторая буквенная клавиша на регистре "УПР" (CTRL), например, клавиша перевода строки и "УПР-М" ("CTRL-M").
Символы, которые несут дополнительную функциональную нагрузку на вводе, приведены в таблицах 2.5 и 2.6
В.3 ПРОГРАММНАЯ СРЕДА
Алфавитом языка РАПИРА допустим лишь ограниченный набор символов (см. Приложение ...). Но в составе текстов могут встречаться все 256 символов. Задать в программе символ, который не вводится с клавиатуры, можно с помощью стандартной функции СИМ. Она имеет один параметр - десятичный код требуемого символа - и выдает в качестве результата литеру, содержащую этот символ.
Наоборот, определить по символу его код можно с помощью стандартной функции код. Ее параметром должна быть литера. Результат - целое число от 0 до 255.
В текстовый файл можно ввести любой символ, кроме символа с кодом 0, - он считается признаком конца файла. При попытке его вывода он заменяется символом с кодом 135.
Редактором программных текстов не вводится и не обрабатывается символ с кодом 127. При загрузке файла с диска этот символ заменяется пробелом.
В.4 ЭКРАН И БУМАГА
Вывод символа на экран и бумагу заключается в формировании изображения, соответствующего этому символу.
При выводе некоторых символов выполняются дополнительные действия (см. Таблицы 2.5, 2.6). Как можно видеть, все управление цветом выдаваемых символов, очистка экрана и другие полезные возможности в версии А1.1 возложены на символы. Это позволяет легко управлять изображением на экране, вставляя в выводимые из программы тексты символы переключения. В версии Э1.3 аналогичные действия выполняются с помощью стандартных процедур.
В.5 УПРАВЛЯЮЩИЕ КЛАВИШИ ОСНОВНОГО ДИАЛОГОВОГО РЕЖИМА.
Находясь в основном диалоговом режиме, можно достаточно свободно использовать при наборе весь экран.
Клавиша (РЕД) ( (ESC) ) устанавливает режим свободного перемещения по экрану. Это значит, что с помощью клавиш ← → ↑ ↓ ( J K L M, соответственно), можно подвести курсор к любой точке экрана, не вводя при этом в машину ни одного символа. В А1.1 в этом режиме курсор на экране мигает. Нажатие любой другой клавиши вызывает выход из этого режима.
Клавиши ↑ и ↓, нажатые вне этого режима, имеют тот же смысл.
Клавиша → кроме перемещения курсора дописывает в конец строки текущий символ с экрана. Пройдя по некоторому тексту на экране этой клавишей, можно, таким образом, ввести его в машину целиком, не набирая заново.
Клавиша ← кроме перемещения курсора стирает последний символ во вводимой строке, оставляя его на экране. Имейте в виду, что стирается не всегда тот символ, на который указывает курсор. Если, например, в ситуации
ПРИМЕР НЕСООТВЕТСТВИЯ
ТЕКСТА ЭКРАНУ¤
Нажать клавишу ↑ и пять раз клавишу ← то из вводимой строки исчезнут буквы "КРАНУ" а не "ЕСООТ", как это будет изображено на экране.
Клавиша F2 уничтожает на экране текущий символ, сдвигая при этом остаток экранной строчки влево. На освобождающееся место вставляется пробел.
Клавиша F3 освобождает на экране одну позицию перед текущим символом. Остаток экранной строчки при этом сдвигается вправо, и последний символ в ней пропадает.
Символ "УПР-L" очищает текстовое окно экрана и устанавливает курсор в его левый верхний угол.
Клавиши 1, 2, 3, 4, 5, 6, 7, 0, . , = и соответствующие им символы управляют цветом вывода символов и фона на экран (см. Таблицу 2.5).
В версии Э1.3 на ЭВМ "APPLE" эти клавиши и клавиши F2, F3, УПР-L аналогов не имеют.
Клавиши 8 и 9 заполняют пробелами, соответственно, остаток строки и остаток экрана, начиная с текущей позиции курсора (в версии Э1.3 им соответствуют клавиши E и F в режиме ESC).
Клавиша перевода строки (RETURN) сигнализирует машине о конце ввода пользователем очередной строки.
Клавиша F1 (CTRL-C) является универсальной клавишей останова. Связанные с ней в системе действия уже упоминались в основном тексте.
Нажатие клавиши УПР-X означает отказ от ввода строки. При этом на экране появляется символ "", строчка автоматически переводится и выдается приглашение к новому вводу.
Клавиша УПР-V позволяет записать во вводимую строку любой управляющий символ, не выполняя связанных с ним действий. На экране этот символ высвечивается инверсным желтым цветом. Вставка обычного символа равносильна вводу самого символа. Нельзя вставить только символ перевода строки (код 141, клавиша "УПР-V"). В версии Э1.3 этот механизм реализован только в редакторе.
В.6 НЕСТАНДАРТНОЕ ИСПОЛЬЗОВАНИЕ КЛАВИАТУРЫ.
Описанное в предыдущем параграфе использование клавиатуры и управляющих символов не является единственно возможным. Можно организовать диалог программы с пользователем через стандартную функцию КЛАВ, которая запрашивает с клавиатуры символ и возвращает в качестве результата его код. Все дополнительные действия в этом случае организуются программно.
Иное использование клавиатуры принято, например, в редакторе (см. П.5.2 и таблицу 2.7).
ТАБЛИЦА 2.1. Коды клавиш в версии А1.1. КЛАВ. ОДНА РЕГ УПР УПР-РЕГ! КЛАВ. ОДНА РЕГ УПР УПР-РЕГ ------------------------------------------------------- ;+ 187 171 187 187 ! Ч^ 254 222 - 158 1! 177 161 177 177 ! Ш[ 251 219 - 155 2" 178 162 178 178 ! Щ] 253 221 - 157 3# 179 163 179 179 ! Ь_ 255 233 - 159 4c 180 164 180 180 ! ЫY 249 217 - 153 5% 181 165 181 181 ! ЪX 248 216 - 152 66 182 166 182 182 ! Э\ 252 220 - 156 7' 183 167 183 183 ! Ю@ 224 192 128 128 8( 184 168 184 184 ! ЯQ 241 209 - 145 9) 185 169 185 185 ! /? 175 191 175 175 0 176 160 176 176 ! .> 174 190 174 174 -= 173 189 173 173 ! ,< 172 188 172 172 АA 193 193 129 129 ! :* 186 170 186 186 БB 226* 194* 130 130 !ПРОБЕЛ 160 160 160 160 ВW 194 215 - 151 ! Ф. 1 144 144 144 144 ГG 231 199 135 135 ! Ф. 2 145 145 145 145 ДD 228 196 132 132 ! Ф. 3 146 146 146 146 ЕE 197 197 133 133 ! Ф. 4 147 147 147 147 ЖV 246 214 - 150 ! Ф. 5 148 148 148 148 ЗZ 250 218 - 154 ! Ф. 6 156 156 156 156 ИI 233 201 137 137 ! Ф. 7 157 157 157 157 ЙJ 234 202 138 138 ! Ф. 8 158 158 158 158 КK 203 203 139 139 ! Ф. 9 159 159 159 159 ЛL 236 204 140 140 ! Ф. 0 129 129 129 129 МM 205 205 141 141 ! Ф. . 130 130 130 130 НN 200 206 142 142 ! Ф. = 131 131 131 131 ОO 207 207 143 143 ! F1 132 132 132 132 ПP 240 208 - 144 ! F2 133 133 133 133 РR 208 210 - 146 ! F3 134 134 134 134 СS 195 211 - 147 ! ↑ 153 153 153 153 ТT 212 212 - 148 ! ↓ 154 154 154 154 УU 245 213 - 149 ! → 149 149 149 149 ФF 230 198 134 134 ! ← 136 136 136 136 ХH 216 200 136 136 ! РЕД 155 155 155 155 ЦC 227 195 131 131 ! 141 141 141 141 -----------------------------------------------------
* Ввод зависит от положения тумблера слева на клавиатуре. При его переключении для буквенных клавиш колонки кодов надо заменить так: 1 ↔ 2 , 3 ↔ 4 .
ТАБЛИЦА 2.2. Коды клавиш в версии Э1.3. КЛАВ. ОДНА SHIFT CTRL ОБЕ ! КЛАВ.ОДНА SHIFT CTRL ОБЕ ----------------------------------------------------- +; 187 171 187 171 ! K 203 203 139 139 !1 177 161 177 161 ! L 204 204 140 140 "2 178 162 178 162 ! M 205 221 141 157 #3 179 163 179 163 ! N^ 206 219 142 158 $4 180 164 180 164 ! O 207 207 143 143 %5 181 165 181 165 ! P@ 208 192 144 128 &6 182 166 182 166 ! Q 209 209 145 145 '7 183 167 183 167 ! R 210 210 146 146 (8 184 168 184 168 ! S 211 211 147 147 )9 185 169 185 169 ! T 212 212 148 148 0 160 176 160 176 ! U 213 213 149 149 =- 173 189 173 189 ! V 214 214 150 150 A 193 193 129 129 ! W 215 215 151 151 B 194 194 130 130 ! X 216 216 152 152 C 195 195 131 131 ! Y 217 217 153 153 D 196 196 132 132 ! Z 218 218 154 154 E 197 197 133 133 ! ← 136 136 136 136 F 198 198 134 134 ! → 149 149 149 149 G 199 199 135 135 ! ESC 155 155 155 155 H 200 200 136 136 ! ПРОБЕЛ 160 160 160 160 I 201 201 137 137 ! RETURN 141 141 141 141 J 202 202 138 138 ! >. 174 190 174 174 ?/ 175 191 175 175 ! <, 172 188 172 172 *: 186 170 186 170 ! -----------------------------------------------------
ТАБЛИЦА 2.3. Вывод символов на экран в версии А1.1 КОД! 160 176 192 208 224 240 ------------------------------ 0 ! 0 @ P Ю П ! 1 ! ! 1 A Q А Я ! 2 ! " 2 B R Б Р ! 3 ! # 3 C S Ц С ! 4 ! $ 4 D T Д Т ! 5 ! % 5 E U Е У ! 6 ! & 6 F V Ф В ! 7 ! ' 7 G W Г В ! 8 ! ( 8 H X Х Ь ! 9 ! ) 9 I Y И Ы ! 10 ! * : J Z Й З ! 11 ! + ; K [ К Ш ! 12 ! , < L \ Л Э ! 13 ! - = M ] М Щ ! 14 ! . > N ^ Н Ч ! 15 ! / ? O _ О Ъ ! ------------------------------
Символы с кодами 128-159 (управляющие) на экран не выдаются. Их действия при выводе см. в таблице 2.5.
Символы с кодами 0-127 выводятся так же, как символы с кодами 128-255.
ТАБЛИЦА 2.4. Вывод символов на экран в версии Э1.3 (ASCII-код) К ! 32 48 0 16 - ИНВЕРСНЫЕ О ! 96 112 64 80 - МИГАЮЩИЕ Д ! 160 176 192 208 - НОРМАЛЬНЫЕ ! 224 240 ---------------------- 0 ! 0 @ P ! 1 ! ! 1 A Q ! 2 ! ~ 2 B R ! 3 ! # 3 C S ! 4 ! $ 4 D T ! 5 ! % 5 E U ! 6 ! & 6 F V ! 7 ! ` 7 G W ! 8 ! ( 8 H X ! 9 ! ) 9 I Y ! 10 ! * : J Z ! 11 ! + ; K [ ! 12 ! , < L \ ! 13 ! - = M ] ! 14 ! . > N ^ ! 15 ! / ? O _ ! ----------------------
Символы с кодами 128-159 на экран не выводятся. Их действие на вводе см. в таблице 2.6.
ТАБЛИЦА 2.5. Управляющие символы в версии А1.1
(ОПИСАНИЕ В П.5).
КОД КЛАВИША ВРЕМЯ ДЕЙСТВИЯ
-------------------------------------------------------------------
129 0 вывод уст. выдачу нормальных символов
130 . вывод уст. выдачу инверсных символов
131 = вывод уст. выдачу мигающих символов
132 F1 ввод универсальная клавиша останова и прерывания
133 F2 ввод сдвиг остатка строки экрана влево на одну позицию
134 F3 ввод сдвиг остатка строки экрана вправо на одну позицию
135 УПР-G вывод звуковой сигнал
136 ← вывод* сдвиг курсора к предыдущему символу на экране
ввод уничтожение последнего введенного символа
138 УПР-J вывод переход к началу следующей строки
140 УПР-I вывод очистка текстового окна экрана
141 вывод переход к началу следующей строки
ввод конец строки ввода
144 1 вывод уст. красный цвет выдачи
145 2 вывод уст. зеленый цвет выдачи
146 3 вывод уст. желтый цвет выдачи
147 4 вывод уст. синий цвет выдачи
148 5 вывод уст. фиолетовый цвет выдачи
149 → вывод сдвиг курсора к следующему символу на экране
ввод ввод текущего символа с экрана
150 УПР-V ввод вставка упр. символа во вводимую строку
152 УПР-X ввод отказ от вводимой строки
153 ↑ вывод сдвиг курсора на строчку вверх
154 ↓ вывод сдвиг курсора на строчку вниз
155 РЕД ввод переход в режим свободного перемещения по экрану
156 6 вывод уст. голубой цвет выдачи
157 7 вывод уст. белый цвет выдачи
158 8 вывод очистка остатка текущей строки (в пределах окна)
159 9 вывод очистка остатка экрана (в пределах окна)
-------------------------------------------------------------------
* Те же действия на вводе в режиме РЕД
ТАБЛИЦА 2.6 Управляющие символы в версии Э1.3 (ОПИСАНИЕ СМ. В П.5). НА ВВОДЕ: КЛАВ. КОД ВВ.СИМВ. ДЕЙСТВИЯ -------------------------------------------------------------- CTRL-O 132 останов программы CTRL-G 223 вводится как "_" RETURN 141 конец вводимой строки CTRL-X - отказ от вводимой строки → - ввод текущего символа с экрана ← - уничтожение последнего введенного символа SHIFT-N 219 вводится как "[" SHIFT-M 221 вводится как "]" D ** - т0 же самое J * - сдвиг курсора к предыдущему символу на экране B ** - то же самое K * - сдвиг курсора к следующему символу на экране A ** - то же самое M * - сдвиг курсора на строчку вниз C ** - то же самое E ** - очистка остатка текущей строки (в пределах окна) F ** - очистка остатка экрана (в пределах окна) @ ** - очистка всего экрана (в пределах окна) --------------------------------------------------------------- * В режиме ESC ** В режиме ESC; после исполнения происходит выход из этого режима НА ВЫВОДЕ: КОД СИМВОЛ ДЕЙСТВИЯ --------------------------------------------------------------------- 135 CTRL-G звуковой сигнал 136 CTRL-H сдвиг курсора к предыдущему символу на экране 138 CTRL-B переход к началу следующей строки 141 CTRL-M то же самое 149 CTRL-U сдвиг курсора к следующему символу на экране ---------------------------------------------------------------------
ТАБЛИЦА 2.7. УПРАВЛЯЮЩИЕ КЛАВИШИ РЕДАКТОРА
А1.1 Э1.3 НАЗНАЧЕНИЕ
-------------------------------------------
↑ CTRL-O
↓ CTRL-L перемещение курсора по экрану
→ →
← ←
RETURN в режиме редактирования - вставка новой строки,
в режиме меню - конец ответа на запрос
1 CTRL-D уничтожить текущий символ (DELETE)
2 CTRL-I начать вставку символа (INSERT)
3 CTRL-B перейти к началу следующей строки текста (BEGIN)
4 CTRL-P показать предыдущую страницу текста (PREVIOUS)
5 CTRL-N показать следующую страницу текста (NEXT)
6 CTRL-Z центрировать текущую строчку
7 CTRL-S склеить текущую строчку текста со следующей
8 CTRL-T обрезать остаток текущей строки текста (TRUNCATE)
9 CTRL-K уничтожить текущую строку ТЕКСТА (KILL)
F3 CTRL-F найти очеред. вхождение запоминаемой цепочки символов (FIND)
F1 CTRL-C отказ от запроса в меню (CANCEL)
РЕД ESC переход из режима редактирования в режим меню и наоборот
УПР-V CTRL-V вставка в текст управляющего символа
УПР-A CTRL-A в данной позиции цепочки допустим любой символ (ANY)
-------------------------------------------
APPENDIX D
ДИАГНОСТЧЕСКИЕ СООБЩЕНИЯ.
В этом приложении описываются сообщения об ошибках, выдаваемые интерпретатором языков РАПИРА и РОБИК в версиях А1.1 и Э1.3. Основное изложение ведется для версии А1.1. В скобках приведены соответствующие данные по Э1.3. Все принятые в системе количественные ограничения, нарушение которых контролируется интерпретатором, можно найти в приложении 5.
D.1 ЛЕКСИЧЕСКИЕ И СИНТАКСИЧЕСКИЕ ОШИБКИ.
D.1.1 ПРИЧИНЫ ВОЗНИКНОВЕНИЯ
Лексические и синтаксические ошибки - это ошибки в записи программы, т.е. Несоблюдение правил построения лексем, выражений и предписаний по синтаксическим диаграммам языка (см. прил.3). Ошибки в записи лексем - имен, текстов, чисел, специальных составных символов - называются лексическими. Ошибки при составлении предписаний из отдельных лексем называются синтаксическими. При попытке ввести такое предписание в машину будет выдано сообщение о синтаксической (лексической) ошибке, и программа не выполнится.
В системе "Школьница" такие ошибки возможны в следующих ситуациях:
1) Неверное предписание в основном диалоговом режиме. Строка дублируется от начала предписания, в котором допущена ошибка, до конца строки; причем неправильная лексема выделяется на экране цветом (А1.1) или инверсом (Э1.3), затем выдается сообщение о характере ошибки.
чтобы все-таки исполнить предписание, в котором допущена ошибка, его необходимо полностью ввести еще раз, исправив ошибку. В случае сложных предписаний это можно сделать с помощью описанных в приложении 2 средств экранного редактирования в основном диалоговом режиме.
2) Неверное предписание в процедурном блоке. При выходе из редактора и проверке синтаксиса на экран выдается участок редактируемого текста, в котором начало ошибочной лексемы отмечено курсором. На нижней строке выдается сообщение о характере ошибки. Следует исправить ошибку и повторить выход.
3) Неверная запись данных во время ввода по предписанию ввод данных (INPUT DATA). Если данные вводятся с клавиатуры, то, как и в первом случае, выдается последняя введенная строка с выделенной ошибочной лексемой, а затем - сообщение "ошибка: повторите ввод" ("ERR:REENTER"). После этого следует продолжить ввод данных, считая ошибочную лексему переводом строки (см. пример в п.4.9 инструкции).
При вводе данных из файла выдается только сообщение "ошибка ввода" ("INPUT ERROR"), и ошибка считается ошибкой исполнения программы (см. П.2.2 сообщения п14 и п15).
4) Неверное предписание в процедурном блоке, вводимом из ДЗУ по предписаниям "ВВОД ИЗ ДЗУ" (INPUT OF DISK) и "ВКЛ ПАКЕТ" (ON PACKET). В этой ситуации выдается сообщение о характере ошибки, а сама она рассматривается как ошибка исполнения программы. Исправить ошибку можно средствами редактора.
При возникновении синтаксической (лексической) ошибки текущий режим работы системы не меняется. Вся диагностическая информация поступает в поток системного вывода.
D.1.2 ДИАГНОСТИЧЕСКИЕ СООБЩЕНИЯ
Большинство сообщений имеет вид:
ТРЕБУЕТСЯ <СПИСОК ЛЕКСЕМ> (<СПИСОК ЛЕКСЕМ> EXPECTED)
Такие сообщения выдаются, когда при анализе очередной лексемы оказалось, что по правилам записи предписания она недопустима. Список состоит из тех лексем, которые допустимы в данной позиции. Он, однако, не всегда точно указывает на те изменения, которые необходимо произвести в программе.
Ниже перечислены все возможные сообщения о лексических и синтаксических ошибках и краткие пояснения к ситуациям, в которых они возникают.
ЛЕКСИЧЕСКИЕ ОШИБКИ.
Л1. ТРЕБУЕТСЯ ЦИФРА ПОСЛЕ ТОЧКИ (REAL PART EXRESTED)
В записи дробного числа отсутствуют цифры после точки, что недопустимо. Примеры:
10. 25.E17
Если необходимо записать число с нулевой дробной частью, то следует после точки поставить ноль:
10.0 25.0E17 ИЛИ 25E17
Л2. ТРЕБУЕТСЯ ПОКАЗАТЕЛЬ СТЕПЕНИ (EXPONENT EXPECTED)
Допущена ошибка в записи порядка дробного числа. Примеры:
1E-A 1.1E*+7
Л3. НЕ ЗАКРЫТ ТЕКСТ (QUOTE EXPECTED)
Отсутствует закрывающая кавычка текста. Если необходим символ перевода строки внутри текста, то его следует вставить программными средствами, например, с помощью функции сим (CHR).
Л4. "" В КОНЦЕ ИМЕНИ (NAME EТВS BY "")
Л5. "_" В ИМЕНИ ("_" IN NAME)
Такие имена по правилам языка недопустимы.
Л6. НЕПОНЯТНЫЙ СИМВОЛ (BAD SYMBOL)
Встретился символ, не входящий в алфавит языка (% управляющие символы и др.) Или подчерк стоит не внутри имени, текста или комментария.
В версии А1.1 непонятными считаются все управляющие символы, вставленные во вводимую строку.
В версии Э1.3 непонятными считаются все управляющие символы, кроме символа перевода строки и редактирующих.
Л7. СЛИШКОМ ДЛИННАЯ ЛЕКСЕМА (LONG LEXEM)
Длина лексемы - текста, числа, имени при вводе с клавиатуры, из файла или при анализе описания процедурного блока больше максимально допустимой.
Л8. НЕДОПУСТИМОЕ ДРОБНОЕ (REAL OVERFLOW)
Вводится слишком большое или слишком маленькое (по модулю) дробное число. Это сообщение будет выдано в том случае, когда явно задан недопустимый порядок числа: например, хотя число 0,001e128 возможно, его явно указанный порядок 128 недопустим.
Л9. ТРЕБУЕТСЯ "*)" ("*)" EXPECTED)
Нет закрывающей скобки комментария в процедурном блоке.
СИНТАКСИЧЕСКИЕ ОШИБКИ
С1. ТРЕБУЕТСЯ ";" (";" EXPECTED)
Начало предписания может быть воспринято как некоторое другое правильное предписание, а дальнейшая его часть синтаксически неверна. По диаграмме в этой позиции может стоять точка с запятой или некоторая, необязательная часть предписания.
Можно выделить основные типы ошибок, которые сопровождаются этой диагностикой.
А) Нет разделителя между предписаниями, например:
А->В ВЫВОД:В;
Б) Неверное начало предписания (рассматривается как пустое предписание), например:
А->В; )А+В)*2->С;
В) Начало выражения, которым оканчивается предписание, представляет собой другое правильное выражение:
ВЫВОД: (А+И) ! (С+Е); КОНТРОЛЬ А> (К+М) );
Подчеркнута та часть предписания, которая представляет собой синтаксически правильную конструкцию.
Г) Пропущена запятая в списке элементов (в предписаниях вкл, выкл, ввод, вывод, имена), например:
ВКЛ ПРОКРУТКУ: А,В С,Д; ВЫВОД: А+7, В**2(7-К);
С2. ТРЕБУЕТСЯ "ВСЕ" ("CLUSE" EXPECTED)
Ситуация, подобная C1, возникла в сложном предписании; т.е. по диаграмме в текущей позиции допустимы слово "ВСЕ" ("CLOSE") или предписание. Примеры:
ЕСЛИ А>В ТО 1->А ВСЕ;
После "1->А" возможны еще предписания через ";", ключевое слово "ВСЕ" ("CLOSE") или ключевое слово "иначе" ("ELSE') с альтернативной частью условного предписания.
Еще больше возможных продолжений можно найти в следующей ситуации (см. диаграмму 18):
ВЫБОР А ИЗ 1: 1-)В В
СЗ. ТРЕБУЕТСЯ "КНЦ" ("END" EXPECTED)
С4. ТРЕБУЕТСЯ "РЕЗ" ("RES" EXPECTED)
Ситуация, подобная C1, возникла в описании процедурного блока.
С5. ТРЕБУЕТСЯ ИМЯ (NAME EXPECTED)
С6. ТРЕБУЕТСЯ ИМЯ ФАЙЛА (FILE NAME EXPECTED)
По диаграмме предписания в данной позиции должно стоять имя.
С7. ТРЕБУЕТСЯ ВЫРАЖЕНИЕ ИЛИ "ИЗ" (EXPRESSION OR "OF" EXPECTED)
Ошибка в заголовке предписания выбор (CASE), при котором неизвестно, какая из двух форм этого предписания имелась в виду, например:
ВЫБОР :
С8. ТРЕБУЕТСЯ ОПЕРАНД (OPERAND EXPECTED)
Ошибка в записи операнда одной из операции в выражении.
С9. ТРЕБУЕТСЯ ЗНАК ОПЕРАЦИИ ИЛИ ПРИСВАИВАНИЕ (OPERATION OR "->" EXPECTED)
В начале предписания стоит выражение, после которого нет знака присваивания или скобок вызова. Других предписании, начинающихся с выражения, в языке нет.
С10. ТРЕБУЕТСЯ ПРОЦ.БЛОК (PROC.BLOCK EXPECTED)
Нет заголовка описания процедуры или функции "ПРОЦ" или "ФУНК" ("PROC" или "FUNC"). Эта диагностика возможна в двух сдучаях:
А) В анализируемом как процедурный блок тексте первая лексема не "ПРОЦ" и не "ФУНК";
В) После конца описания очередной процедуры или функций есть еще символьная информация, не являющаяся описанием процедурного блока или комментарием.
Таким образом, в транслируемом файле могут располагаться только процедуры и функции, возможно, разделенные комментариями.
С11. ТРЕБУЕТСЯ УСТРОЙСТВО (DEVICE EXPECTED)
В предписаниях переключения вывода ВКЛ/ВЫКЛ отладку /ВЫВОД/ протокол не указано направление вывода - "НА БУМАГУ" или "НА ЭКРАН" или "В ФАЙЛ имя".
С12. НЕВЕРНЫЙ ЗАГОЛОВОК ЦИКЛА (BAD LOOP TITLE)
нет на месте ключевых слов "ОТ" ("FROM") или "ИЗ" ("OF") в цикле для ("FOR"). Например:
ДЛЯ I=5 ДО 7 ::
С13. НЕВЕРНЫЙ РЕЖИМ (BAD OPTION)
Указан несуществующий режим в предписаниях ВКЛ/ВЫКЛ. Например:
ВКЛ СВЕТ;
С14. СЛИШКОМ ДЛИННЫЙ СПИСОК (LONG LIST)
Слишком много элементов кортежа, множества, параметров процедуры на вводе (см. приложение 5).
С15. ТАКОЕ ИМЯ УЖЕ БЫЛО (TWICE DECLARED NAME)
Повторение имени в записи, списке локальных имен и имен параметров процедуры, совпадение имени параметра с локальным именем.
С16. ПРОЧИЕ СООБЩЕНИЯ:
ТРЕБУЕТСЯ УСЛОВИЕ CONDITION EXPECTED ТРЕБУЕТСЯ ВЫРАЖЕНИЕ EXPRESSION EXPECTED ТРЕБУЕТСЯ "]" ИЛИ "," "]" OR "," EXPECTED ТРЕБУЕТСЯ ":" ИЛИ "," ":" OR "," EXPECTED ТРЕБУЕТСЯ "БУМАГУ" ИЛИ "ЭКРАН" "PRINTER" OR "DISPLAY" EXPECTED ТРЕБУЕТСЯ ">" ИЛИ "," ">" OR "," EXPECTED ТРЕБУЕТСЯ "*>" ИЛИ "," "*>" OR "," EXPECTED ТРЕБУЕТСЯ "c>" ИЛИ "," "c>" OR "," EXPECTED ТРЕБУЕТСЯ ")" ИЛИ "," ")" OR "," EXPECTED ТРЕБУЕТСЯ ")" ")" EXPECTED ТРЕБУЕТСЯ "=" "=" EXPECTED ТРЕБУЕТСЯ КЛЮЧЕВОЕ СЛОВО КЛЮЧЕВОЕ СЛОВО EXPECTED ТРЕБУЕТСЯ "::" "::" EXPECTED
D.1.3 ОШИБКИ ПРОГРАММИСТА.
П1. 0**0
Х/0 ИМЯ:НЕДОПУСТИМЫЙ ПАРАМЕТР (ИМЯ:OUTRANGE VALUE) ИМЯ:ВЫХОД ЗА ГРАНИЦЫ ЭКРАНА (ИМЯ:OUT OF SCREEN) НЕДОПУСТИМОЕ ДРОБНОЕ (REAL OVERFLOW) СЛИШКОМ БОЛЬШОЕ ЦЕЛОЕ (LONG INTEGER)
П2. НЕДОПУСТИМЫЕ ОПЕРАНДЫ ОПЕРАЦИЯ (BAD ОПЕРАЦИЯ OPERANDS)
Сделана попытка выполнить указанную операцию над об'ектами непредусмотренных для нее видов.
П3. НЕВЕРНАЯ ДЛИНА ВЫРЕЗКИ (BAD CLIP SIZE)
П4. ВЫРЕЗКА НЕВОЗМОЖНА (BAD CLIP TYPE)
П5. НЕВЕРНЫЕ ИНДЕКСЫ (BAD INDICES)
П6. ТЕКСТ - НЕ ЛИТЕРА
Параметры стандартных функций СИМ (CHR) и ПРИГЛ (PROMPT), а также первый операнд операции "ИЗ" ("OF") должны быть односимвольными текстами (литерами).
П7. В ЗАПИСИ НЕТ ПОЛЯ ИМЯ (NO NAME ИМЯ IN RECORD)
В записи отсутствует поле с указанным именем.
СОДЕРЖАНИЕ A.0 СООТВЕТСТВИЕ ЛЕКСИКИ.................. A-1 A.1 ОБЩЕЕ СИСТЕМНОЕ МЕНЮ.................. A-1 A.2 КЛЮЧЕВЫЕ СЛОВА ЯЗЫКА РАПИРА........... A-1 A.З НАЗВАНИЯ РЕЖИМОВ...................... A-3 A.4 ПРОЧИЕ СООБЩЕНИЯ И ЗАПРОСЫ СИСТЕМЫ.... A-3 B.0 СИМВОЛЫ............................... B-1 B.1 ПОНЯТИЕ О СИМВОЛАХ И ИХ ОБРАБОТКЕ..... B-1 B.2 КЛАВИАТУРА............................ B-2 B.З ПРОГРАММНАЯ СРЕДА..................... B-2 B.4 ЭКРАН И БУМАГА........................ B-3 B.5 УПРАВЛЯЮЩИЕ КЛАВИШИ................... B-3 B.4 НЕСТАНДАРТНОЕ ИСПОЛЬЗОВАНИЕ КЛАВИАТУРЫ. B-4 C.0 --- --- --- --- --- --- --- C-1 D.0 ДИАГНОСТИЧЕСКИЕ СООБЩЕНИЯ.............. D-1 D.1 ЛЕКСИЧЕСКИЕ И СИНТАКСИЧЕСКИЕ ОШИБКИ.... D-1 D.1.1 ПРИЧИНЫ ВОЗНИКНОВЕНИЯ.............. D-1 D.1.2 ДИАГНОСТИЧЕСКИЕ СООБЩЕНИЯ.......... D-2 D.1.3 ОШИБКИ ПРОГРАММИСТА................ D-6