12.07.2015 Views

Методы построения конечных автоматов на основе ...

Методы построения конечных автоматов на основе ...

Методы построения конечных автоматов на основе ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

32При использовании автоматного программирования проблемы<strong>построения</strong> модели по программе и преобразования контрпримеров изтерминов модели в термины программы не возникают, так как конечныйавтомат может быть автоматически преобразован в модель, пригодную дляверификации, а контрпримеры могут быть автоматически преобразованыиз терминов модели в термины автомата [4, 125 – 128]. Эта особенностьавтоматных программ упрощает их верификацию по сравнению спрограммами, <strong>на</strong>писанными традиционным путем.Для верификации автоматных программ в работах [6, 125 – 128]было разработано несколько инструментальных средств. Некоторые из нихиспользовали существующие верификаторы (<strong>на</strong>пример, SPIN [76], SMV[92], Bogor [143]) и осуществляли только преобразование в их входнойязык, а инструментальное средство, предложенное в работе [6], используетсобственную реализацию алгоритма верификации. Именно оно ииспользовалось в <strong>на</strong>стоящей работе.1.1.4.1. Логика линейного времениВ указанном инструментальном средстве для описания утверждений,верификация которых проводится, используется логика линейноговремени (Linear Time Logic, LTL) [9]. Синтаксис LTL включает в себяпредикаты P, булевы связки (! – логическое «НЕ», & – логическое «И», || –логическое «ИЛИ») и темпоральные операторы, применяющиеся длясоставления утверждений о событиях в будущем.В этой логике допустимы следующие темпоральные операторы: X (neXt) – «X p» верно тогда, когда в следующий моментвремени в программе будет выполняться предикат p; G (Globally) – «G p» верно, если во время работы программывсегда выполняется p;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!