ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 80
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
переменные i, n: integer;
h: real;
начало
читать(n);
h=0;
цикл i от n до 1 с шагом –1
выполнять
h=h+1/i;
вывести(h)
конец.
21. Разработать двухпроходный транслятор с исходного языка на язык Си:
программа А;
переменные k:целые;
t, eps, sx, s: вещественные;
начало
читать(eps,sx);
s=0; k=1; t=1;
пока |t|>eps выполнять
{ k:=k+2;
t:=-t*sx/(k*(k-1));
s:=s+t
};
вывести(h)
конец.
22. Разработать трехпроходный транслятор с исходного языка на язык Си:
программа z;
переменные i:целые;
x: вещественные;
начало
читать(i); читать(x);
пока (i<4) и (i>0) выполнять
{
если i
=0 то x:=0;
=1 то x:=sin(x);
=2 то x:=exp(x);
=3 то x:=cos(x);
=4 то x:=ln(x)
все;
вывести(x);
}
конец.
23. Разработать однопроходный транслятор с исходного языка на язык Паскаль:
integer i,j
real c,p
do 2 i=1,10
do 2 j=1,10
c=a+i*j
if (c.ge.1.and.c.le.10) p=p*c
2 continue
stop
end
24. Разработать двухпроходный транслятор с исходного языка на язык Паскаль:
integer f,i,n
accept *,n
f=1
i=1
do 1 i=1,n,1
f=f*i
-
continue
type *,f
stop
end
25. Разработать трехпроходный транслятор с исходного языка на язык Паскаль:
программа xy;
переменные k,l:целые;
sx,sy,x, y: вещественные;
начало
sx=0;
sy=0;
цикл k от 0 до 5 шаг 1 выполнять
{
sx:=sy+x;
sy:=0;
цикл l от 1 до 10 шаг 1 выполнять
sy:=sy+y
};
вывести(sx,sy)
конец.
26. Разработать однопроходный транслятор с исходного языка на язык Си:
программа l;
переменные i,n,f:целые;
начало
читать(n);
f=1; i=1;
пока i<=n выполнять
{ f:=-f*i;
i:=i+1
};
вывести(f)
конец.
27. Разработать двухпроходный транслятор с исходного языка на язык ПЛ-1:
программа с;
переменные i:целые;
a, b, h, m, n, d, x: вещественные;
начало
читать(a,b);
h=(b-a)/10;
цикл (i=0; i<=10; i++)
{ x:=a+h*i;
m:=(2*h*h-4)/(2*h);
n:=(2-h)/(2+h);
d:=m*h*h-m*n;
вывести(h)
};
конец.
28. Разработать трехпроходный транслятор с исходного языка на язык ПЛ-1:
main()
{
int i,j;
double a,b;
scanf("%le%le",&a,&b);
s1=0;
s2=0;
for (i=0; i<=10; i=i+2)
{
s1=s2+a;
s2=0;
for (j=0; j<=20; i++)
s2=s2+b;
}
printf ("\n%le%le",s1,s2)
}
29. Разработать однопроходный транслятор с исходного языка на язык Си:
программа g;
переменные i: integer;
u, v, min, max: real;
начало
читать(u,v); min:=0; max:=10;
цикл i от 1 до 10 с шагом 1 выполнять
{ если u>v то
{
если u>max то max:=u;
если v
иначе
{
если v>max то max:=v;
если u
}
вывести(max,min);
}
конец.
30. Разработать двухпроходный транслятор с исходного языка на язык Си:
real h
integer i,n
accept *,n
h=1
do 2 i=n,1,-1
h=h+1/i
2 continue
type *,f
stop
end
31. Разработать трехпроходный транслятор с исходного языка на язык Си:
real s
integer i,n
accept *,n
s=1
do 3 i=1,n,2
s=s*i/(i+1)
3 continue
type *,s
stop
end
32. Разработать однопроходный транслятор с исходного языка на язык Си:
программа xz;
переменные k, i, n:целые;
s, x: вещественные;
начало
читать(x,n);
s=0;
цикл i=1 до n шаг 1 выполннять
{ k:=2*i+1;
s:=s+cos(k*x)/k;
}
вывести(s);
конец.
0>0>0>0>
Примечание: Приведенный в задании пример программы определяет структуру программы на исходном языке; тип и структуру операторов исходного языка.
Количество идентификаторов, операторов, порядок их следования может быть любым.
Разрабатываемый транслятор должен распознавать орфографические (неописанный идентификатор и повторное описание идентификатора) и синтаксические ошибки, а также выдавать сообщения о них.
Варианты заданий отличаются используемым методом синтаксического анализа
СПИСОК ЛИТЕРАТУРЫ
1. Ахо, А. Компиляторы: принципы, технологии и инструменты / А. Ахо, Р. Сети, Дж. Ульман. – Москва : Издательский дом «Вильямс», 2001.
2. Ахо, А. Теория синтаксического анализа, перевода и компиляции / А. Ахо, Дж. Ульман. – Т. 1, 2. Москва : Мир, 1976.
3. Бек, Л. Введение в системное программирование / Л. Бек. – Москва : Миp, 1988.
4. Грис, Д. Koнcтруировaниe компиляторов для цифровых вычислительных машин / Д. Грис. – Москва : Мир, 1975.
5. Маккиман, У. Генератор компиляторов / У. Маккиман, Дж. Хорнинг, Д. Уортман. – Москва : Статистика, 1980.
6. Рейуорд-Смит, В. Дж. Теория формальных языков. Вводный курс / В. Дж. Рейуорд-Смит. М : Радио и связь, 1988.
7. Разработка компиляторов : лабор. работы / Сост. И. Л. Коробова– Тамбов : Тамб. гос. техн. ун-т, 1997. –28 с.
8. Проектирование трансляторов : метод.указания / Сост. :
И. Л. Коробова, Д. В. Абрамов. – Тамбов : Изд-во Тамб. гос. техн. ун-та, 2000. –28 с.
9. Основы разработки трансляторов в САПР : учебное пособие / И. Л. Коробова, И. А. Дьяков, Ю. В. Литовка. – Тамбов : Изд-во ТГТУ, 2007. 80 с.
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ ………………………………………………………….... | |
Лекция 1. ТЕОРИЯ ФОРМАЛЬНЫХ ГРАММАТИК И ЯЗЫКОВ | |
1. Грамматика ……………………………………………………... | |
2. Формальные определения грамматики языка ………………... | |
3. Классификация грамматик ………………..…………………… | |
4. Синтаксические деревья ………………..……………………… | |
Лекция 2. ТЕОРИЯ ТРАНСЛЯЦИИ ………………..……………….. | |
1. Лексический анализ ………………..………………..…………. | |
2. Синтаксический анализ ………………..………………………. | |
3. Метод рекурсивного спуска ………………..…………………. | |
4. Метод операторного предшествования ………………………. | |
5. Внутреннее представление программы ………………………. | |
6. Генерация кода ………………..………………..……………… | |
Лекция 3. ОРГАНИЗАЦИЯ ТАБЛИЦ СИМВОЛОВ | |
1. Способы организации таблиц символов | |
2. Метод цепочек | |
Лекция 4. ОПТИМИЗАЦИЯ КОДА. | |
1. Удаление общих подвыражений | |
2. Удаление инвариантов цикла | |
Лекция 5. ОРГАНИЗАЦИЯ ДИАЛОГА В ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ | |
1. Проектирование интерактивных систем | |
2. Диалог на основе выбора из меню | |
3. Диалог типа «вопрос-ответ» | |
4. Диалог типа «заполнение бланка» | |
5. Диалог типа «прямой режим» | |
6. Средства помощи и поддержки | |
ВАРИАНТЫ ЗАДАНИЙ К ЛАБОРАТОРНЫМ РАБОТАМ | |
КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ "ЛИНГВИСТИЧВСКИЕ СРЕДСТВА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ". | |
КОНТРОЛЬНЫЕ ВОПРОСЫ | |
СПИСОК ЛИТЕРАТУРЫ | |
Учебное издание
КОробова И. Л.
ТЕОРИЯ ТРАНСЛЯЦИИ
Конспект лекций
Редактор Т. М. Глинкина
Инженер по компьютерному макетированию И. В. Евсеева
Подписано к изданию 00.00.2014.
Заказ № 00
Издательско-полиграфический центр ФГБОУ ВПО «ТГТУ»
392000, г. Тамбов, ул. Советская, д. 106, к. 14
Телефон (4752) 63-81-08
E -mail: izdatelstvo@admin.tstu.ru