> troff pre-dates C by quite a while Actually not. C and nroff were contemporary--both debuted in 2nd edition Unix. troff came in the 3rd edition. Of course nroff was preceded by roff, and that by runoff; but neither of those had a | operator, which was the triggering question. Certainly by the time | for absolute page coordinates appeared in nroff/troff, C was well known to all involved.
roff, the original of which I wrote, did not have expressions, though it did support constructions like .ps +2 to increment and decrement parameters.