683
правки
KVN (обсуждение | вклад) (Новая страница: «Потоковый анализ является средством получения достоверной информации а поведении прог…») |
KVN (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
Потоковый анализ является средством получения достоверной информации а поведении программы без ее реального исполнения. Извлекаемые из текста программы свойства — это глобальная информация о программе, которая не может быть получена ни пробными запусками программы, ни изучением ее отдельных фрагментов. Основной задачей потокового анализа является схематизация оптимизируемой программы — построение по программе моделирующей ее схемы, в которой важные для оптимизации свойства программы представлены о достаточной степенью точности. В процессе потокового анализа происходит извлечение определенных (схемных) семантических свойств программы; при этом используются семантика языка и текст анализируемой программы. Однако в отличие от «доказателей теорем» о программах потоковый анализ использует далеко не полную семантику языка и выводит существенно более простые свойства программы, чем свойство правильности или свойство пустоты. Техника потокового анализа — это «метод транзитивного замыкания», заметно уступающий по мощности таким общим методам доказательства теорем, как, например, «метод резолюций», но приводящий к существенно более эффективным алгоритмам. | Потоковый анализ является средством получения достоверной информации а поведении программы без ее реального исполнения. Извлекаемые из текста программы свойства — это глобальная информация о программе, которая не может быть получена ни пробными запусками программы, ни изучением ее отдельных фрагментов. Основной задачей потокового анализа является схематизация оптимизируемой программы — построение по программе моделирующей ее [[Схема программ|схемы]], в которой важные для оптимизации свойства программы представлены о достаточной степенью точности. В процессе потокового анализа происходит извлечение определенных (схемных) семантических свойств программы; при этом используются семантика языка и текст анализируемой программы. Однако в отличие от «доказателей теорем» о программах потоковый анализ использует далеко не полную семантику языка и выводит существенно более простые свойства программы, чем свойство правильности или свойство пустоты. Техника потокового анализа — это «метод транзитивного замыкания», заметно уступающий по мощности таким общим методам доказательства теорем, как, например, «метод резолюций», но приводящий к существенно более эффективным алгоритмам. | ||
Алгоритмы потокового анализа воспринимают программу (процедуру, модуль, программную систему и т.д.) в качестве входных данных, выявляют статическую информацию (вид которой зависит от конкретной решаемой проблемы) и возвращают полученную информацию в качестве результата. Такие алгоритмы используются при решении задач оптимизации, верификации, отладки, тестирования, распараллеливания, векторизации, параллельного программирования и во многих других приложениях. Они обеспечивают нахождение информации о программе или среде (окружении) без исполнения кода. | Алгоритмы потокового анализа воспринимают программу (процедуру, модуль, программную систему и т.д.) в качестве входных данных, выявляют статическую информацию (вид которой зависит от конкретной решаемой проблемы) и возвращают полученную информацию в качестве результата. Такие алгоритмы используются при решении задач оптимизации, верификации, отладки, тестирования, распараллеливания, векторизации, параллельного программирования и во многих других приложениях. Они обеспечивают нахождение информации о программе или среде (окружении) без исполнения кода. | ||
Строка 10: | Строка 10: | ||
В процессе анализа потока данных как бы происходит одновременное исполнение всех программ, моделируемых схемой, над всеми значениями из некоторой символической и сильно упрощенной версии области ее реальных данных. Всю базисную информацию о программах, извлекаемую при анализе потока данных в моделируемых их схемах, можно разделить на две группы: [[свойства исполнений]] и [[свойства состояний]]. | В процессе анализа потока данных как бы происходит одновременное исполнение всех программ, моделируемых схемой, над всеми значениями из некоторой символической и сильно упрощенной версии области ее реальных данных. Всю базисную информацию о программах, извлекаемую при анализе потока данных в моделируемых их схемах, можно разделить на две группы: [[свойства исполнений]] и [[свойства состояний]]. | ||
==Литература== | |||
* Касьянов В.Н., Евстигнеев В.А. Графы в программировании: обработка, визуализация и применение. — СПб.: БХВ-Петербург, 2003. |