КУРСОВАЯ РАБОТА
по дисциплине "СИСТЕМЫ ПРОГРАММИРОВАНИЯ"
на тему "Построение компилятора
для языка программирования "ПАСКАЛЬ"
----------------------------------------
Выполнили студенты 5-го курса ФПМ
группы КМ-51
Попов Алексей КМ-5119
Лобенко Максим КМ-5129
Седых Инна КМ-5122
Руководитель: Россошинский Д.А.
Киев, 2000
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
1.ПОСТАНОВКА ЗАДАЧИ 5
2.ТЕОРЕТИЧЕСКИЕ ОБОСНОВАНИЯ 6
2.1.Формализованное решение 6
2.2.Семантические процедуры 7
2.3.Структуры данных и спецификация функций 8
3. ОПИСАНИЕ ЛОГИЧЕСКОЙ СТРУКТУРЫ ПРОГРАММЫ 9
4.ТЕСТИРОВАНИЕ ПРОГРАММЫ 101
5. Выводы 122
5. Литература 133
1.ПОСТАНОВКА ЗАДАЧИ
В данной работе в качестве языка программирования был выбран
некоторый урезанный вариант языка Pascal. Подмножество выбиралось
так, чтобы учесть основные структуры языка - процедуры, функции,
циклы, условные операторы, логические и арифметические выражения и т.п.
Примерный "шаблонный" макет программы выглядит так: <pre>
Var
<name1> : <type1>;
<name2> : <type2>;
...
procedure <name> ( <in_var_name11>: <type11>;
<in_var_name21> : <type12>;
...
var <out_var_name11> : <type21>;
var <out_var_name21> : <type22>;
...);
var ...
begin
<program_code>
end;
function <name> ( <in_var_name11> : <type11>;
<in_var_name21> : <type12>;
...
var <out_var_name11> : <type21>;
var <out_var_name21> : <type22>;
...) : <type>;
const ...
var ...
begin
<program_code>
end;
begin
for ... to|downto ... do ...
if ... then ... else ...
x := a+b*(c-d/e)/f+(-2.3e+5-11)*func(y,t);
end.
</pre>
При этом учтены некоторые особенности языка:
1. Большие и маленькие
|