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