Скачиваний:
16
Добавлен:
02.02.2015
Размер:
65.54 Кб
Скачать

9

КФБН 11178-01 90 01-1

1. ВВЕДЕНИЕ

Данный программный продукт – транслятор языка высокого уровня (упрощенной версии языка Pascal).

2. ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ

Основанием для разработки данного программного продукта является учебный план специальности 220400 (Программное обеспечение вычислительных и автоматизированных систем) по дисциплине “Теория языков программирования и методы трансляции”, утвержденный ректором СГТУ.

3. НАЗНАЧЕНИЕ РАЗРАБОТКИ

Транслятор предназначен для транслирования программы, написанной на языке высокого уровня, в объектный псевдокод, с дальнейшей его интерпретацией и получением результата работы программы.

4. ТРЕБОВАНИЯ К ПРОГРАММЕ

4.1 Требования к функциональным характеристикам:

  1. Транслятор должен работать в оконном графическом режиме и поддерживать работу, как клавиатуры, так и манипулятора типа "мышь”.

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

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

  4. Транслятор должен поддерживать сохранение составленной программы, полученного псевдокода, результата работы интерпретированной программы.

  5. Транслятор должен обнаруживать как лексические, так и синтаксические ошибки:

    1. отсутствие текста программы;

    2. использование недопустимого символа в программе;

    3. использование лексически неверного идентификатора;

    4. неверное/повторное объявление метки;

    5. использование необъявленной метки;

    6. использование необъявленного идентификатора

    7. повторное объявление идентификатора;

    8. несоответствие типов операндов друг другу при операциях +,–,*,/

    9. отсутствие, либо неверный формат левой части присваивания;

    10. отсутствие выражения в правой части присваивания;

    11. несоответствие типа выражения справа от присваивания, типу идентификатора, участвующего в присвоении слева;

    12. отсутствие ожидаемых конструкций, таких как: ‘(‘,’)’,’:’,’;’.’.’, Program, Begin,End;

    13. несоответствие типов и количества аргументов вызываемой функции;

    14. незакрытые кавычки строковой константы;

    15. незакрытый комментарий;

    16. лишний End.

    17. отсутствие в секции Var объявления переменных;

  1. В сообщении об ошибке должен обязательно присутствовать номер строки, где эта ошибка была найдена и прочая вспомогательная информация (имя ошибочного идентификатора, операция, операнды которой несовместимы по типам и т.п.)

  2. При двойном щелчке мышью на строке ошибки должна подсвечиваться строка в программе, где произошла эта ошибка.

  3. Исходный текст программы и псевдокод должны иметь подсветку синтаксиса.

  4. Транслятор должен обеспечивать подсказку о текущем месте редактирования (строка, колонка).

  5. Встроенный интерпретатор не должен выводить сообщения об ошибках времени исполнения, а должен до конца пытаться интерпретировать полученные им данные.

  6. Язык исходного текста программы должен соответствовать следующим требованиям:

  1. Алфавит языка должен содержать только латинские буквы цифры и разделители +, -, *, /, (,), :, ;, =, {, }, пробел, но при этом допускать использование прочих символов в комментариях и текстовых константах.

  2. Язык должен допускать использование комментариев.

  3. Идентификаторы должны начинаться с буквы алфавита и могут включать буквы и цифры.

  4. Длина идентификатора выбирается по желанию пользователя

  5. Язык должен предусматривать следующие грамматические конструкции: описание заголовка и тела программы, объявление переменной, описание объявления функции, безусловный переход, присвоение значения переменной, ввод/вывод значения переменной.

  6. Язык должен содержать ключевые слова Program, Begin, Var, Real, Integer, String, Label, Goto, Function.

  7. Регистр существенен для идентификаторов, но несущественен для ключевых слов.

  8. Язык должен поддерживать системные функции ввода/вывода ReadLn/WriteLn, математические функции Sin,Cos,Tan,Exp, воспринимающие данные и вещественного, и целого типов.

  9. Язык должен поддерживать три типа данных: целый (Integer), вещественный (Real) и строковый (String).

  10. Присваивание должно обеспечиваться оператором “:=”.

  11. Тип значения, вводимого пользователем при интерпретации программы должен автоматически приводиться к требуемому типу.

  12. Язык должен содержать операции сложения, вычитания, умножения и деления. Приоритет операций должен соответствовать общепринятому.

  13. Тип операндов при любых операциях должен совпадать.

  14. Комментарии должны выделяться парой “{..}”.

  15. Конструкции должны отделяться друг от друга символом “;”.

  16. Использование необъявленных идентификаторов недопустимо.

  17. Заголовок программы должен начинаться с ключевого слова Program.

  18. Секция объявления переменных должна начинаться с ключевого слова Var. Формат объявления: Var идентификатор [, идентификаторы] : тип переменной;

  19. Переменные этой секции доступны только для основного блока Begin..End.

  20. Структура объявления функции должна иметь формат: Function имя_функции (идентификатор [, идентификаторы] : тип параметров) : тип_результата; Var идентификатор [, идентификаторы] : тип переменной; Begin тело_подпрограммы End;.

  21. Объявление метки должно иметь формат: Label идентификатор:

  22. Объявление безусловного перехода должно иметь формат: Goto идентификатор_метки;

  23. Объявление меток допустимо лишь в теле программы и подпрограммы;

  24. Метки должны иметь локальную видимость.

  25. Текст программы и логические блоки должны ограничиваться ключевыми словами Begin в начале и End в конце.

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

  1. Псевдокод должен быть разбит на четверки следующего формата: код_операции адрес_операнда_1, адрес_операнда_2, адрес_результата

  2. Язык должен содержать 2 системные переменные ax и bx.

  3. Язык должен поддерживать работу со стеком.

  4. Должны поддерживаться команды: push X – затолкнуть в стек X, pop X – забрать из стека в X, mov X,Y – поместить Y в X, add X,Y,Z – X+Y поместить в Z, sub X,Y,Z – разность X и Y поместить в Z, mult X,Y,Z – произведение X и Y поместить в Z, div X,Y,Z – частное от деления X на Y поместить в Z, create X,Y – завести переменную с именем X и присвоить ей Y, dispose X – удалить переменную из памяти, cos X, Y, sin X, Y, tan X,Y – соответствующие математические команды, результат выполнения которых также помещается в Y, call X – вызов подпрограммы, jmp X – переход на подпрограмму X.

  5. Имена подпрограмм должны начинаться с символа ‘@’;

  6. Тип введенного значения распознается автоматически;

  7. Операндами операций могут быть переменные, задаваемые своим именем или константы, задаваемые своим значением.

  8. Имена переменных являются строковыми константами, совпадающими с именами переменных в исходном коде программы.

