Слайд 2Лабораторная работа №3.1
Напишите регулярные определения для следующих языков.
а) Все строки из строчных
букв, содержащие пять гласных, а, е, i, о, u, в указанном порядке.
6) Все строки из строчных букв, в которых буквы находятся в возрастающем лексикографическом порядке.
в) Комментарии, представляющие собой строки, заключенные в /* и */, без промежуточных символов */ (кроме случаев, когда они заключены в двойные кавычки).
г) Все строки из неповторяющихся цифр. Указание: попробуйте сначала решить задачу для нескольких цифр, например для {0, 1,2}.
д) Все строки из цифр, причем в строке может повторяться не более одной
цифры.
е) Все строки из а и b, в которых четное количество а и нечетное — b.
Слайд 3Лабораторная работа №3.2
В SQL ключевые слова и идентификаторы нечувствительны к регистру. Напишите
программу на языке Lex,которая распознает ключевые слова SELECT, FROM и WHERE (с любыми сочетаниями верхних и нижних регистров) и токен ID, который в данном упражнении может быть любой последовательностью букв и цифр, начинающейся с буквы. Вносить идентификаторы в таблицу символов не требуется, но следует указать, чем именно функция для внесения в таблицу символов отличается от таковой для идентификаторов, чувствительных к регистру, как на следущем слайде.
Слайд 5Лабораторная работа №6.1
Массив действительных чисел А [i, j, k] имеет индекс i
со значениями в диапазоне от 1 до 4, индекс j со значениями от 0 до 4 и индекс k со значениями от 5 до 10. Размер каждого действительного числа — 8 байт. Предположим, что массив А хранится построчно, начиная с байта 0. Найдите положения следующих элементов массива:
Слайд 6Лабораторная работа №6.2
Транслируйте данные выражения в
а) синтаксическое дерево;
6) четверки;
в) тройки;
г) косвенные тройки.
Слайд 7Лабораторная работа №9.1
На следующем слайде приведен промежуточный код для вычисления
скалярного произведения векторов
А и В. Оптимизируйте насколько возможно
этот код путем устранения общих подвыражений, снижения стоимости и устра-
нения переменных индукции.
Слайд 9Лабораторная работа №9.2
Для графа на следующем слайде выполните следующее.
а) Вычислите отношение доминирования.
ж) Вычислите глубину графа потока.
6) Постройте дерево доминаторов 3) Найдите естественные циклы в графе потока.
в) Найдите для каждого узла его непосредственный доминатор.
г) Найдите упорядочение вглубь графа потока.
д) Укажите в вашем ответе к п. г наступающие, отступающие, поперечные
ребра и ребра дерева.
е) Является ли данный граф потока приводимым?
Слайд 11Лабораторная работа №12.1
На следующем слайде приведена программа на языке программирования С с
двумя указателями на функции — р и q 4. N — константа, которая может быть меньше или больше 10. Заметим,что в результате в программе получится бесконечная последовательность вызовов, но в данном случае нас это волновать не должно.
а) Укажите все точки вызова программы.
6) Укажите для каждой точки вызова, на что указывает р? На что указывает q?
в) Изобразите граф вызовов для данной программы.
г) Опишите все строки вызовов для функций f и g.