Автор: Пользователь скрыл имя, 20 Ноября 2012 в 23:12, курсовая работа
Посредством среды разработки «Borland C++ Builder6» осуществляется создание варианта программы-транслятора с одного языка высокого уровня на другой. Созданная программа имеет возможность находить некоторые лексические и синтаксические ошибки, которые могут быть допущены в исходном текстовом файле, предназначенном для трансляции и сообщать о них пользователю.
1. Пояснительная записка………………………………………………………..2
1.1. Задание на проектирование…………………………………………..2
1.2. Содержание…………………………………………………...……….3
1.3. Введение………………………………..………………………………4
1.4. Описание процесса решения задачи…………………………………5
1.5. Блок-схемы основной программы и процедур…………………….15
2. Распечатка программных модулей………………………………………….17
3. Описание программы………………………………………………………...39
3.1. Назначение и общее описание программы………………………...39
3.2. Описание логической структуры программы…………………… ..39
3.3. Способ обращения к программе……………………………………40
3.4. Перечень технических средств………………………………… …..40
4. Описание входных и выходных данных……………………………………40
5. Тестовые примеры работы программы………………..……………………41
}
}
//----------------------------
int flagread=0;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
errornumber=0;
enddo=-1;
allnull();
Form1->Memo3->Clear();
Form1->Memo2->Clear();
char s[80];
READCODE2();
ANALIS();
if(errornumber==0)
GENERATOR();
sprintf( s, "\nИсходный код - vhod.txt"); Form1->Memo3->Lines->Add(s);
sprintf( s, "\nПоследовательность лексем - lexem.txt и lexemdebug.txt"); Form1->Memo3->Lines->Add(s);
sprintf( s, "\nТранслированный код - code.txt"); Form1->Memo3->Lines->Add(s);
}
//----------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
errornumber=0;
enddo=-1;
allnull();
if (Form1->OpenDialog1->Execute()
{
filename=(Form1->OpenDialog1->
}
Form1->Memo1->Clear();
Form1->Memo3->Clear();
Form1->Memo2->Clear();
char s[80];
READCODE();
ANALIS();
if(errornumber==0)
GENERATOR();
sprintf( s, "\nИсходный код - vhod.txt"); Form1->Memo3->Lines->Add(s);
sprintf( s, "\nПоследовательность лексем - lexem.txt и lexemdebug.txt"); Form1->Memo3->Lines->Add(s);
sprintf( s, "\nТранслированный код - code.txt"); Form1->Memo3->Lines->Add(s);
}
//----------------------------
3. Описание программы
3.1 Назначение и общее описание программы
Представленная программа создана для быстрого и удобного транслирования с исходного языка на язык PL-1.
Внешний интерфейс программы
позволяет, помимо получения
3.2 Описание логической структуры программы
Программа состоит из:
- основной программы
- описания класса
- функций лексического анализатора
- функций синтаксического анализатора
- функции анализа возникшей ошибки
Основная программа находится в теле функции события ButtonClick (), и соответственно начинает работать после запуска программы. В ходе своего выполнения, основная программа вызывает в своём теле процедуры лексического анализа (READCODE()), синтаксического анализа(ANALIS()), который вызывает генерацию кода (GENERATOR()) в новом языке программирования в случае отсутствия ошибок.
3.3 Способ обращения к программе
Для запуска транслятора следует открыть каталог с программой и запустить exe-файл двойным кликом мышки по его ярлыку. Либо выбрать этот ярлык клавишами курсора и нажать «ENTER».
После этого появится окно программы. В случае успешной трансляции отображаются все необходимые пути к файлам (с исходным кодом, лексемами и сгенерированном кодом на новом языке). В противном случае в окне появится перечень ошибок. Исходный код может считываться из файла (верхняя кнопка) либо прямо из окна программы (нижняя кнопка, требуется ввести исходный код в левое поле). Результат сохраняется в файлы и отображается в окне программы (поле справа)
3.4 Перечень технических средств.
Программа создана в среде визуального программирования «C++Builder 6». На системе имеющей следующие характеристики:
-процессор Intel Celeron CPU 1.3 GHz;
-оперативная память 2048 Mb;
-операционная система Microsoft Windows 7.
Для успешной работоспособности
программы требуется любой
4. Описание входных и выходных данных
Входные данные для программы представляют собой текстовый файл, имеющий формат(*.txt), который содержит текст на данном языке либо введенный в окно программы текст.
Выходные же данные сохраняются также в текстовый файл формата(*.txt), только файл содержит уже оттранслированный текст на языке PL-1. Кроме этого результат отображается в окне программы.
5. Тестовые примеры работы программы
Вариант без ошибок
program g;
var u, v, max, min: real;
begin
read(u,v);
max:=10;
min:=0;
if u>v then
begin
if u>max then max:=u;
if v<min then min:=v
end
else
begin
if v>max then max:=v;
if u<min then min:=u
end;
write(max,min)
end.
Контрольный вариант из задания на проектирование (с ошибками):
program g;
var u, v, max. min: real;
begin
read(u,v);
max:=10;
min:=0;
if u>v then
begin
if u>max then max:=u;
if v<min then min:=v
end
else
begin
if v>max then .max:=v;
if u<min then min:=u
end;
write(max,min)
end.
Информация о работе Разработка трехпроходного транслятора с исходного языка на язык ПЛ-1