4.2. Требования к надежности

  1. Программа должна обрабатывать ошибки в тексте исходной программы согласно оговоренным выше правилам и выдавать сообщения пользователю посредством интерфейса.

4.3. Требования к составу и параметрам технических средств

  1. Программное обеспечение разрабатывается для персональной вычислительной техники типа IBM PC со процессором класса Pentium.

  2. ЭВМ должна работать под управлением операционной системы из семейства Windows (не ниже чем Windows 98) и иметь установленный .Net FrameWork;.

    1. Требования к программной документации

Курсовая работа должна включать следующую документацию:

- техническое задание КФБН 00000-01 90 01 (ГОСТ 19.201-78);

- программу и методику испытаний КФБН 00000-01 51 01 (ГОСТ 19.301-79);

- руководство оператора КФБН 00000-01 34 01 (ГОСТ 19.505-79).

- руководство программиста КФБН 00000-01 33 01 (ГОСТ 19.504-79).

6.Стадии и этапы разработки.

Стадии разработки, этапы и содержание работ указаны в таблице 1.

Таблица 1

Стадии

Разработки

Этапы работ

Содержание работ

Ответственный

за выполнение

Сроки сдачи

Техническое задание

Обоснование необходимости разработки программы

Научно-исследовательские работы

Разработка и утверждение технического задания

Постановка задачи.

Сбор исходных материалов. Выбор и обоснование критериев эффективности и качества разрабатываемой программы. Обоснование необходимости проведения научно–исследовательских работ.

Предварительный выбор методов решения задач.

Определение требований к техническим требованиям. Обоснование принципиальной возможности решения поставленной задачи.

Определение требований к программе. Определение стадий, этапов и сроков разработки программы и документации на нее. Выбор языков программирования.

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

Осипова

Д. А.

Осипова

Д. А.

Разработчик:

Осипова

Д. А.

Приемщик:

Сайкин

А. И.

Рабочий проект

Разработка программы

Разработка программной документации.

Испытания программы

Программирование и отладка программы.

Разработка программных документов согласно ГОСТ 19.101-77

Разработка, согласование и утверждение программы и методики испытаний. Проведение предварительных государственных, межведомственных, приемо-сдаточных и других видов испытаний. Корректировка программы и программной документации по результатам испытаний.

Осипова

Д. А.

Осипова

Д. А.

Разработчик:

Осипова

Д. А.

Приемщик:

Сайкин

А. И.

Внедрение

Подготовка и передача программы

Подготовка и сдача программы и программной документации. Оформление и утверждение акта о передаче программы на сопровождение. Передача программы в фонд алгоритмов и программ.

Разработчик:

Осипова

Д. А.

Приемщик:

Сайкин

А. И.

Соседние файлы в папке Курсовой 14 вариант