
Государственный комитет Российской Федерации по высшему образованию
Московский государственный институт электроники и математики
Кафедра ИТАС
Курсовая работа
по дисциплине
“АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ И ПРОГРАММИРОВАНИЕ”
Вариант 20
Исполнитель: Руководитель:
Студент. Крылов В.Г.
Группа АП-21Дрождина Е.А.
Москва 2000
Содержание
Задание на курсовую работу
Постановка задачи
Внешняя спецификация
Метод решения задачи
Описание алгоритма
Структура программы
Текст программы конвертора на ПАСКАЛЕ
Распечатка тестов и результатов
Задание на курсовую работу
Написать конвертор на языке Паскаль для перевода программ на языке Си в программы на языке Паскаль.
Исходные данные и результат хранятся в текстовых файлах, имена которых должны запрашиваться транслятором.
При обнаружении синтаксической ошибки в операторе исходного текста транслятор должен вносить в исходный текст комментарий, и осуществлять переход к следующему оператору.
Алгоритмы обработки отдельных операторов и других элементов должны быть оформлены в виде подпрограмм.
Комментарий не может располагаться внутри оператора.
При формировании выходного текста можно не учитывать правило отступа.
Постановка задачи
Дано:
Fname1 имя выходного файла, содержащий исходный текст программы на заданном языке.
Требуется:
Fname2 имя выходного файла, содержащего конвертированный текст на заданном языке;
Kstr число строк в исходной программе:
Kstr2 число строк в полученной программе:
kerr число ошибочных операторов в полученной программе
Связь
№ n/n |
Пример на C |
Результат конвертации на Pascal |
1 |
v=ae; |
v:=ae; |
2 |
do
while(le); |
Repeat
until not le; |
3 |
#define a b |
Const a=’b’; |
4 |
float a,b; |
Var a,b:real; |
5 |
printf(“aa %f \n”,a); |
write(‘aa’); write(a); writeln; |
6 |
a+b*c/d |
a+b*c/d |
7 |
a||b&&c||d |
(a or b) and (c or d) |
8 |
#include <stdio.h> main { } |
begin
end. |
9 |
{ } |
begin end; |
10 |
/* */ // |
(* *) (* *) |
Синтаксические диаграммы.
Внешняя спецификация программы
Вход
Исходный текст программы готовится заранее с помощью текстового редактора и хранится в текстовом файле, имя которого вводится в ответ на запрос программы:
Введите имя входного файла:<имя входного файла>
3.2. Выход
Выходной текст формируется конвертором и запоминается в текстовом файле, имя которого вводится в ответ на запрос программы:
Введите имя выходного файла:<имя выходного файла>
Основной результат работы программы хранится в выходном файле в виде текста программы пригодном для компиляции. Кроме того на экран выводится таблица:
Число ошибочных операторов: <число>
Число строк в исходном файле: <число>
Число строк в выходном файле: <число>
3.3. Аномалии
При отсутствии входного файла выводится сообщение:
Входной файл <имя файла> не найден.
Нажмите ENTER для выхода из программы.
Метод решения задачи.
Идентификация операторов исходного текста осуществляется путем анализа ключевого слова. Если допустимое ключевое слово отсутствует и данная строка не является комметарием, то предпологается, что соответствующий оператор является оператором присваивания.
Описание алгоритма