Аноним

Категория:Потоковый анализ программ: различия между версиями

Материал из WikiGrapp
нет описания правки
(Новая страница: «Потоковый анализ является средством получения достоверной информации а поведении прог…»)
 
Нет описания правки
Строка 1: Строка 1:
Потоковый анализ является средством получения достоверной информации а поведении программы без ее реального исполнения. Извлекаемые из текста программы свойства — это глобальная информация о программе, которая не может быть получена ни пробными запусками программы, ни изучением ее отдельных фрагментов. Основной задачей потокового анализа является схематизация оптимизируемой программы — построение по программе моделирующей ее схемы, в которой важные для оптимизации свойства программы представлены о достаточной степенью точности. В процессе потокового анализа происходит извлечение определенных (схемных) семантических свойств программы; при этом используются семантика языка и текст анализируемой программы. Однако в отличие от «доказателей теорем» о программах потоковый анализ использует далеко не полную семантику языка и выводит существенно более простые свойства программы, чем свойство правильности или свойство пустоты. Техника потокового анализа — это «метод транзитивного замыкания», заметно уступающий по мощности таким общим методам доказательства теорем, как, например, «метод резолюций», но приводящий к существенно более эффективным алгоритмам.
Потоковый анализ является средством получения достоверной информации а поведении программы без ее реального исполнения. Извлекаемые из текста программы свойства — это глобальная информация о программе, которая не может быть получена ни пробными запусками программы, ни изучением ее отдельных фрагментов. Основной задачей потокового анализа является схематизация оптимизируемой программы — построение по программе моделирующей ее [[Схема программ|схемы]], в которой важные для оптимизации свойства программы представлены о достаточной степенью точности. В процессе потокового анализа происходит извлечение определенных (схемных) семантических свойств программы; при этом используются семантика языка и текст анализируемой программы. Однако в отличие от «доказателей теорем» о программах потоковый анализ использует далеко не полную семантику языка и выводит существенно более простые свойства программы, чем свойство правильности или свойство пустоты. Техника потокового анализа — это «метод транзитивного замыкания», заметно уступающий по мощности таким общим методам доказательства теорем, как, например, «метод резолюций», но приводящий к существенно более эффективным алгоритмам.


Алгоритмы потокового анализа воспринимают программу (процедуру, модуль, программную систему и т.д.) в качестве входных данных, выявляют статическую информацию (вид которой зависит от конкретной решаемой проблемы) и возвращают полученную информацию в качестве результата. Такие алгоритмы используются при решении задач оптимизации, верификации, отладки, тестирования, распараллеливания, векторизации, параллельного программирования и во многих других приложениях. Они обеспечивают нахождение информации о программе или среде (окружении) без исполнения кода.
Алгоритмы потокового анализа воспринимают программу (процедуру, модуль, программную систему и т.д.) в качестве входных данных, выявляют статическую информацию (вид которой зависит от конкретной решаемой проблемы) и возвращают полученную информацию в качестве результата. Такие алгоритмы используются при решении задач оптимизации, верификации, отладки, тестирования, распараллеливания, векторизации, параллельного программирования и во многих других приложениях. Они обеспечивают нахождение информации о программе или среде (окружении) без исполнения кода.
Строка 10: Строка 10:


В процессе анализа потока данных как бы происходит одновременное исполнение всех программ, моделируемых схемой, над всеми значениями из некоторой символической и сильно упрощенной версии области ее реальных данных. Всю базисную информацию о программах, извлекаемую при анализе потока данных в моделируемых их схемах, можно разделить на две группы: [[свойства исполнений]] и [[свойства состояний]].
В процессе анализа потока данных как бы происходит одновременное исполнение всех программ, моделируемых схемой, над всеми значениями из некоторой символической и сильно упрощенной версии области ее реальных данных. Всю базисную информацию о программах, извлекаемую при анализе потока данных в моделируемых их схемах, можно разделить на две группы: [[свойства исполнений]] и [[свойства состояний]].
==Литература==
* Касьянов В.Н., Евстигнеев В.А. Графы в программировании: обработка, визуализация и применение. — СПб.: БХВ-Петербург, 2003.