Roff

Un article de Wikipédia, l'encyclopédie libre.

Roff est un langage de formatage de texte historiquement lié à UNIX et à ses dérivés (BSD, Linux...).

Sommaire

[modifier] Description

Comme le langage LaTeX, roff est un langage de formatage de texte reposant sur un système de balises. Sa légèreté (il alourdit très peu les textes), le fait qu'il soit interprété (contrairement à LaTeX qui est compilé) font de roff un langage très populaire dans le monde UNIX et ses dérivés (*BSD, Linux, etc.). Il sert en particulier au formatage des pages de manuel. Il possède ses adeptes inconditionnels (tels Andrew Tanenbaum, cf. citation ci-dessous), qui le préfèrent :

[modifier] Historique

roff a connu trois étapes majeures :

  • runoff, pour CTSS et Multics ;
  • roff, troff et nroff pour UNIX ;
  • groff, pour systèmes GNU.

[modifier] CTSS et Multics : runoff

[modifier] CTSS

L'ancêtre de la série des roff est le programme runoff qui fut conçu en 1961 par Jerry Saltzer sur le système d'exploitation CTSS ; ce programme était écrit en PL/1, puis en BCPL (ancêtre du langage C, donc de ses propres descendants : C++, Java...). Le nom du programme signifie « écrire à la va-vite », car son objectif est de permettre d'écrire rapidement et facilement des documents d'une bonne qualité typographique.

[modifier] Multics

En 1963, lorsque CTSS évolua en Multics, runoff devint le principal programme de mise en page, servant en particulier pour les pages d'aide — fonction qui lui reste encore principalement attachée aujourd'hui.

[modifier] UNIX : nroff, troff, ditroff

Avec UNIX apparut un couple de programmes destiné à une grande popularité : nroff et troff. Au Massachusetts Institute of Technology, on ressentit le besoin de piloter depuis le PDP-11 une photocomposeuse, périphérique de sortie graphique ; or, runoff n'y suffisait pas.

Aussi Joseph Ossanna, l'un des principaux développeurs de MULTICS et programmeur de plusieurs ports de runoff, écrivit-il un ensemble de trois programmes, décrivant les fonctionnalités de base dont toute implémentation du langage est encore largement redevable aujourd'hui :

  • roff, abréviation de runoff ; ce programme reprend roff avec toutes ses limitations, mais fut rapidement abandonné : aujourd'hui, ce terme désigne le système troff/nroff dans son ensemble ;
  • troff (typesetting roff : roff de mise en page) servait à générer une sortie graphique ;
  • nroff (new roff : nouveau roff) servait à produire une sortie texte convenant aux terminaux et aux imprimantes en mode ligne.

Ces programmes furent écrits sous plusieurs langages successifs :

  • dans le langage d'assemblage du PDP-7 vers 1970 ;
  • dans le langage d'assemblage du PDP-11 en 1971 (selon la version anglaise de cette page) ou 1973 (selon la page de manuel de roff) ;
  • en langage C en 1975, lorsque Brian Kernighan a rejoint l'équipe de développement de roff.

Après le décès d'Ossanna en 1977, Kernighan écrivit encore le programme ditroff qui convertissait un fichier en une sortie binaire indépendante du périphérique (Device Independant).

[modifier] GNU : groff

Le programme groff (GNU roff), écrit par James Clark, est aujourd'hui le clône de roff/troff/ditroff le plus répandu. Il émule tous ces programmes et y ajoute quelques fonctionnalités originales.

[modifier] Voir aussi

[modifier] Liens externes

Autres langues