TermWare -- встраиваемый язык переписывающих правил с действиями, реализованый в JVM
Основное понятие языка: система правил, состоит из - наборов правил вида: input [ condition ] -> output [action] упорядоченных по принципу "более частный случай проверяется сначала" - БД фактов, играющей роль "внешнего мира" для таких правил (В качестве БД фактов может быть использован любой Java class) - стратегии применения этого набора правил
Существует иерархическое именования систем и операции их композиции
TermWare используется в основном для символьных вычислений и преобразований символьных моделей. В частности, существуют драйвера для преобразования в модели термом текстов на Java, PHP, graphwiz.
Элементы синтаксиса:Комментарий до конца строки # Регистрозависимость да Регулярное выражение идентификатора переменной \$[a-b|A-B|0-9|_]+ Регулярное выражение идентификатора функции [a-b|A-B|0-0_]+ Присваивание значения переменной нет Объявление переменной неи Объявление переменной с присваиванием значения нет Группировка выражений ( .... ) Блок нет Равенство == Неравенство != Тождественное равенство нет Тождественное неравенство нет Сравнение <, >, = Определение функции функций как таковых нет. Вызов функции вызов системы: x.y, apply(x,y) Вызов функции без параметров c Последовательность нет Если - то две формы, Как правило: x [c] -> y[a] и как вырадение: x ? y : z Если - то - иначе правило: x [c] -> y[a] | [c1] -> y1[a1] ... !-> yLast [aLast] Бесконечный цикл нет Цикл с предусловием нет Цикл с постусловием нет Цикл for - next для диапазона целых чисел с инкрементом на 1 нет Цикл for - next для диапазона целых чисел с декрементом на 1 нет