Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
8
Добавлен:
20.05.2014
Размер:
569.86 Кб
Скачать
  1. Внешняя спецификация

    1. Вход

Исходный текст программы готовится заранее с помощью текстового редактора и хранится в текстовом файле, имя которого вводится в ответ на запрос программы:

введите имя входного файла: <имя входного файла>

    1. Выход

Выходной текст формируется конвертором и запоминается в текстовом файле, имя которого вводится в ответ на запрос программы:

введите имя выходного файла: <имя выходного файла>

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

число операторов в исходной программе = <число>

число операторов в полученной программе = <число>

число аномалий =<число>

число ошибочных операторов = <число>

    1. Аномалии

Входной файл

При отсутствии входного файла выводится сообщение:

Ошибка открытия входного файла <путь> - файл не найден; проверьте путь..

При вводе имени файла, не удовлетворяющего требованиям системы, выводится одно из сообщений:

Неверный путь: <путь>

Ошибка открытия входного файла <путь>- файл не найден; проверьте путь.

Имя файла :<путь> задано некорректно. Это не .pas файл.

Выходной файл

При вводе имени файла, не удовлетворяющего требованиям системы, выводится одно из сообщений:

Неверный путь: <путь>

Имя файла :<путь> задано некорректно. Это не .с файл.

  1. Метод решения задачи

Идентификация операторов исходного текста осуществляется путем анализа ключевого слова.

Если допустимое ключевое слово отсутствует и строка не является комментарием, то предполагается, что соответствующий оператор является оператором присваивания.

Анализ ключевых слов в исходном тексте проводится в соответствии с синтаксисом исходного языка (Pascal).

  1. Описание алгоритма

В данном разделе приведено полное описание алгоритма решения поставленной задачи.

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

    1. Алгоритм решения задачи

Буферы обработки

Исходный файл читается построчно, при этом ведется счетчик входных строк. Далее проводится анализ на наличие в исходнои тексте комментария. Данные входного потока распределяются в два буфера:

  • Буфер накопления текста на Паскале (str_buf)

  • Буфер комментариев (comments_buf)

По нахождении признака конца комментария во входном потоке буфер comments_buf оформляется по правилам комметария на языке С и выводится в выходной файл.

Программа последовательно извлекает из буфера накопления Паскаля str_buf очередное предложение на Паскале (ограниченное справа символом ;) и отправляет его на анализ в подпрограмму Pas_to_C.

  • В этой подпрограмме в зависимости от ключевого слова, с которого начинается анализируемое предложение, вызывается необходимая подпрограмма детального анализа (например, п/п Analyze_If).

  • Если ключевое слово не опознано, вызывается п/п Analyze_Other_Operator. В зависимости от состояния анализа (регулируемое набором глобальных флажков и счетчиков) вызывается п/п анализа оператора присваиванияAnalyze_Assignmentлибо подпрограммы продолжения анализа секцийVar,Const,UsesилиLabel.

Соседние файлы в папке v29