In a compiler or program proving or verification software code, it is often
useful to analyse a computer program and one way in which this might be
partially achieved is by comparing algebraic expressions to see if they
are equivalent, i.e. to see if they are derivable from a common template
or function definition. Herein a string matching and replacement algorithm
is used to compare two functions. Initially, each expression is converted
to a "reduced" form by reference to a set of standard rules so as, for
example, to ensure that terms comprising the same variables are combined.
The variables names in each term are then replaced with symbols to
produce, for each expression, a corresponding character string which,
arranged in a predetermined order, are compared to determine equivalence
of the expressions. To achieve this, a matrix M is formed with entries
corresponding to the symbols and the matrix elements are incremented
according to pre-set rules. The matrix is then processed to identify
equivalence.
В Кодем средства программирования составителя или доказывать или проверки программы, часто полезно проанализировать компьутерную программу и одна дорога в которой это могло частично быть достигано путем сравнивать алгебреические выражения для того чтобы увидеть если они соответствующи, то, т.е. увидеть если они derivable от общего определения шаблона или функции. Здесь шнура сопрягать и замены алгоритм использован для того чтобы сравнить 2 функции. Первоначально, каждое выражение преобразовано к "уменьшенной" форме справкой к комплекту стандартных правил так как, для примера, для того чтобы обеспечить что совмещены термины состоя из таких же перемеююых. Имена перемеююых в каждый термин после этого заменены с символами для того чтобы произвести, для каждого выражения, соответствуя характерную черту которые, аранжированную в предопределенном заказе, сравнены для того чтобы обусловить равнозначность выражений. Для того чтобы достигнуть этого, матрица м сформирована при входы соответствуя к символам и элементы матрицы инкрементированы согласно заранее поставленным правилам. Матрица после этого обработана для того чтобы определить равнозначность.