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