Введение
OPS5 — это компьютерный язык, основанный на правилах или производственной системе, примечательный как первый язык такого рода, использованный в успешной экспертной системе R1/XCON, предназначенной для конфигурирования компьютеров VAX. Семейство OPS (предположительно сокращение от "Official Production System") было разработано в конце 1970-х годов Чарльзом Форги в Университете Карнеги — Меллона. Исследовательская группа Аллена Ньюэлла в области искусственного интеллекта уже некоторое время работала над производственными системами, но реализация Форги, основанная на его алгоритме Rete, оказалась особенно эффективной, настолько, что стало возможным масштабировать систему для решения более крупных задач, включающих сотни или тысячи правил. OPS5 использует механизм логического вывода с прямой цепочкой рассуждений; программы выполняются путем сканирования "элементов рабочей памяти" (которые в некоторой степени напоминают объекты, с классами и атрибутами) в поисках соответствий с правилами в "производственной памяти". Правила содержат действия, которые могут изменять или удалять соответствующие элементы, создавать новые, выполнять побочные эффекты, такие как вывод данных, и так далее. Выполнение продолжается до тех пор, пока не будет найдено больше соответствий. В этом смысле OPS5 является механизмом выполнения сети Петри, расширенной ингибиторными дугами. Процесс прямой цепочки рассуждений в OPS5 делает его чрезвычайно пригодным для параллелизации на этапе сопоставления, и было создано несколько автоматических компиляторов для параллелизации. OPS4 была ранней версией, а OPS83 появилась позже. Первая реализация OPS5 была написана на Lisp, а затем переписана на BLISS для повышения скорости. DEC OPS5 — это расширенная реализация спецификации языка OPS5, разработанная для использования с операционными системами OpenVMS, RISC ULTRIX и DEC OSF/1.