Annotation of 43BSDReno/share/doc/usd/26.eqn/e6, revision 1.1.1.1

1.1       root        1: .\"    @(#)e6  6.1 (Berkeley) 5/22/86
                      2: .\"
                      3: .NH
                      4: Experience
                      5: .PP
                      6: There are really three aspects of interest_how
                      7: well
                      8: .UC EQN
                      9: sets mathematics,
                     10: how well it satisfies its goal
                     11: of being ``easy to use,''
                     12: and how easy it was to build.
                     13: .PP
                     14: The first question is easily addressed.
                     15: This entire paper
                     16: has been set by the program.
                     17: Readers can judge for themselves
                     18: whether it is good enough for their purposes.
                     19: One of our users commented that although the output
                     20: is not as good as the best hand-set material,
                     21: it is still
                     22: better than average,
                     23: and much better than
                     24: the worst.
                     25: In any case, who cares?
                     26: Printed books cannot compete with the birds and flowers
                     27: of illuminated manuscripts on esthetic grounds,
                     28: either,
                     29: but they have some clear economic advantages.
                     30: .PP
                     31: Some of the deficiencies in the output could
                     32: be cleaned up with more work on our part.
                     33: For example, we sometimes leave too much space between
                     34: a roman letter and an italic one.
                     35: If we were willing to keep track of the fonts
                     36: involved,
                     37: we could do this better more of the time.
                     38: .PP
                     39: Some other weaknesses are inherent in our output device.
                     40: It is hard, for instance, to draw a line
                     41: of an arbitrary length without getting
                     42: a perceptible overstrike at one end.
                     43: .PP
                     44: As to ease of use,
                     45: at the time of writing,
                     46: the system has been used by two distinct groups.
                     47: One user population consists of mathematicians,
                     48: chemists, physicists, and computer scientists.
                     49: Their typical reaction has been something like:
                     50: .IP " (1)"
                     51: It's easy to write, although I make the following mistakes...
                     52: .IP " (2)"
                     53: How do I do...?
                     54: .IP " (3)"
                     55: It botches the following things.... Why don't you fix them?
                     56: .IP " (4)"
                     57: You really need the following features...
                     58: .sp 5p
                     59: .PP
                     60: The learning time is short.
                     61: A few minutes gives the general flavor,
                     62: and typing a page or two of a paper generally
                     63: uncovers most of the misconceptions about how it works.
                     64: .PP
                     65: The second user group is much larger,
                     66: the secretaries and mathematical typists
                     67: who were the original target of the system.
                     68: They tend to be enthusiastic converts.
                     69: They find the language easy to learn
                     70: (most are largely self-taught),
                     71: and have little trouble producing the output they want.
                     72: They are of course less critical of the esthetics of their output
                     73: than users trained in mathematics.
                     74: After a transition period, most find
                     75: using a computer more interesting than
                     76: a regular typewriter.
                     77: .PP
                     78: The main difficulty that users have seems to be remembering
                     79: that a blank is a delimiter;
                     80: even experienced users use blanks where they shouldn't and omit them
                     81: when they are needed.
                     82: A common instance is typing
                     83: .P1
                     84: f(x sub i)
                     85: .P2
                     86: which produces
                     87: .EQ
                     88: f(x sub i)
                     89: .EN
                     90: instead of
                     91: .EQ
                     92: f(x sub i )
                     93: .EN
                     94: Since the 
                     95: .UC EQN
                     96: language knows no mathematics, it cannot deduce that the
                     97: right parenthesis is not part of the subscript.
                     98: .PP
                     99: The language is somewhat prolix, but this doesn't seem
                    100: excessive considering how much is being done,
                    101: and it is certainly more compact than the corresponding
                    102: .UC TROFF
                    103: commands.
                    104: For example, here is the source for the continued fraction
                    105: expression in Section 1 of this paper:
                    106: .P1
                    107: .ne 4
                    108: .ce 0
                    109:      a sub 0 + b sub 1 over
                    110:        {a sub 1 + b sub 2 over
                    111:          {a sub 2 + b sub 3 over
                    112:            {a sub 3 + ... }}}
                    113: .P2
                    114: This is the input for the large integral of Section 1;
                    115: notice the use of definitions:
                    116: .P1
                    117: .ce 0
                    118: .ne 15
                    119: .in 1
                    120: define emx "{e sup mx}"
                    121: define mab "{m sqrt ab}"
                    122: define sa "{sqrt a}"
                    123: define sb "{sqrt b}"
                    124: int dx over {a emx - be sup -mx} ~=~
                    125: left { lpile {
                    126:      1 over {2 mab} ~log~ 
                    127:            {sa emx - sb} over {sa emx + sb}
                    128:    above
                    129:      1 over mab ~ tanh sup -1 ( sa over sb emx ) 
                    130:    above
                    131:      -1 over mab ~ coth sup -1 ( sa over sb emx )
                    132: }
                    133: .in 0
                    134: .P2
                    135: .PP
                    136: As to ease of construction,
                    137: we have already
                    138: mentioned that there are really only a few person-months
                    139: invested.
                    140: Much of this time has gone into two things_fine-tuning
                    141: (what is the most esthetically pleasing space to use
                    142: between the numerator and denominator of a fraction?),
                    143: and changing things found deficient by our users
                    144: (shouldn't a tilde be a delimiter?).
                    145: .PP
                    146: The program consists of a number of small,
                    147: essentially unconnected modules for code generation,
                    148: a simple lexical analyzer,
                    149: a canned parser which we did not have to write,
                    150: and some miscellany associated with input files
                    151: and the macro facility.
                    152: The program is now about 1600 lines of 
                    153: .UC C
                    154: [6], a high-level language reminiscent of
                    155: .UC BCPL .
                    156: About 20 percent of these lines are ``print'' statements,
                    157: generating the output code.
                    158: .PP
                    159: The semantic routines that generate the actual 
                    160: .UC TROFF
                    161: commands can be changed to accommodate other formatting languages
                    162: and devices.
                    163: For example, in less than 24 hours,
                    164: one of us changed the entire semantic package
                    165: to drive 
                    166: .UC NROFF,
                    167: a variant of
                    168: .UC TROFF,
                    169: for typesetting mathematics on teletypewriter devices
                    170: capable of reverse line motions.
                    171: Since many potential users do not have access
                    172: to a typesetter, but still have to type mathematics,
                    173: this provides a way to get a typed version of the final output
                    174: which is close enough for debugging purposes,
                    175: and sometimes even for ultimate use.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.