Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 15.02.docx
Скачиваний:
2
Добавлен:
07.05.2019
Размер:
240.61 Кб
Скачать

Задачи и упражнения

  1. Задайте грамматику в соответствие с заданием по варианту (см. Таблица 1);

  2. Задайте регулярную грамматику для распознавания токенов в грамматиках задания №1.

  3. Постройте -НКА для регулярных грамматик из задания №2.

Дополнительные задачи:

    1. (а | b)*

    2. (a* | b*)*

    3. (( | a) b*)*

    4. (a | b)*abb(a | b)*

  1. Преобразуйте полученные в задании №3 -НКА в ДКА.

  2. Постройте ДКА для регулярных грамматик из задания №3. Сравните результаты с полученными решениями в задаче №4.

  3. Минимизируйте число состояний ДКА, полученных в результате выполнения заданий №4,5.

  4. Подготовьте тестовые случаи для полученных автоматов. Напишите программы для моделирования -НКА и ДКА.

Таблица 5. Задания по вариантам.

Задания по вариантам

Объявление условного оператора if в языке Pascal.

Объявление условного оператора if в языке C/C++/C#.

Объявление оператора цикла while/repeat в языке Pascal.

Объявление оператора цикла while/do while в языке C/C++/C#.

Объявление оператора switch в языке С/С++/С#.

Объявление оператора case в языке Pascal.

Объявление оператора for в языке Pascal.

Объявление оператора for в языке C/C++/C#.

Объявление оператора foreach в языке С#.

Объявление унарных выражений (+x; -x; !x; ~x; ++x; --x; (T)x)в языке С/С++/С#.

Объявление операторов отношения и приведения типов в С# (x<y; x>y; x>=y; x<=y; x!=y; x is T; x as T).

Объявление констант в Pascal.

Объявление констант в C++/C#.

Объявление блока объявления переменных в Pascal.

Объявление объявления функции (процедуры) в Pascal.

Объявление объявления функции в С++/С.

Объявление блока объявления типов в Pascal. В блоке распознаются только объявления записей (record). Считать содержимое записи блоком кода без проведения дополнительного лексического анализа.

Объявление операторов new/delete в C++

Объявление объявления класса в С++ (считать содержимое класса блоком кода без проведения дополнительного лексического анализа)

Объявление объявления класса в блоке объявления типов в Object Pascal (считать содержимое класса блоком кода без проведения дополнительного лексического анализа)

Объявление объявления массивов в языке С#.

Объявление объявления массивов в языке Pascal.

Объявление арифметических выражений в языке Pascal.

Объявление арифметических выражений в языке C#.

Объявление события в языке С#.