Реферат: Исследование некоторых задач в алгебрах и пространствах программ

Aa {A}=a {A}A={A}a .

Пример 1. Регуляризуем микропрограмму А деления с фиксированной запятой. Для простоты считаем, что числа неотрицательны, а операция не приводит к переполнению разрядной сетки компьютера фон - Неймановского типа, операционный автомат которого состоит из регистров R1 , R2 сумматора R3 и счетчика сдвигов R4 . Делимое храниться на R1 , делитель - на R2 , частное накапливается на R3 . Введем обозначения: li - микрооперация сдвига регистра Ri влево (i=1,2,3); s-1 ij - микрокоманда вычитания из содержимого регистра Rj содержимого регистра Ri ; ai - условие заполненности регистра Ri ; gi - условие отрицательности содержимого регистра Ri ; pi - микрооперация занесения единицы в младший разряд Ri ; si,j - микрокоманда добавления содержимого регистра Ri к содержимому Rj .

Выпишем систему уравнений, обозначив через xi - событие соответствующее каждому из 11 пунктов алгоритма деления (см., например, [3]):

Решим эту систему. После очевидных подстановок, вводя обозначения:

x=x3 +x7 +x10 ,

B=el3 s-1 13 ,

A=g3 p2 l2 p4 l3 s-1 13 +g3 l2 p4 l3 s-1 13

получим уравнение X=XA+B, решение которого будет X=B{A} и после упрощений с помощью приведенных аксиом, заключительное событие S равно

s=x11 l3 s-1 13 {g 3 (l2 p4 l3 s13 +p2 l2 p4 l3 s13 -1 )}a 4

2. Рассмотрим задачу нахождения оптимальных (например, в смысле операции, длины и т.д.) структурированных программ из заданного набора базовых процедур (некоторые из них - см. в [5]), а также построения грамматик для анализа структур из программных единиц. При решении этой задачи используются аксиомы алгебры А.

Пример 2. Дана программа Р, где А,В,С - процедуры, a,b - предикаты:

P=a (BA+CA)b (Ab {A}+e)=a (B+С)Ab (Ab {A}+e)=a (B+С)Ab ({A}b +e)=a (B+С)Ab {A}=a (B+C){A}b =T.

Программа Т - более оптимальна и ее правильность доказываема формально.

Доказана теорема (доказательство не приводим из-за объема).

Теорема 1. Если R,A,S Î A, a,b,gÎB, A и S - коммутативны, то:

а)AX=Aa (R+SX)ÛAX=A{S}a R, б)Ag=Aa (b+Sg)ÛAg=A{S}a b,

в)Ag=Aa (b+S )ÞAg=A{S2 }t a (b+S ),t=a+Sa,

г)Ag=A{S2 }t gÞAg=At (e+S2 )g, g=a (b+S), t=a+Sa.

Рассмотрим задачу исследования разрешимости в пространствах программ.

Пусть x=<X, Y, M, S> - программа, определенная на входном алфавите Х, выходном алфавите Y и состоящая из подпрограмм (процедур) М с логической схемой (структурой) S. Структуре S поставим в соответствие орграф: Вершины - подпрограммы, ребра - в соответствии со структурой их взаимодействий. Метрика r(x,y) в этом пространстве - сумма всех весов ребер орграфов программ не совпадающих при заданной структуре S или отклоняющихся от оптимальной структуры, т.е. Аксиомы метрики проверяемы.

Отметим метризуемость пространства и по некоторым характеристикам качества программ Холстеда [6], а также с помощью понятия интеллектуальной работы программы, оцениваемой как разность энтропии до работы (статической формы программы) и после работы (динамической формы). У идеальной программы энтропия равна нулю. Отметим, что если ds/dt - общее изменение энтропии программного комплекса при отладке, ds1 /dt - изменение энтропии за счет необратимых изменений структуры, потоков внутри комплекса (рассматриваемую как открытую систему), ds2 /dt - изменение энтропии за счет усилий по отладке и тестированию, то справедливо уравнение Пригожина: ds/dt = ds1 /dt + ds2 /dt. Последовательность программ {xi }, сходится по схеме (структуре) к программе х (обозначим ), если r(xn ,x)® 0, при n®¥, т.е. дерево программы xn при n®¥ стремится к дереву программы х. Последовательность {xi } сходится функционально к программе х (обозначим ), если F(xn )® F(x) при n®¥ (программная функция xn стремится к программной функции х). Нетрудно видеть, что из сходимости по схеме следует сходимость функциональная, но обратное неверно.

Пусть M = {x1 , x2 , ..., xn ,...} - последовательность программ с общей функцией (эквивалентных функционально). На этом множестве рассмотрим множество операторов А преобразования (композиции, суперпозиции) программ. Последовательность {An } сходится к А функционально (по схеме, структуре), если верно: "xÎМ:

С точки зрения исследования существования, единственности оптимальной (в каком-то смысле) программы можно рассмотреть: операторы минимизации числа операндов; операторы минимизации числа типов операторов; операторы минимизации числа вызовов процедур; минимизации числа ошибок в программе; минимизации сложности (разных способов определения) и др. При исследовании программных систем важно рассматривать пространства векторов х=(х1 ,x2 ,...,xn ), где xi - характеристика ошибок в программе или структурной связностипроцедур, ui - количество ошибок в i-ом модуле программного комплекса P(u)=P(u1 ,u2 ,...,un ).

Пусть u(x,t) - количество ошибок, обнаруженных в программе (системе) в момент времени t, а х - характеристика уровня ошибок. Рассмотрим модель обнаружения ошибок при отладке, представимая уравнением (см. также [7]): Lu+Tu=f, где T - оператор, определяющий первоначальный уровень ошибок в программе или их некоторую характеристику, L - некоторый линейный ограниченный оператор отладки, L:U®V, U,V - линейные нормированные пространства D(L) ÍU, R(L)ÍV.

Теорема 2. Если R(L)=V и для каждого uÎD(L) существует постоянная c такая, что , то Lu+Tu=f имеет единственное решение uÎU.

Доказательство. Условия теоремы гарантируют существование непрерывного обратного оператора L-1 , причем . Тогда u=L-1 (f-Tu). Для однородного уравнения: . Отсюда следует, что , т.е. u=0. Следовательно, неоднородное уравнение имеет единственное решение.

Пример 3. Пусть umax - максимальный уровень синтаксических ошибок в программе Р, u(t) - их оставшееся количество к моменту времени t. Исходя из модели du/dt+lumax =0, u(t0 )=u0 можно заключить, что уровень ошибок убывает при l(c-t0 ) ¹ -1 (t0 <c<T) по закону: u(t) = u0 (1+ l(c-t))/(1+l(c-t0 )).

Если задать дополнительно u(t* )=u* , (umax - неизвестная величина), то закон изменения уровня ошибок находится однозначно, так как: с=(u* t0 -u0 t* )/(lu* -lu0 )-1/l.

К-во Просмотров: 339
Бесплатно скачать Реферат: Исследование некоторых задач в алгебрах и пространствах программ