Hi Eric.

This is Daniel Berry. I promised some time ago some more information
about DWB.

It has taken me a long time to get out from under teaching a class that
I had never taught before.

I read a draft of your _The Art of Unix Programming_ and found that you
were not aware of some of the multi-lingual work that was done with DWB
tools.

Here are some additions to your case study on the DWB Tools

Concerning "The postprocessors (`drivers' in DWB terminology)... is
PostScript."

In the late 1980s and early 1990s, some made use of more powerful
drivers to provide multi-directional formatting and indexing.

Each of right-to-left and top-to-bottom formatting could be achieved by
inserting another driver between the device-independent troff and the
PostScript driver, that recognized text for its own direction in the
device-independent troff output, reordered that output so that the
recognized text would print in the proper direction. This way,
device-independent troff would format all text as if it were written in
the same direction, the right-to-left driver [1, 2] would reorder
Arabic, Hebrew, and Persian text to print from right to left, the
top-to-bottom driver [3] would reorder Chinese and Japanese text to
print from top to bottom, and the PostScript driver would prepare a
tri-directional document for printing on a PostScript printer. The
right-to-left driver was extended to make use of dynamic type 3
PostScript fonts [4] to to achieve line justification by causing
letters to stretch instead of by spreading words with more white space
[5].

An even more ambitious use of such a driver sitting between
device-independent troff and the PostScript driver was to prepare a
back-of-the book index based on the actual page placement of index
terms after the text is broken into pages. The indexing driver searches
for each occurrence of each index term in the device-independent troff
output, in which it is known in what page each character appears, and
prepares a troff source for the index to be formatted and printed in a
later run [6].


Concerning "Some other preprocessors are more interesting..."

flo, preprocessor for pic(1), draws a flowchart from Pascal-like input
describing an algorithm [7]

Concerning "The preceeding is a full-Monty.."

A fuller example of such a pipeline is a diagram published by Allen and
Garlan [8] achieving back-of-the book indexing of a tri-directional
document with tables, formulae, and a variety of different kind of
pictures.

Concerning "One of these lessons is negative..."

This is not true. One can capture the output at any point in the pipe
with a tee. On occasion I have done this, for debugging, but only once
per ``feature''.

1.
%A C. Buchman
%A D.M. Berry
%A J. Gonczarowski
%T \fIDITROFF/FFORTID\fR, An Adaptation of the UNIX \fIDITROFF\fR for Formatting Bi-Directional Text
%J ACM Trans\%actions on Office Information Systems
%K transactions
%V 3
%N 4
%P 380-397
%D October 1985

2.
%L SB92
%A J. Srouji
%A D.M. Berry
%T Arabic Formatting with \fHditroff/ffortid\fP
%J Electronic Publishing
%V 5
%N 4
%P 163-208
%D December 1992

3.
%L BB90
%A Z. Becker
%A D.M. Berry
%T \fHtriroff\fP, an Adaptation of the Device-Independent \fHtroff\fP for Formatting Tri-Directional Text
%J Electronic Publishing
%V 2
%N 3
%P 119-142
%D October 1990

4.
%L AB90
%K Andre
%A J. Andr\o'e\(aa'
%A B. Borghi
%T Dynamic Fonts
%J P\s-2OST\s0S\s-2CRIPT\s0 Language Journal
%V 2
%N 3
%P 4-6
%D 1990

5.
%K Bry98
%L Berry, 1998
%A D.M. Berry
%T Stretching letter and slanted-baseline formatting for Arabic, Hebrew, and Persian with \fHditroff/ffortid\fP and Dynamic P\s-2OST\%\s0S\s-2CRIPT\s0 Fonts
%J Software\(emPractice and Experience
%D 1999
%V 29
%N 15
%P 1417-1457

6.
%L AB89
%A K.K. Abe
%A D.M. Berry
%K indx findphrases
%T \fHindx\fP and \fHfindphrases\fP, A System for Generating Indexes for Ditroff Documents
%J Software\(emPractice and Experience
%V 19
%N 1
%P 1-34
%D 1989

7.
%L WB90
%A T. Wolfman
%A D.M. Berry
%K flo
%T \fHflo\fP \(em A Language for Typesetting Flowcharts
%B Electronic Publishing '90
%P 93-108
%E R. Furuta
%I Cambridge University Press
%C Cambridge, UK
%D 1990

8.
%L AG94
%A R.B. Allen
%A D. Garlan
%T Formalizing Architectural Connection
%B International Conference on Software Engineering (ICSE)
%D 1994
%P 71-80

Enjoy!

Dan

If you want ANY of these papers, I can send them to you..

I attach a PDF version of the pipe diagram from the Allen-Garlan paper.
I have it because they got it from me.. after seeing a talk I gave..