JargonFile/original/html/T/troff.html
2014-03-27 18:54:56 +00:00

28 lines
3.8 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>troff</title><link rel="stylesheet" href="../../jargon.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.61.0"/><link rel="home" href="../index.html" title="The Jargon File"/><link rel="up" href="../T.html" title="T"/><link rel="previous" href="trivial.html" title="trivial"/><link rel="next" href="troglodyte.html" title="troglodyte"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">troff</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="trivial.html">Prev</a> </td><th width="60%" align="center">T</th><td width="20%" align="right"> <a accesskey="n" href="troglodyte.html">Next</a></td></tr></table><hr/></div><dt><a id="troff"/><dt xmlns="" id="troff"><b>troff</b>: <span xmlns="http://www.w3.org/1999/xhtml" class="pronunciation">/T´rof/</span>, <span xmlns="http://www.w3.org/1999/xhtml" class="pronunciation">/trof/</span>, <span xmlns="http://www.w3.org/1999/xhtml" class="grammar">n.</span></dt></dt><dd><p> [Unix] The gray eminence of Unix text processing; a formatting and
phototypesetting program, written originally in <a href="../P/PDP-11.html"><i class="glossterm">PDP-11</i></a> assembler and then
in barely-structured early C by the late Joseph Ossanna, modeled after the
earlier ROFF which was in turn modeled after the
<a href="../M/Multics.html"><i class="glossterm">Multics</i></a> and <a href="../C/CTSS.html"><i class="glossterm">CTSS</i></a> program
RUNOFF by Jerome Saltzer (<span class="emphasis"><em>that</em></span> name came from the
expression &#8220;<span class="quote">to run off a copy</span>&#8221;). A companion program,
<span class="application">nroff</span>, formats output for terminals and line
printers.</p><p>In 1979, Brian Kernighan modified troff so that it could drive
phototypesetters other than the Graphic Systems CAT. His paper describing
that work (&#8220;<span class="quote">A Typesetter-independent troff,</span>&#8221; AT&amp;T CSTR
#97) explains troff's durability. After discussing the program's
&#8220;<span class="quote">obvious deficiencies &#8212; a rebarbative input syntax, mysterious
and undocumented properties in some areas, and a voracious appetite for
computer resources</span>&#8221; and noting the ugliness and extreme hairiness of
the code and internals, Kernighan concludes:</p><div class="blockquote"><blockquote class="blockquote"><p>None of these remarks should be taken as denigrating
Ossanna's accomplishment with TROFF. It has proven a
remarkably robust tool, taking unbelievable abuse from a
variety of preprocessors and being forced into uses that
were never conceived of in the original design, all with
considerable grace under fire.</p></blockquote></div><p>The success of <a href="TeX.html"><i class="glossterm">TeX</i></a> and desktop publishing
systems have reduced <b class="command">troff</b>'s relative
importance, but this tribute perfectly captures the strengths that secured
<b class="command">troff</b> a place in hacker folklore; indeed,
it could be taken more generally as an indication of those qualities of
good programs that, in the long run, hackers most admire.</p></dd><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="trivial.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="../T.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="troglodyte.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">trivial </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> troglodyte</td></tr></table></div></body></html>