Parte de la suite troff de herramientas de diseño de documentos de Unix , eqn es un preprocesador que formatea ecuaciones para imprimir. Un programa similar, neqn , aceptaba la misma entrada que eqn, pero producía una salida optimizada para que se viera mejor en nroff . El programa eqn fue creado en 1974 por Brian Kernighan y Lorinda Cherry . Se implementó utilizando el compilador yacc . [1]
El lenguaje de entrada utilizado por eqn permite al usuario escribir expresiones matemáticas de la misma manera que se dirían en voz alta. El lenguaje está definido por una gramática independiente del contexto , junto con reglas de precedencia y asociatividad de operadores . [2] El lenguaje eqn es similar al componente matemático de TeX , que apareció varios años después, pero es más simple y menos completo.
GNU ha desarrollado una implementación independiente y compatible del preprocesador eqn como parte de groff , la versión GNU de troff. La implementación GNU extiende el lenguaje original añadiendo una serie de nuevas palabras clave como smallover y accent . mandoc , un compilador especializado para páginas de manual de UNIX , también contiene un formateador/analizador eqn independiente.
La ecuación se escribió utilizando el generador de analizador yacc . [1]
A continuación se muestra cómo se escribirían algunos ejemplos en la ecuación [3] (con equivalentes en TeX para comparación):
Los espacios son importantes en la ecuación; los tokens están delimitados solo por caracteres de espacio en blanco , tildes ~, llaves {} y comillas dobles "". Por lo tanto , f(pi r sup 2)
el resultado es , mientras que es necesario para dar el .f( pi r sup 2 )