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