Преобразование сложных структур данных можно рассматривать как процесс, состоящий из предварительного распознавания некоторых свойств объектов с последующим применением соответствующего преобразования, т.е. как применение пары распознаватель - преобразователь. При достаточно эффективных распознающих средствах, можно организовать преобразование информационных объектов, в частности, аналитических выражений, с помощью соотношений (продукций). Такой подход выбран в АНАЛИТИКе, принадлежащем к языкам, которые ориентированы на распознавание образцов (pattern directed). В АНАЛИТИКЕ для преобразования выражений в качестве пары распознаватель - преобразователь используется соотношение (продукция) F1=F2, где F1 и F2 - математические формы или образцы. F1 используется для распознавания свойств выражений, F2 - для формирования нового выражения. Распознавание свойств основывается на процедуре сопоставления с формой, цель которой выяснить сравнимы ли выражение и форма (подобны ли по своей структуре). Форма в АНАЛИТИКе представляет собой произвольное выражение языка, в котором некоторые переменные, исходя из потребностей задачи, объявляются свободными переменными или параметрами. Подставляя в форму вместо параметров произвольные выражения языка, получаем множество выражений, порожденных этой формой [17,18,23,24]. Типичным примером преобразования с помощью применения системы соотношений является дифференцирование. Сущность любой программы дифференцирования состоит в применении известных правил дифференцирования. Например, применение правила дифференцирования [22]: d/dx(F1+F2) = d/dx(F1)+d/dx(F2) которое кратко звучит как "производная суммы равна сумме производных", означает следующее: распознать, если дифференцируемое выражение представляет собой сумму двух функций, то производную следует построить как сумму производных этих функций. Т.А.Гринченко |