An error detection mechanism for detecting programming errors in a computer
program. A component of the computer program, e.g., a procedure or
function of the computer program, is analyzed to determine the effect of
the component on resources used by the computer program. A component is
analyzed by traversing the computer instructions, i.e., statements, of the
component and tracking the state of resources used by the component as
affected by the statements of the component. Each resource has a
prescribed behavior represented by a number of states and transition
between states. Violations in the prescribed behavior of a resource
resulting from an emulated execution of the statements of the component
are detected and reported as programming errors. Resources used by two or
more components are modelled by modelling externals of the components. The
effect of execution of a component on externals and resources of the
component is determined by traversing one or more possible control flow
paths through the component and tracking the use of each external and
resource by each statement of each control flow path. Once the effect of
execution of a component on externals and resources of the component is
determined, a model of the component is created and used to model
externals and resources of other components which invoke the modelled
component.
Механизм обнаружения ошибки для обнаруживать ошибки при программировании в компьутерной программе. Компонент компьутерной программы, например, процедура или функция компьутерной программы, проанализирован для того чтобы обусловить влияние компонента на ресурсах используемых компьутерной программой. Компонент проанализирован путем траверсировать инструкции компьютера, т.е., заявления, компонента и отслеживать положение ресурсов используемых компонентом как повлияно на заявлениями компонента. Каждый ресурс имеет предписанное поведение представленное несколькими положениями и переходом между положениями. Нарушения в предписанном поведении ресурса приводя к от подражанного исполнения заявлений компонента обнаружены и сообщены как ошибки при программировании. Ресурсы используемые двумя или несколько компонентов моделированы путем моделирование externals компонентов. Влияние исполнения компонента на externals и ресурсов компонента обусловлено путем траверсировать one or more по возможности курсы подачи управления через компонент и отслеживать пользу каждое внешнего и ресурс каждым заявлением каждого курса подачи управления. Раз обусловлено влияние исполнения компонента на externals и ресурсов компонента, модель компонента создана и использована для моделирования externals и ресурсов других компонентов которые invoke моделированный компонент.