
Курсовик / Руководство оператора
.doc
КФБН.00000-01 34 01-1
1. НАЗНАЧЕНИЕ ПРОГРАММЫ.
Транслятор предназначен для транслирования программы, написанной на языке высокого уровня, в объектный псевдокод, с дальнейшей его интерпретацией и получением результата работы программы.
2. УСЛОВИЯ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ.
Для обеспечения нормального функционирования программы необходима IBM PC совместимая персональная вычислительная машина с параметрами, удовлетворяющими Windows 9x и установленным .NET Framework.
3. РУКОВОДСТВО ОПЕРАТОРА.
3.1 Описание интерфейса
-
Окно транслятора представляет собой окно с главным меню, панелью управления с кнопками, дублирующими пункты подменю главного меню и клиентской областью, занимающей все остальное пространство, в котором находится поле ввода текста программы, поле вывода псевдокода, поле рабочей консоли и поле отображения ошибок в тексте программы.
-
Структура меню представлена следующим списком:
-
Файл
-
Новый…
-
Открыть…
-
Сохранить…
-
Выход
-
-
Трансляция
-
Получить псевдокод
-
Исполнить
-
Справка
-
Примеры
-
О программе…
Описание пунктов меню изложено ниже в соответствующих пунктах данного руководства.
-
Все пункты меню (кроме “Файл→Выход” и “Справка→О программе…”) продублированы кнопками на панели управления с соответствующими значками на них. В дальнейшем выбор пункта меню предполагает возможную замену этого действия на нажатие дублирующей кнопки панели управления.
-
Очистка текущего состояния (возврат к первоначальному) производится путем выбора пункта меню “Файл→Новый”. При этом произойдет очистка ввода программы и поля состояния.
-
Загрузка текста программы производится путем выбора пункта меню “Файл→Открыть…”. При этом текст из выбранного в диалоговом окне файла будет отображен вместо текущего текста в поле ввода текста.
-
Сохранение текста из выбранного поля производится путем выбора пункта меню “Файл→Сохранить…”. Сохранение текущей закладки будет произведено в выбранный файл.
-
Выход из программы (помимо прочих средств окна Windows) определен посредством меню “Файл→Выход”.
-
Трансляция исходного текста производится при выборе пункта меню “Транслятор→Получить псевдокод”, при этом в поле вывода ошибок могут быть выведены сведения об ошибках, а если ошибки отсутствуют, то появится сообщение об успехе операции.
-
При выборе пункта меню “Транслятор→Исполнить” будет выполнена трансляция программы, выведены сообщения о возможных ошибках, либо об успехе операции, и при успешном результате начнется интерпретация промежуточного кода, результат которой будет виден в поле “Исполнение”.
-
Пункт меню “Справка→О программе…” позволяет просмотреть сведения о разработчике.
-
Для удобства написания программы производится подсветка синтаксиса.
-
Синтаксис текста программы проверяется согласно пункту 4.1.7 ТЗ.
3.2 Описание синтаксиса входного языка
-
Программа должна начинаться с объявления ее имени в виде “Program имя_программы”
-
Все связки операндов должны отделяться друг от друга символом “;”
-
Далее возможно объявление функций в следующем формате: “Function имя_функции (идентификатор [, идентификаторы] : тип параметров) : тип_результата; [Var идентификатор [, идентификаторы] : тип переменной;] Begin тело_подпрограммы End;.”
-
Объявление переменных осуществляется после ключевого слова Var и имеет вид “имя_переменной_1, имя_переменной_2,… , имя_переменной_n : тип_переменной;”
-
После Var идет секция Begin…End, в которой помещается код программы.
-
Порядок секций должен соблюдаться.
-
Повторное объявление идентификаторов запрещено;
-
Операции записываются в общепринятой форме;
-
Формат метки имеет вид: “Label идентификатор:”
-
Формат безусловного перехода имеет вид: “ Goto идентификатор_метки;”
-
Для ввода значений используется конструкция “ReadLn(имя_переменной)”. Вывод осуществляет при помощи конструкции “WriteLn(имя_переменной | выражение)”.
4. СООБЩЕНИЯ ОПЕРАТОРУ.
-
При несоблюдении грамматики языка должны выдаваться сообщения об ошибках, записываться в поле вывода ошибок и вызывать (при выделении) подсвечивание строки, где они были найдены.
-
При отсутствии текста, подлежащего трансляции, будет выведено сообщение “[Синтаксическая ошибка] Строка X : Неожиданный конец файла”, где Х – номер строки с ошибкой, для устранения которой следует ввести код программы в окно ввода.
-
При использовании в тексте программы (исключая комментарии) пользователем символов, не оговоренных в ТЗ, будет выведено сообщение типа “[Лексическая ошибка] Строка X: Недопустимый символ”, где Х – номер строки с ошибкой. Для устранения следует просмотреть строку и удалить из нее недопустимые алфавитом символы.
-
При использовании в тексте программы пользователем идентификаторов, не соответствующих требованиям ТЗ, возникнет ошибка “[Лексическая ошибка] Строка X : Y - недопустимое имя идентификатора”, где Y – имя идентификатора. Для устранения следует найти и удалить/изменить неверные идентификаторы.
-
При объявлении метки способом, не предусмотренным ТЗ, появится сообщение “[Синтаксическая ошибка] Строка X : Неправильное объявление метки Y”, где Y – имя метки. Для устранения следует объявить метку по правилам в ТЗ.
-
При повторном объявлении метки появится ошибка “[Синтаксическая ошибка] Строка X : Повторное определение метки Y”, где Y – имя этой метки. Для устранения следует изменить имя объявляемой метки.
-
При попытке перейти на необъявленную метку возникнет сообщение “[Синтаксическая ошибка] Строка X : Использование необъявленной метки Y”, где Y – имя необъявленной метки. Для устранения ошибки требуется определить метку.
-
При попытке использования необъявленного идентификатора возникнет ошибка “[Синтаксическая ошибка] Строка X : Необъявленный идентификатор”, для устранения необходимо объявить идентификатор.
-
При повторном объявлении идентификатора возникнет ошибка вида “[Синтаксическая ошибка] Строка X : повторное объявление идентификатора Y ”, для устранения которой требуется переименовать одну из переменных.
-
При использовании в арифметических выражениях операндов разного типа может возникнуть целый ряд ошибок вида “[Синтаксическая ошибка] Строка X : Разные типы операндов у операции Y”, где Y – одна из поддерживаемых операций (+,–,*,/). Для устранения требуется привести переменные к соответствующему типу.
-
Отсутствие идентификатора в левой части присваивания приведет к ошибке типа “[Синтаксическая ошибка] Строка X : Ожидается идентификатор в левой части присваивания”, для устранения которой следует поместить идентификатор слева от оператора присваивания.
-
Аналогично, отсутствие в правой части присваивания выражения приведет к ошибке “[Синтаксическая ошибка] Строка X : Ожидается выражение в правой части присваивания", для устранения которой следует поместить какое-либо арифметическое выражение в правой части присваивания.
-
Если типы выражений по обе стороны от знака присваивания различны, то возникнет ошибка “[Синтаксическая ошибка] Строка X : Присваиваемое значение не соответствует по типу", для устранения которой следует изменить типы с той или другой стороны.
-
При обработке текста программы во многих местах ожидаются соответствующие ключевые слова, либо разделители, поэтому при отступлении от правил написания программы может наблюдаться следующая ошибка: “[Синтаксическая ошибка] Строка X : Ожидается Y”, где Y – может быть “(,),:,;.Program, Begin, End”. Для устранения следует в соответствующем месте вставить требуемую часть конструкции.
-
При перечислении аргументов функции несоответствующего типа или количества возникнет ошибка “[Синтаксическая ошибка] Строка X : Несоответствие аргументов вызываемой функции Y”, для устранения которой следует исправить вызов функции таким образом, чтобы аргументы совпадали по количеству и типу с заявленными.
-
При задании несуществующего типа переменной или функции возникнет ошибка “[Синтаксическая ошибка] Строка X : Y не является поддерживаемым типом", где Y - неподдерживаемый тип. Для устранения следует объявить тип переменной с помощью поддерживаемых типов.
-
При обнаружении непарных кавычек появится ошибка “[Синтаксическая ошибка] Строка X : Не закрыты кавычки”, для устранения которой следует закрыть кавычки.
-
При обнаружении непарных скобок комментария появится ошибка “[Синтаксическая ошибка] Строка X : Незакрытый комментарий”, для устранения которой следует закрыть комментарий.
-
При обнаружении лишнего ключевого слова End появится ошибка “[Синтаксическая ошибка] Строка X : Лишний End”, для устранения которой следует удалить лишний End.
-
При отсутствии в секции Var объявлений переменных появится ошибка “[Синтаксическая ошибка] Строка X : В секции Var отсутствуют переменные", для устранения которой следует либо удалить заголовок секции, либо объявить переменные в этой секции.
-
При соответствии текста программы грамматике языка в окне сообщений появится сообщение “Трансляция программы успешно завершена”.