related topics
{system, computer, user}
{math, number, function}
{work, book, publish}
{language, word, form}
{style, bgcolor, rowspan}
{island, water, area}

troff is a document processing system developed by AT&T for the Unix operating system.



troff can trace its origins back to a text formatting program called RUNOFF, written by Jerome H. Saltzer for MIT's CTSS operating system in the mid-1960s. (The name allegedly came from the phrase at the time, I'll run off a document.)

Bob Morris ported it to the GE 635 architecture and called the program roff (an abbreviation of runoff). It was rewritten as rf for the PDP-7, and at the same time (1969), Doug McIlroy rewrote an extended and simplified version of roff in the BCPL programming language.

The first version of Unix was developed on a PDP-7 which was sitting around Bell Labs. In 1971 the developers wanted to get a PDP-11 for further work on the operating system. In order to justify the cost for this system, they proposed that they would implement a document formatting system for the AT&T patents division. This first formatting program was a reimplementation of McIllroy's roff, written by Joe F. Ossanna.

When they needed a more flexible language, a new version of roff called nroff (Newer 'roff' ) was written. It had a much more complicated syntax, but provided the basis for all future versions. When they got a Graphic Systems CAT phototypesetter, Ossanna wrote a version of nroff that would drive it. It was dubbed troff, for typesetter 'roff'. As such, the name troff is pronounced /ˈtiː.rɒf/ rather than */ˈtrɒf/.

With troff came nroff (they were actually almost the same program), which was for producing output for line printers and character terminals. It understood everything troff did, and ignored the commands which were not applicable (e.g. font changes).

Unfortunately, Ossanna's troff was written in PDP-11 assembly language and produced output specifically for the CAT phototypesetter. He rewrote it in C, although it was now 7000 lines of uncommented code and still dependent on the CAT. As the CAT became less common, and was no longer supported by the manufacturer, the need to make it support other devices became a priority. However, before this could be done, Ossanna died.

Full article ▸

related documents
Parallel algorithm
Streaming SIMD Extensions
Escape sequence
Multicast address
Turbo Pascal
Extended Binary Coded Decimal Interchange Code
International Mobile Subscriber Identity
Active Server Pages
Segmentation fault
Digital compositing
Internet standard
IBM 1620 Model II
IBM 7030 Stretch
Computing platform
System analysis
Journaling file system
Source Mage GNU/Linux
Alpha compositing