Законы развития систем. ТРИЗ. Изд. 2-е, испр. и дополненное - стр. 12
– Переходим к пункту 1.
Например, необходимо найти НОД для 30 и 18.
30/18 = 1 (остаток 12)
18/12 = 1 (остаток 6)
12/6 = 2 (остаток 0). Конец: НОД – это делитель. НОД (30, 18) = 6
Пример 1.15. Компилятор
Большинство компиляторов переводит программу с некоторого высокоуровневого языка программирования в машинный код, который может быть непосредственно выполнен процессором.
Компилятор состоит из следующих этапов.
– Лексический анализ. На этом этапе последовательность символов исходного файла преобразуется в последовательность лексем. Цель лексического анализа – подготовить входную последовательность к грамматическому анализу.
– Синтаксический (грамматический) анализ. Последовательность лексем преобразуется в дерево разбора.
– Семантический анализ. Дерево разбора обрабатывается с целью установления его семантики (смысла) – например, привязка идентификаторов к их декларациям, типам, проверка совместимости, определение типов выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным деревом разбора, новым деревом, абстрактным набором команд или чем-то еще, удобным для дальнейшей обработки.
– Оптимизация. Выполняется удаление излишних конструкций и упрощение кода с сохранением его смысла. Оптимизация может быть на разных уровнях и этапах – например, над промежуточным кодом или над конечным машинным кодом.
– Генерация кода. Из промежуточного представления порождается код на целевом языке. В конкретных реализациях компиляторов эти этапы могут быть разделены или, наоборот, совмещены в том или ином виде.
Каждый из этих этапов имеет свою программу, работающую по определенному алгоритму —процессу.
Продолжим рассматривать понятие функции.
Функции можно классифицировать:
– по полезности;
– степени их выполнения.
Опишем классификацию функций:
– по полезности:
– полезные;
– бесполезные;
– вредные.
– по степени выполнения полезных функций:
– достаточные;
– избыточные;
– недостаточные.
Полезная функция – функция, обеспечивающая работоспособность системы.
Бесполезная функция – функция, не обеспечивающая работоспособность системы. Иногда такие функции называют лишними.
Вредная функция – функция, создающая нежелательный эффект.
Достаточная функция – функция, создающая необходимое (достаточное) действие.
Избыточная функция – функция, создающая избыточное действие.
Недостаточная функция – функция, создающая недостаточное действие.
Следует отметить, что избыток и недостаток полезной функции следует рассматривать как вредную функцию.
Пример 1.16. Холодильник
Функция холодильника – это