Я не уверен, что это принесет вам больше, чем вы уже знаете. Но тогда я могу не понять причин, которые заставляют вас задуматься о переписывании терминов. Это помогает.
Как вы, возможно, знаете, грамматики являются системами перезаписи строк. В верхней части иерархии Хомского у вас есть грамматики типа 0, которые определяют рекурсивно перечислимые (RE) выражения и обладают вычислительной мощностью машин Тьюринга.
Так что это говорит о том, что системы переписывания в целом имеют много общего с алгоритмами выражения.
Проблема со строками в общем заключается в том, что нет очевидного способа прикрепить к ним семантику. Это своего рода аморфное переписывание.
Люди обычно интересуются выражением алгоритмов в определенных областях, которые имеют структуру и свойства. Такие домены часто определяются из элементарных (атомарных) сущностей и закрываются различными операциями, возможно, выражаются отношениями эквивалентности и так далее. Их часто называют алгебрами.
Эти домены часто абстрактны. Но вычисления по их элементам могут быть выражены только по конкретным представлениям. Термины являются естественным представлением этих элементов, поскольку они выражают, как элементы могут быть получены для других элементов путем применения операций, рекурсивно вплоть до атомарных элементов (хотя общие свойства не всегда должны идти полностью вниз). Термины - это разновидность синтаксиса древовидной структуры, которой можно манипулировать для выражения алгоритмов (как для строки). Но структура операндов оператора операндов также позволяет ассоциировать с ними семантику в некоторой абстрактной области с помощью гомоморфизмов.
Вместо того, чтобы принимать формальное представление о википедии и многих текстах на эту тему, просто рассмотрите программы. Обычно признается, что удобным синтаксическим представлением программ является то, что называется абстрактным синтаксическим деревом (AST). Но AST - это просто термин, обозначающий программный объект. Денотационная семантика - это способ определения абстрактных доменов и связывания значений из этих доменов с AST (или поддеревьями AST) посредством гомоморфизмов. Программы в форме AST могут быть преобразованы или оптимизированы путем применения правил переписывания (я не утверждаю, что все оптимизации могут или должны быть выполнены таким образом).
Преобразование алгебраических выражений для различных целей может быть выражено переписыванием термина. Например, упрощение некоторых выражений. Различные типы вычислений также могут быть естественным образом выражены как переписывание терминов, например, вычисление производных. Термин переписывание также иногда используется для определения канонических форм в алгебрах, когда одна и та же семантическая сущность может иметь несколько синтаксических представлений.
Я предлагаю вам взглянуть на статью в Википедии на эту тему .