Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы / программный генератор2.pptx
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
579.21 Кб
Скачать

ПРОГРАММНЫЙ ГЕНЕРАТОР

ВЫПОЛНИЛИ СТУДЕНТЫ ГРУППЫ ИС221 МАГАЛЬНИК ЕКАТЕРИНА И БРОДНИКОВ СЕРГЕЙ

Программный генератор — это программа, которая автоматически создаёт программный код по заданным условиям.

Генераторы получают на входе информацию о структуре, данных и параметрах предметной области, а на выходе выводят готовый код.

Программные генераторы работают следующим образом:

Определяются метаданные, шаблоны и правила предметной области.

Генератор на основе метаданных и шаблонов строит автоматически сгенерированный код.

Некоторые действия, которые могут осуществляться во время работы генератора:

Генерация с нуля.

Модификация.

Замена результатом входного источника.

При выборе подходящего программного генератора стоит обратить внимание на следующие параметры:

Качество генерации кода.

Удобный интерфейс.

Интеграция с инструментами разработки.

Универсальность языков и фреймворков.

Постоянное обучение и совершенствование.

Структура цен.

Несколько примеров программных генераторов, которые могут подойти:

Windsurf.

GitHub Copilot

Codiga.

Программные генераторы положительно влияют на скорость разработки.

Также генераторы позволяют:

Устранить необходимость ручного кодирования.

Быстро изготавливать множество прототипов кода.

Развертывать обновления и новые функции с меньшими затратами.

Программные генераторы положительно влияют на качество кода, так как:

Сводят к минимуму ошибки, возникающие из-за человеческого фактора.

Позволяют обнаруживать ошибки на раннем этапе.

Повышают безопасность кода.

Делают код более читаемым.

ГЕНЕРАТОРЫ В ПРОГРАММИРОВАНИИ.

Классический подход к обработке — итераторы.

a = range(1,100)

b = range(1000,2000) for i in a:

print(a[i-1] + b[i])

Итератор в данном случае — это цикл, который обращается к диапазону значений и берёт по очереди оттуда данные. При этом все данные уже есть в памяти.

Генераторы — вычисление данных «на лету».

Генераторы работают иначе: вместо того чтобы сразу хранить в памяти все данные, они их генерируют на каждом шаге и отдают в работу.

Вот как выглядит цикл с генератором:

Цикл выполняется нужное количество раз.

На каждом шаге цикла генератор получает какое-то значение, отдаёт его в нужное место и забывает всё напрочь.

Генератор не помнит значение, которое он отдавал до этого, и не знает, что он будет отдавать на следующем шаге. Всё, что у него есть, — данные, которые нужно обработать на текущем шаге.

Память под работу генератора выделяется, только когда он генерирует новые данные. Пока генератор стоит или не выдаёт данные — память не выделяется.

Чаще всего генераторы используют как функции. Каждый раз, когда обращаются к такой

функции-генератору, она делает так:

Берёт новую порцию данных из указанного ей источника.

Обрабатывает данные.

Возвращает результат.

Забывает про всё до следующего вызова.

Обычно функции возвращают результат своей работы с помощью команды return(), а для генераторов есть специальная команда — yield().

Yield() работает так же, как и return(), только функция на ней не заканчивается, а ставится на паузу. При следующем вызове генератор возьмёт новую порцию данных, и единственное, что он помнит, — на каком месте он остановился в прошлый раз. Всё остальное генератор каждый раз считает заново.

ПРИМЕР.

ПРИМЕР.

А вот что произошло здесь по шагам:

Мы открыли файл и записали всё его содержимое в переменную text.

С помощью встроенной функции split() мы разбили текст на отдельные слова и поместили все слова в отдельный массив. На этом этапе в массиве примерно 150 тысяч слов — для хранения такого количества данных компьютер выделил много памяти.

Мы пишем функцию-генератор. Каждый раз, когда к ней будут обращаться, она вернёт пару слов — текущее и следующее за ним.

В самом конце мы создаём новую переменную — pairs. Может показаться, что в ней сразу будут храниться все пары слов, но на самом деле это переменная-генератор. При каждом обращении к ней она вернёт новую пару слов и забудет о них.

Соседние файлы в папке лабы