A3_2010 (Варианты языков от Волковой), страница 2
Описание файла
Файл "A3_2010" внутри архива находится в папке "Варианты языков от Волковой". Документ из архива "Варианты языков от Волковой", который расположен в категории "". Всё это находится в предмете "практикум (прикладное программное обеспечение и системы программирования)" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "A3_2010"
Текст 2 страницы из документа "A3_2010"
Системный (интегрированный) программный продукт есть комплекс (взаимосогласованных) программных продуктов (пакет).
КРИТЕРИИ: За отсутствие комментариев к какому-либо виду программ: -4.
7. Перечислить основные виды оптимизации циклов. Привести пример оптимизационного преобразования цикла.
Ответ: (1) вынесение инвариантных вычислений из тела цикла, (2) замена операций с переменными цикла, (3) слияние, (4) расщепление и (5) развертывание циклов
Например, расщепление цикла:
f or (i = 0; i < n; i ++) if (x < y)
{ if (x < y) { S1; } for (i = 0; i < n; i ++) { S1; }
else { S2; } } else for (i = 0; i < n; i ++) { S2; }
КРИТЕРИИ: (a) За отсутствие какого-либо из видов оптимизации: -2.
(б) За отсутствие примера: -4.
8. Описать деление библиотек систем программирования по функциональному признаку, дать краткие характеристики содержания различных видов библиотек. Признаки каких из перечисленных Вами видов библиотек можно наблюдать в стандартной библиотеке языка С++?
Ответ: По функциональному наполнению современные библиотеки делятся на (1) библиотеки функций (процедур) и макроопределений, (2) библиотеки классов и (3) библиотеки компонентов. В свою очередь библиотеки классов могут представлять собой (2.1) совокупности независимых классов, (2.2) иерархии классов, (2.3) иерархии шаблонов классов. Библиотека С++ относится к библиотекам, построенным на основе иерархий шаблонов классов с добавлением отдельных функций и макроопределений.
1. Библиотеки функций (процедур) и макроопределений содержат простые (с точки зрения библиотек) составные части, некоторые из которых имеют только неформализованные, семантические связи
2. Библиотеки классов, в зависимости от степени своей организации, содержат более или менее формально связанные и структурированные описания и реализации классов объектов.
3. Библиотеки компонентов содержат тесно связанные описания и реализации сложных программных объектов, предназначенных для совместного использования.
КРИТЕРИИ: За пропуск какого-либо вида библиотек: -2 (за каждый пропуск из 3-х видов библиотек и 3-х подвидов библиотек классов).
За пропуск объяснения: -3 (за каждый из трёх).
9. Дать определение эквивалентных грамматик. Для контекстно-свободной грамматики G построить эквивалентную ей неукорачивающую грамматику, выписывая результаты применения каждого шага используемого алгоритма.
G: S Ab | BaCaC A Ca B Cb C Aa | Bb | a | ε
Ответ: Грамматики G1 и G2 называются эквивалентными, если их языки совпадают: L (G1) = L (G2).
Строим множество правил X, в которое входят все правила, из которых за некоторое число шагов выводится пустая цепочка:
-
X0 = {C}
-
X1 = {C}, N1 = N0
Строим множество правил P', в которое входят все правила, кроме правил вида R ε:
P': S Ab | BaCaC A Ca B Cb C Aa | Bb | a
Дополняем множество правил P' правилами с всевозможными комбинациями вхождений и невхождений символа C, так как в исходной грамматике есть правило С ε:
P'': S Ab | BaCaC | BaaC | BaCa | Baa
A Ca | a B Cb | b C Aa | Bb | a
Pнеукор = P''
КРИТЕРИИ: Нет определения или оно неверно: 0.
За каждую существенную ошибку при преобразовании: -3.
10. По приведенной обратной польской записи фрагмента программы, написанной на языке Си++, восстановите этот фрагмент двумя способами: сначала, пользуясь операторами условного и безусловного перехода на метку, а затем (если это возможно), пользуясь только операторами структурного программирования без переходов. Операция ПОЛИЗ '@' соответствует унарной операции изменения знака.
ПОЛИЗ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | ||||||||||||||||||||||||
&t | &p | #+ | &q | +# | t | @ | / | 4 | * | + | = | ; | t | u | < | 34 | |||||||||||||||||||||||||
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | ||||||||||||||||||||
!F | 26 | ! | &t | +# | ; | 14 | ! | &r | p | 7 | + | –= | ; | 21 | ! | &r | r | 2 | % | = | ; | |
Ответ: t = (p ++) + (++ q) / (– t) * 4;
L: if (! (t < u)) goto E;
goto N;
M: ++ t; goto L;
N: r –= p + 7; goto M;
E: r = r % 2;
for (t = (p ++) + (++ q) / (– t) * 4; t < u; ++ t) r –= p + 7; r = r % 2;
КРИТЕРИИ: за неверный ответ на первый вопрос: -7.
за неверный ответ на второй вопрос, если первый вариант верен: -3, иначе: -10