Часть набора инструментов troff для верстки документов Unix , eqn — это препроцессор , который форматирует уравнения для печати. Похожая программа neqn принимала те же входные данные, что и eqn, но производила вывод, настроенный так, чтобы лучше выглядеть в nroff . Программа eqn была создана в 1974 году Брайаном Керниганом и Лориндой Черри . Она была реализована с использованием компилятора yacc -компилятора. [1]
Входной язык, используемый eqn, позволяет пользователю записывать математические выражения почти так же, как они произносятся вслух. Язык определяется контекстно-свободной грамматикой вместе с правилами приоритета операторов и ассоциативности операторов . [2] Язык eqn похож на математический компонент TeX , который появился несколько лет спустя, но он проще и менее полон.
Независимая совместимая реализация препроцессора eqn была разработана GNU как часть groff , версии GNU troff. Реализация GNU расширяет исходный язык, добавляя ряд новых ключевых слов, таких как smallover и accent . mandoc , специализированный компилятор для страниц руководства UNIX , также содержит автономный парсер/форматер eqn.
Уравнение было написано с использованием генератора парсеров yacc . [1]
Вот как некоторые примеры можно записать в уравнении [3] (с эквивалентами в TeX для сравнения):
Пробелы важны в eqn; токены разделяются только пробелами , тильдами ~, фигурными скобками {} и двойными кавычками "". Таким образом f(pi r sup 2)
получается , тогда как для получения предполагаемого .f( pi r sup 2 )