%!PS-Adobe- PostScript translation of Interpress master
%%DocumentFonts: unknown
%%Creator: chauser
%%Pages: 34
%%EndComments
% Simple procedures (others defined as needed)
/width {stringwidth pop} bind def % stack: text
/vec {moveto lineto stroke} bind def % stack: x y
/nsp {0 exch {32 eq {1 add} if} forall} bind def % stack: txt -> #spaces
/try {dup where {exch get} {pop 0} ifelse} bind def % stack: value
%%EndProlog
%%page 1
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
/Times-Roman findfont 10.0375 scalefont
/font0 exch def
font0 setfont
304.7441 36.135 moveto
(1) show
90.3375 689.9815 moveto
/Times-Italic findfont 10.0375 scalefont
/font1 exch def
font1 setfont
(CedarPrimer.tioga) show
105.3938 677.9366 moveto
font1 setfont
(Copyright ) show
/Times-Italic findfont 10.0375 scalefont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding ISOLatin1Encoding def currentdict
end
/font2 exch definefont pop
/font2 findfont setfont
(\251) show
font1 setfont
( 1990, 1992, 1993 by Xerox Corporation. All rights reserved.) show
105.3938 665.8916 moveto
font1 setfont
(Brian Oki, October 4, 1990 10:40 am PDT) show
105.3938 653.8465 moveto
font1 setfont
(Brent Welch November 5, 1990 11:59 am PST) show
105.3938 641.8015 moveto
font1 setfont
(Christian Jacobi, April 21, 1993 5:25 pm PDT) show
105.3938 629.7568 moveto
font1 setfont
(Chauser, November 12, 1993 4:50 pm PST) show
105.3938 617.7115 moveto
90.3375 605.6668 moveto
/Times-Roman findfont 8.029999 scalefont
/font3 exch def
font3 setfont
(CedarPrimer 1993 ) show
90.3375 545.4415 moveto
/Helvetica-Bold findfont 18.0675 scalefont
/font4 exch def
font4 setfont
(How To Get Around Cedar - CDROM Edition) show
90.3375 509.3067 moveto
/Helvetica findfont 12.045 scalefont
/font5 exch def
font5 setfont
(Brian Oki, Christian Jacobi et al.) show
90.3375 473.1715 moveto
/Helvetica findfont 8.029999 scalefont
/font6 exch def
font6 setfont
(Filed on) show
/Helvetica findfont 10.0375 scalefont
/font7 exch def
font7 setfont
(: [Cedar10.1]<CedarDoc>CedarPrimerCDROM.tioga) show
90.3375 443.0592 moveto
90.3375 406.9242 moveto
/Symbol findfont 8.029999 scalefont
/font8 exch def
font8 setfont
(\323) show
font6 setfont
( Copyright 1990, 1992, 1993 Xerox Corporation. All rights reserved.) show
90.3375 376.8116 moveto
90.3375 340.6766 moveto
/colwidth 423.62 def
gsave
/Helvetica-Bold findfont 10.0375 scalefont
/font9 exch def
/execget {arindex get dup null eq {pop} {exec} ifelse} bind def
/mixedjustify {
/excess colwidth totwidth sub def
0 1 npiece {
/arindex exch def
opsbef execget % exec any accumu before ops
nspaces arindex get % stack: nspaces
dup 0 eq { % stack: nspaces
pop texts arindex get % stack: text
show % stack: NULL
}{
weights arindex get % stack: nspaces weight
totwt div excess mul % stack: nspaces share-excess
exch div 0 32 % stack: spaceadd 0 32
texts arindex get % stack: spaceadd 0 32 text
widthshow % stack: NULL
} ifelse
opsaft execget % exec any accumulated after ops
} for
/totwidth 0 def /totwt 0.0 def
} bind def
/buf { % stack: text npiece
/npiece exch def % stack: text
dup nsp /ns exch def % stack: text
dup texts npiece 3 -1 roll put % stack: text
nspaces npiece ns put width % stack: width
totwidth add /totwidth exch def % stack: NULL
ns 0 ne {
( ) width ns mul % stack: weight
dup totwt add /totwt exch def % stack: weight
weights npiece 3 -1 roll put % stack: NULL
} if
} bind def
/texts 250 array def
/nspaces 250 array def
/weights 250 array def
/opsbef 250 array def
/opsaft 250 array def
/totwidth 0 def
/totwt 0.0 def
font9 setfont
opsbef 0 {font9 setfont} put
(Abstract: ) 0 buf
opsaft 0 null put
font7 setfont
opsbef 1 {font7 setfont} put
(This document is a general introduction Cedar and is geared towards the needs) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 328.6316 moveto
gsave
/justify { % stack: text
dup nsp /ns exch def % stack: text
ns 0 eq {show} { % stack: text
dup width /totwidth try add % stack: text width
colwidth exch sub % stack: text excess
ns div % stack: text spaceadd
0 32 4 -1 roll % stack: spaceadd 0 32 text
widthshow /totwidth 0 def % stack: NULL
} ifelse
} bind def
font7 setfont
(and interests of newcomers to the Cedar programming language and environment. It) justify
grestore
90.3375 316.5867 moveto
gsave
font7 setfont
(describes starting the Cedar environment, printing on-line documents, programming in) justify
grestore
90.3375 304.5416 moveto
font7 setfont
(Cedar, and some lore about Cedar.) show
90.3375 280.4516 moveto
gsave
font7 setfont
opsbef 0 {font7 setfont} put
([) 0 buf
opsaft 0 null put
font9 setfont
opsbef 1 {font9 setfont} put
(If you are looking at this document on-line from within the editor named Tioga,) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 268.4066 moveto
gsave
font9 setfont
(you might want to use the level functions to its overall structure. Click the) justify
grestore
90.3375 256.3616 moveto
gsave
font9 setfont
(``Levels'' button in the top menu, then click ``FirstLevelOnly'' in the new menu) justify
grestore
90.3375 244.3166 moveto
gsave
font9 setfont
(that appears. That will show you the major section headings. Click ``AllLevels'') justify
grestore
90.3375 232.2716 moveto
font9 setfont
(to read the details.) show
font7 setfont
(]) show
90.3375 208.1816 moveto
90.3375 120.4501 moveto
/Helvetica findfont 24.09 scalefont
/font10 exch def
font10 setfont
(XEROX) show
font0 setfont
44.56522 0.0 rmoveto
font7 setfont
58.0 0.0 rmoveto
58.0 0.0 rmoveto
(Xerox Corporation) show
90.3375 108.4051 moveto
font0 setfont
58.0 0.0 rmoveto
font7 setfont
58.0 0.0 rmoveto
58.0 0.0 rmoveto
58.0 0.0 rmoveto
(Palo Alto Research Center) show
90.3375 96.36014 moveto
font0 setfont
58.0 0.0 rmoveto
58.0 0.0 rmoveto
58.0 0.0 rmoveto
58.0 0.0 rmoveto
font7 setfont
(3333 Coyote Hill Road) show
90.3375 84.31512 moveto
font0 setfont
58.0 0.0 rmoveto
font7 setfont
58.0 0.0 rmoveto
58.0 0.0 rmoveto
58.0 0.0 rmoveto
(Palo Alto, California 94304) show
90.3375 72.27012 moveto
grestore
grestore
% end page 1
showpage
%%page 2
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
519.2227 746.79 moveto
(2) show
90.3375 684.9593 moveto
/Times-Bold findfont 12.045 scalefont
/font11 exch def
font11 setfont
(1. Introduction) show
90.3375 660.8125 moveto
/Times-Bold findfont 10.0375 scalefont
/font12 exch def
font12 setfont
(1.1 Foreword) show
110.4125 636.6778 moveto
/colwidth 403.545 def
gsave
font0 setfont
(The purpose of this document is to help newcomers adapt to the Cedar computing) justify
grestore
90.3375 624.6326 moveto
/colwidth 423.62 def
gsave
font0 setfont
(environment. We hope it will prove useful as a primer on getting started \050and surviving\051 with) justify
grestore
90.3375 612.5876 moveto
gsave
font0 setfont
(Cedar on Sun SPARCstations. In particular, we describe how to start the Cedar environment \050a) justify
grestore
90.3375 600.5428 moveto
font1 setfont
(world) show
font0 setfont
(\051, printing on-line documents, and a bit about Cedar programming. ) show
110.4125 582.4415 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(This document does ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(not) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( teach you the Cedar programming language, but it does provide a) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 570.3965 moveto
/colwidth 423.62 def
gsave
font0 setfont
(number of hints and summaries on the subject; these may or may not be documented elsewhere.) justify
grestore
90.3375 558.3514 moveto
font0 setfont
(See LanguageOverviewDoc.tioga for an introduction to the Cedar language.) show
110.4125 540.2503 moveto
/colwidth 403.545 def
gsave
font0 setfont
(A great deal of useful information is available on-line in the form of documents and source) justify
grestore
90.3375 528.2051 moveto
/colwidth 423.62 def
gsave
font0 setfont
(programs. Reading them is often very helpful, but finding them can be a nuisance. Throughout) justify
grestore
90.3375 516.1604 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(this document, references to on-line material are indicated by <) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(n) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(>, where ) 2 buf
opsaft 2 null put
font1 setfont
opsbef 3 {font1 setfont} put
(n) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
( is a citation number in) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 504.1154 moveto
gsave
font0 setfont
(the bibliography at the end of this document. Standard citations to the open literature appear as) justify
grestore
90.3375 492.0702 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(n) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(]. To help the browsing reader, we pretty much have abandoned the custom of defining terms) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 480.0253 moveto
gsave
font0 setfont
(before using them. Instead, relevant terms, acronyms, and such are collected in <73>. You can) justify
grestore
90.3375 467.9804 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(easily jump to the definition of a reference by selecting <) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(n) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(> or [) 2 buf
opsaft 2 null put
font1 setfont
opsbef 3 {font1 setfont} put
(n) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(] and clicking on the \042Def\042 button.) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 455.9352 moveto
gsave
font0 setfont
(Include the brackets in the selection. You can jump back to where you were by clicking the) justify
grestore
90.3375 443.8902 moveto
font0 setfont
(\042PrevPlace\042 button. You can experiment now with <) show
font1 setfont
(n) show
font0 setfont
(> or [) show
font1 setfont
(n) show
font0 setfont
(].) show
110.4125 425.789 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(A starting point in your on-line documentation search is ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(CedarDocDoc.tioga) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. It contains) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 413.7442 moveto
/colwidth 423.62 def
gsave
font0 setfont
(pointers to other useful documents to read. You can open it now by typing \042open CedarDocDoc\042) justify
grestore
90.3375 401.6989 moveto
font0 setfont
(at a commander prompt.) show
90.3375 377.5641 moveto
font12 setfont
(1.2 Roadmap) show
110.4125 353.429 moveto
/colwidth 403.545 def
gsave
font0 setfont
(This document consists of six sections. Section 2 tells you what magic incantations you need) justify
grestore
90.3375 341.384 moveto
/colwidth 423.62 def
gsave
font0 setfont
(to invoke to bring up a Cedar world on your SPARCstation, some details about the window for) justify
grestore
90.3375 329.339 moveto
gsave
font0 setfont
(typing commands, how to tailor your system to suit your personal style, the meaning of the) justify
grestore
90.3375 317.294 moveto
font0 setfont
(buttons, and a short introduction to editing using Tioga,. ) show
110.4125 299.1928 moveto
font0 setfont
(Section 3 discusses how to print documents. ) show
110.4125 281.0915 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(Perhaps the most important section is Section 4, which introduces the tyro user to the) justify
grestore
90.3375 269.0465 moveto
/colwidth 423.62 def
gsave
font0 setfont
(mysteries of programming in Cedar. In particular, it discusses the idiosyncrasies of naming,) justify
grestore
90.3375 257.0014 moveto
gsave
font0 setfont
(contains a brief history of the Cedar programming language, describes the file name space is) justify
grestore
90.3375 244.9565 moveto
gsave
font0 setfont
(organized, discusses system modelling using DF files, and contains a walk-through of a simple) justify
grestore
90.3375 232.9114 moveto
font0 setfont
(Cedar example. ) show
110.4125 214.8101 moveto
font0 setfont
(Section 5 contains a bit more about some of the on-line documentation.) show
110.4125 196.709 moveto
font0 setfont
(We conclude with a long list of references.) show
110.4125 178.6077 moveto
/colwidth 403.545 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(Note) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(: To assemble this document I lifted portions of documentation from various sources) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 166.5627 moveto
font0 setfont
(without always acknowledging the sources or the authors; my apologies to those possibly offended.) show
110.4125 148.4615 moveto
/colwidth 403.5451 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(Acknowledgments) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(. Thanks to Ken Pier and Brent Welch for reading a draft of this document) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 136.4165 moveto
/colwidth 423.62 def
gsave
font0 setfont
(in its entirety and suggesting numerous changes that significantly improved its presentation.) justify
grestore
90.3375 124.3714 moveto
gsave
font0 setfont
(Thanks also to Jim Foote and Sharon Johnson for critiquing the sections on mail and) justify
grestore
90.3375 112.3265 moveto
gsave
font0 setfont
(programming. Finally, thanks to Craig Mudge, David Goldberg, John Coolidge, Vijay Saraswat,) justify
grestore
90.3375 100.2815 moveto
font0 setfont
(and countless others for reporting bugs.) show
grestore
grestore
% end page 2
showpage
%%page 3
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
519.525 746.79 moveto
(3) show
90.3375 684.9593 moveto
font11 setfont
(2. Getting started) show
90.3375 659.2157 moveto
font12 setfont
(2.1 Bringing up the Cedar world from the CDROM) show
110.4125 633.8033 moveto
/colwidth 403.545 def
gsave
font0 setfont
(How do you bring up a Cedar world? The following assumes that you have already started the) justify
grestore
90.3375 621.758 moveto
/colwidth 423.62 def
gsave
font0 setfont
(X Windows system and have mounted the CDROM as a unix file system somewhere in your) justify
grestore
90.3375 609.7132 moveto
gsave
font0 setfont
(network. You need to cd to the right place on the CDROM and set up an environment variable.) justify
grestore
90.3375 597.6682 moveto
gsave
font0 setfont
(Type the following to a csh shell prompt \050if not using the C shell do whatever you have to do to set) justify
grestore
90.3375 585.6231 moveto
font0 setfont
(the environment variable\051:) show
110.4125 566.5637 moveto
/Courier findfont 10.0375 scalefont
/font13 exch def
font13 setfont
(% setenv XeroxCedar <cdrom-mount-point>/Cedar) show
110.4125 547.5043 moveto
font13 setfont
(% cd $XeroxCedar/solaris1) show
110.4125 528.4449 moveto
font13 setfont
(% x11v) show
110.4125 509.3856 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Of course, if you are running on a Solaris2 machine use \042solaris2\042 in the second command) justify
grestore
90.3375 497.3405 moveto
font0 setfont
(above.) show
110.4125 478.2809 moveto
gsave
font0 setfont
(Various things will scroll by in the window where the shell was running, and eventually a large) justify
grestore
90.3375 466.2361 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(window will be created that will contain the Cedar windowing system called ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(Viewers) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. When) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 454.191 moveto
gsave
font0 setfont
(activity stops, on the right side of the screen is a window \050or ``viewer'' in Cedar lingo\051, called the) justify
grestore
90.3375 442.1459 moveto
gsave
font9 setfont
opsbef 0 {font9 setfont} put
(Commander) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( viewer. The ) 1 buf
opsaft 1 null put
font9 setfont
opsbef 2 {font9 setfont} put
(Commander ) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(is the viewer in which you type your commands at the) 3 buf
opsaft 3 null put
mixedjustify
grestore
90.3375 430.101 moveto
font0 setfont
(% prompt. There will also be a commander prompt in the X window you used to start Cedar.) show
110.4125 411.0414 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Note that \042killing a connection\042 won't destroy a Cedar Viewers world. The X11ViewersWorld) justify
grestore
90.3375 398.9964 moveto
/colwidth 423.62 def
gsave
font0 setfont
(attempts to reconnect to an X server if it loses its connection. This is useful if your X server) justify
grestore
90.3375 386.9514 moveto
gsave
font0 setfont
(crashes. Just restart X and your Cedar world springs back into existence. To stop a Cedar Viewers) justify
grestore
90.3375 374.9065 moveto
gsave
font0 setfont
(world either use the Cedar command \042ExitWord\042, the X11Viewers pop up menu or a \042delete) justify
grestore
90.3375 362.8616 moveto
font0 setfont
(window\042 option in the window manager. ) show
110.4125 343.802 moveto
90.3375 318.3894 moveto
font12 setfont
(2.2 The Commander) show
110.4125 292.9768 moveto
/colwidth 403.545 def
gsave
font0 setfont
(The Commander is the viewer with a directory name \050initially \042/Cedar/Commands %\042\051, as its) justify
grestore
90.3375 280.9318 moveto
/colwidth 423.62 def
gsave
font0 setfont
(banner, and is where commands are typed. \050The banner is light blue on color displays, reverse) justify
grestore
90.3375 268.8868 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(video on monochrome displays\051. You can create additional such viewers by clicking on the ) 0 buf
opsaft 0 null put
font7 setfont
opsbef 1 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Cmd) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
mixedjustify
grestore
90.3375 256.8418 moveto
font0 setfont
(button at the very top of the screen. ) show
110.4125 237.7823 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Since I'm assuming that you're seated in front of a SPARCstation, a hard copy of this) justify
grestore
90.3375 225.7374 moveto
/colwidth 423.62 def
gsave
font0 setfont
(document in hand, and have managed to bring up a Cedar world, let's type some commands to the) justify
grestore
90.3375 213.6923 moveto
gsave
font0 setfont
(Commander. Let's list the current directory. Type the following to your Commander \050the) justify
grestore
90.3375 201.6474 moveto
font0 setfont
(Commander prompt is a bold-faced percent sign ) show
font12 setfont
(%) show
font0 setfont
(\051, and hit ) show
font3 setfont
(RETURN) show
font0 setfont
(:) show
125.4688 188.6104 moveto
font12 setfont
(%) show
/Times-Roman findfont 10.0375 scalefont
/font14 exch def
font14 setfont
( cd ) show
131.4688 176.5654 moveto
font14 setfont
(/yourhomedirectory/) show
125.4688 163.5284 moveto
font12 setfont
(%) show
font14 setfont
( ls) show
125.4688 150.4915 moveto
font14 setfont
(/yourhomedirectory/) show
125.4688 137.4545 moveto
font14 setfont
(. 1536 05-May-90 15:09:45 PDT) show
125.4688 124.4176 moveto
font14 setfont
(.. 512 07-May-90 09:47:33 PDT) show
125.4688 111.3807 moveto
font14 setfont
(.cshrc 903 04-May-90 13:47:37 PDT) show
125.4688 98.3438 moveto
font14 setfont
(.emacs 71 08-Mar-90 09:43:57 PST) show
125.4688 85.30687 moveto
font14 setfont
(.login 38 07-Feb-90 12:50:07 PST) show
125.4688 72.26993 moveto
font14 setfont
(.logout 56 27-Mar-90 14:29:51 PST) show
grestore
grestore
% end page 3
showpage
%%page 4
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
519.081 746.79 moveto
(4) show
125.4688 689.9815 moveto
font14 setfont
(...) show
90.3375 670.9946 moveto
gsave
font0 setfont
(This is the Cedar-style directory listing. You can stop the listing by clicking with the left mouse) justify
grestore
90.3375 658.9496 moveto
font0 setfont
(button on the STOP! button at the top of the Commander viewer.) show
90.3375 639.963 moveto
font0 setfont
(You can use the * wildcard in file names:) show
125.4688 626.9983 moveto
font12 setfont
(%) show
font14 setfont
( ls *.mesa) show
90.3375 608.0113 moveto
font0 setfont
(You can find out the usage of a command with the ? command:) show
125.4688 595.0469 moveto
font12 setfont
(%) show
font14 setfont
( ? ls) show
125.4688 582.0824 moveto
font9 setfont
(List ) show
font14 setfont
( {switch | pattern}*) show
131.4688 570.0375 moveto
font14 setfont
( Lists files matching pattern.) show
131.4688 557.9924 moveto
font14 setfont
( -a) show
6.889098 0.0 rmoveto
(print attachments) show
131.4688 545.9474 moveto
font14 setfont
( -b) show
5.941666 0.0 rmoveto
(brief format) show
131.4688 533.9024 moveto
font14 setfont
( -d) show
5.941666 0.0 rmoveto
(date sort) show
131.4688 521.8575 moveto
font14 setfont
( -f) show
8.143782 0.0 rmoveto
(full name print) show
131.4688 509.8125 moveto
font14 setfont
( -h) show
5.941666 0.0 rmoveto
(highest version) show
131.4688 497.7675 moveto
font14 setfont
( -k) show
6.274016 0.0 rmoveto
(keep print) show
131.4688 485.7225 moveto
font14 setfont
( -n) show
5.95114 0.0 rmoveto
(narrow print) show
131.4688 473.6774 moveto
font14 setfont
( -o) show
6.27347 0.0 rmoveto
(one line) show
131.4688 461.6326 moveto
font14 setfont
( -p) show
5.941666 0.0 rmoveto
(prefixes only) show
131.4688 449.5875 moveto
font14 setfont
( -s) show
7.835969 0.0 rmoveto
(size sort) show
131.4688 437.5424 moveto
font14 setfont
( -t) show
8.451034 0.0 rmoveto
(file type print) show
131.4688 425.4974 moveto
font14 setfont
( -x) show
6.581284 0.0 rmoveto
(exact level match) show
131.4688 413.4524 moveto
font14 setfont
( -u) show
5.941666 0.0 rmoveto
(unattached files only) show
131.4688 401.4074 moveto
font14 setfont
( -z) show
7.21141 0.0 rmoveto
(0-length files only) show
131.4688 389.3623 moveto
font14 setfont
( ->) show
6.581284 0.0 rmoveto
(sort decreasing) show
131.4688 377.3175 moveto
font14 setfont
( -<) show
6.581284 0.0 rmoveto
(sort increasing) show
90.3375 358.3304 moveto
font0 setfont
(You can change directory in the hierarchical file system with the cd command. ) show
90.3375 339.3436 moveto
font0 setfont
(Cd with no arguments returns you to your home directory.) show
110.4125 320.3566 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(Given that you have a hard copy of this document in hand, let's try something more) justify
grestore
90.3375 308.3117 moveto
/colwidth 423.62 def
gsave
font0 setfont
(ambitious: open a viewer on this document so you can view it on-line. Type the following to your) justify
grestore
90.3375 296.2666 moveto
font0 setfont
(Commander, and hit ) show
font3 setfont
(RETURN) show
font0 setfont
(:) show
110.4125 277.2797 moveto
125.4688 264.3152 moveto
font12 setfont
(%) show
font14 setfont
( open /Cedar/CedarDoc/CedarPrimer.tioga) show
125.4688 251.3509 moveto
font14 setfont
(Created Viewer: /Cedar/CedarDoc/CedarPrimer.tioga) show
90.3375 232.364 moveto
font0 setfont
(A viewer will be created, displaying the contents of CedarPrimer.tioga. ) show
90.3375 207.0481 moveto
font1 setfont
(Errors caught by the Commander) show
110.4125 181.7322 moveto
/colwidth 403.545 def
gsave
font0 setfont
(We're getting a bit ahead of ourselves here, but while you play around with the Commander,) justify
grestore
90.3375 169.6872 moveto
/colwidth 423.62 def
gsave
font0 setfont
(you might run some program that bombs out. The Commander tries to catch any uncaught errors.) justify
grestore
90.3375 157.6422 moveto
font0 setfont
(The Commander asks you to do something. What do you do? ) show
125.4688 144.6778 moveto
131.4688 132.6328 moveto
font14 setfont
(*** Uncaught ERROR or SIGNAL: unrecognized error) show
131.4688 120.5878 moveto
font14 setfont
(*** Do you want to try to debug this? \050y, n, s <flags>, or ?\051 ) show
90.3375 101.6009 moveto
font0 setfont
(Typing ? is the help command:) show
120.45 86.93543 moveto
font0 setfont
('y' to REJECT the signal and land in the system debugger) show
120.45 72.26999 moveto
font0 setfont
('n' to get back to top level) show
grestore
grestore
% end page 4
showpage
%%page 5
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
519.4122 746.79 moveto
(5) show
120.45 684.9593 moveto
/colwidth 393.5075 def
gsave
font0 setfont
('s <flags>' to invoke the StackTrace command \050prints an abbreviated call stack for your) justify
grestore
150.5625 672.914 moveto
font0 setfont
(viewing pleasure\051) show
90.3375 654.1798 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(If you respond with ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(n) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( the commander will abort the errant thread. This is generally ok, although) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 642.1347 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(occasionally this can leave your world in a bad state. If you respond with ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(s) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( you get a stack trace) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 630.0897 moveto
gsave
font0 setfont
(that might give you some insight into the problem. <This probably doesn't work in the PPCR) justify
grestore
90.3375 618.0449 moveto
gsave
font0 setfont
(based world released on CDROM\051. After getting the stack trace you are given the prompt again) justify
grestore
90.3375 606.0 moveto
font0 setfont
(and can abort the thread with an ) show
font12 setfont
(n) show
font0 setfont
( reply.) show
90.3375 581.0207 moveto
font1 setfont
(Scrolling) show
110.4125 556.0417 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Position the cursor in the Commander viewer and move it to the left until you nearly touch) justify
grestore
90.3375 543.9967 moveto
/colwidth 423.62 def
gsave
font0 setfont
(the black border. A gray, vertical, scroll bar should appear. You should notice two things: first,) justify
grestore
90.3375 531.9516 moveto
gsave
font0 setfont
(the cursor changes shape to a double-headed arrow, and second, there's a dark gray glob. That) justify
grestore
90.3375 519.9067 moveto
gsave
font0 setfont
(gray glob indicates your relative position in this viewer. Now experiment with the mouse buttons.) justify
grestore
90.3375 507.8617 moveto
font3 setfont
(LEFT) show
font0 setfont
(-click means to depress the left mouse button, and so on, for the other two buttons:) show
120.45 493.3648 moveto
font3 setfont
(LEFT) show
font0 setfont
(-click:) show
12.48372 0.0 rmoveto
(Scroll to top of viewer) show
120.45 478.8676 moveto
font3 setfont
(RIGHT) show
font0 setfont
(-click:) show
5.907621 0.0 rmoveto
(Top of viewer to click point) show
120.45 464.3708 moveto
font3 setfont
(MIDDLE) show
font0 setfont
(-click:) show
29.266 0.0 rmoveto
(Scroll to absolute position.) show
90.3375 439.3916 moveto
font1 setfont
(Selecting/copying) show
110.4125 414.4127 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Rather than typing the same pieces of text over and over again, you can use the selection) justify
grestore
90.3375 402.3676 moveto
/colwidth 423.62 def
gsave
font0 setfont
(capability to copy pieces from elsewhere in the Commander viewer. Imagine that I'd like to view) justify
grestore
90.3375 390.3226 moveto
gsave
font0 setfont
(my .tioga file, and I'd already used the ``ls'' command to list the files in my home directory. It's a) justify
grestore
90.3375 378.2776 moveto
gsave
font0 setfont
(pain to type the whole string again. Let's say that you know there's a document on how to use) justify
grestore
90.3375 366.2325 moveto
gsave
font0 setfont
(Cedar, but don't quite remember the name. You know that the name starts wtih ``Cedar'',) justify
grestore
90.3375 354.1875 moveto
font0 setfont
(followed by the .tioga extension. * is a wildcard that matches anything.) show
110.4125 335.4534 moveto
font12 setfont
(%) show
font0 setfont
( ls /Cedar/CedarDoc/Cedar*.tioga) show
125.4688 322.7414 moveto
font14 setfont
(/Cedar/CedarDoc/) show
125.4688 310.0297 moveto
font14 setfont
(CedarDocDoc.tioga!7 5444 14-May-92 12:20:20 PDT) show
125.4688 297.3179 moveto
font14 setfont
(...) show
125.4688 284.606 moveto
font12 setfont
(%) show
font14 setfont
( ) show
90.3375 265.8718 moveto
gsave
font0 setfont
(Type ``Openr '' with the space to your Commander. The ``OpenR'' command says to look in the) justify
grestore
90.3375 253.8268 moveto
gsave
font0 setfont
(Cedar system release for the file in question. The release is maintained as a version map that lists) justify
grestore
90.3375 241.7818 moveto
gsave
font0 setfont
(the directory and version number of each item in the release. Move the cursor to the file name) justify
grestore
90.3375 229.7368 moveto
font0 setfont
(listed and do the following:) show
120.45 215.2398 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(1. Hold down the ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(SHIFT) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( key, and ) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(MIDDLE) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(-click on ``CedarDocDoc.'' A gray underline) 4 buf
opsaft 4 null put
mixedjustify
grestore
150.5625 203.1948 moveto
font0 setfont
(appears under the word. This indicates that you're performing a copy operation.) show
120.45 188.6978 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(2. Keeping the ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(SHIFT) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( key depressed, ) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(RIGHT) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(-click and drag the mouse cursor arrow) 4 buf
opsaft 4 null put
mixedjustify
grestore
150.5625 176.6528 moveto
font0 setfont
(rightward until the gray underline also underscores the .tioga extension.) show
120.45 162.1557 moveto
font0 setfont
(3. Now release the ) show
font3 setfont
(SHIFT) show
font0 setfont
( key. You should now see the following at your Commander:) show
120.45 147.6587 moveto
155.5812 134.947 moveto
font12 setfont
(%) show
font14 setfont
( OpenR CedarDocDoc.tioga) show
120.45 120.45 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(4. The flashing cursor should be positioned at the end of the line. You can hit ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(RETURN) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( if) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 108.405 moveto
/colwidth 363.3949 def
gsave
font0 setfont
(you like, but this example is meant to illustrate how to select and copy a piece of text) justify
grestore
150.5625 96.35995 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(from one place to another. If you do hit ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(RETURN) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( a new viewer will pop up. You can) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 84.31496 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(close the viewer with a ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(RIGHT-CLICK) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( over the menu bar. You can destroy the viewer) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 72.26993 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(with a ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(LEFT-CLICK) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( over the ) 2 buf
opsaft 2 null put
font13 setfont
opsbef 3 {
font13 setfont
currentpoint /undery exch def /underx exch def} put
(Destroy) 3 buf
opsaft 3 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 4 {font0 setfont} put
( button, which you can find underneath the) 4 buf
opsaft 4 null put
mixedjustify
grestore
grestore
grestore
% end page 5
showpage
%%page 6
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
519.27 746.79 moveto
(6) show
150.5625 684.9593 moveto
font0 setfont
(banner. To abrogate the command, hit the ) show
font3 setfont
(DELETE) show
font0 setfont
( key.) show
120.45 669.9965 moveto
155.5812 656.5862 moveto
font12 setfont
(%) show
font14 setfont
( OpenR CedarDocDoc.tioga ) show
font1 setfont
(-- <DEL>) show
90.3375 637.1539 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(If you select the wrong thing, that's okay; just hit the ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(DELETE) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( key before releasing the ) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(SHIFT) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
( key;) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 625.1087 moveto
font0 setfont
(that will unselect your selection.) show
90.3375 599.1986 moveto
font1 setfont
(Commander buttons) show
110.4125 573.2884 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Here's a brief explanation of the buttons at the top of each Commander, placed there by the) justify
grestore
90.3375 561.2432 moveto
font0 setfont
(Commander mechanism \050others can be created by your profile\051) show
font7 setfont
currentpoint /undery exch def /underx exch def
(.) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
110.4125 541.8108 moveto
gsave
font7 setfont
opsbef 0 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Find) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 1 {font0 setfont} put
( button. This button appears to the row of buttons just below the blue banner of the) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 529.766 moveto
/colwidth 423.62 def
gsave
font0 setfont
(Commander. Think of this command as a postfix operation, that is, you select the argument first) justify
grestore
90.3375 517.721 moveto
gsave
font0 setfont
(and then click on this button, unlike typing commands. Select some text with the mouse and then) justify
grestore
90.3375 505.6757 moveto
gsave
font0 setfont
(search for the text within the Commander viewer \050you can also search for text within other viewers,) justify
grestore
90.3375 493.6308 moveto
gsave
font0 setfont
(but we won't get into that\051. In this command, the direction of search and capitalization are) justify
grestore
90.3375 481.5858 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(determined by the mouse buttons and ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(SHIFT) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( keys. ) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(LEFT) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(-clicking searches forward from the) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 469.5408 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(current selection point; ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(RIGHT) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-clicking searches backwards; ) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(MIDDLE) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(-clicking does a wrap-around) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 457.4958 moveto
gsave
font0 setfont
(search by first searching forward to the end of the document then searching from the beginning) justify
grestore
90.3375 445.4508 moveto
gsave
font0 setfont
(until the entire document has been searched. By default, the search matches capitalization.) justify
grestore
90.3375 433.4058 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Clicking with the ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(SHIFT) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( key down invokes a `caseless' search in which capitalization does not) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 421.3606 moveto
font0 setfont
(matter.) show
110.4125 401.9282 moveto
/colwidth 403.545 def
gsave
font7 setfont
opsbef 0 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(STOP) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 1 {font0 setfont} put
(! button. Attempts to stop the current Commander process running in the Commander) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 389.8831 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(viewer. It raises the signal ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(ABORTED) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( in the Commander process, which usually manifests itself with) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 377.8382 moveto
gsave
font0 setfont
(the printed string `` -- Aborted'', along with a new Commander prompt. This may not always work) justify
grestore
90.3375 365.7931 moveto
gsave
font0 setfont
(because, in Cedar, it's up to the process to check whether a user has requested an abort. But it) justify
grestore
90.3375 353.7481 moveto
font0 setfont
(works for the most important commands. ) show
90.3375 327.838 moveto
font1 setfont
(Viewer buttons) show
110.4125 301.9278 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Since the Commander is itself a viewer, it has buttons in common with other viewers. You) justify
grestore
90.3375 289.8828 moveto
/colwidth 423.62 def
gsave
font0 setfont
(can find these buttons beneath the light blue banner of the viewer by moving your mouse cursor) justify
grestore
90.3375 277.8378 moveto
font0 setfont
(on top of it.) show
110.4125 258.4053 moveto
/colwidth 403.545 def
gsave
font7 setfont
opsbef 0 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Destroy) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 1 {font0 setfont} put
( button. Destroy the viewer. This is an example of a guarded button: click it once) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 246.3603 moveto
/colwidth 423.62 def
gsave
font0 setfont
(and the guard goes away. Click again at least .1 second later and not more than 4 seconds later and) justify
grestore
90.3375 234.3152 moveto
gsave
font0 setfont
(it does its action. The Reset and Store buttons in Tioga viewers are other examples of guarded) justify
grestore
90.3375 222.2703 moveto
font0 setfont
(buttons.) show
110.4125 202.8376 moveto
/colwidth 403.545 def
gsave
font7 setfont
opsbef 0 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Adjust) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 1 {font0 setfont} put
( button. Changes the size of the window. Click on this button and move the mouse) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 190.7927 moveto
font0 setfont
(cursor around to see its effects. ) show
110.4125 171.36 moveto
/colwidth 403.545 def
gsave
font7 setfont
opsbef 0 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Top) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 1 {font0 setfont} put
( button. Moves the viewer in question to the top of the screen, moving other viewers) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 159.3151 moveto
font0 setfont
(further down.) show
110.4125 139.8825 moveto
/colwidth 403.545 def
gsave
font7 setfont
opsbef 0 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Grow) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 1 {font0 setfont} put
( button. Allows a viewer to take up the entire side of the screen, in effect, ``growing'' to) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 127.8375 moveto
/colwidth 423.62 def
gsave
font0 setfont
(fill the whole side. Other viewers will be turned iconic. Clicking on this button again, in the full) justify
grestore
90.3375 115.7925 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(grown viewer, restores the viewers to the positions they were in before you clicked ) 0 buf
opsaft 0 null put
font7 setfont
opsbef 1 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Grow) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 2 {font0 setfont} put
(.) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 103.7475 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Growing/shrinking windows is a fairly common operation, so a shorthand was devised: ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(MIDDLE) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 91.7025 moveto
font0 setfont
(click in the banner selects the ) show
font7 setfont
currentpoint /undery exch def /underx exch def
(Grow) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
font0 setfont
( button by default.) show
110.4125 72.26991 moveto
/colwidth 403.545 def
gsave
font7 setfont
opsbef 0 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Close) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 1 {font0 setfont} put
( button. ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(RIGHT) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(-click in the banner selects the ) 3 buf
opsaft 3 null put
font7 setfont
opsbef 4 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Close) 4 buf
opsaft 4 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 5 {font0 setfont} put
( button by default. This is much) 5 buf
opsaft 5 null put
mixedjustify
grestore
grestore
grestore
% end page 6
showpage
%%page 7
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
519.4122 746.79 moveto
(7) show
90.3375 684.9593 moveto
font0 setfont
(easier than finding the button.) show
110.4125 666.095 moveto
font0 setfont
(For more information on the Commander, please consult <70>.) show
90.3375 640.9428 moveto
font12 setfont
(2.3 User profile) show
110.4125 615.7907 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Many components of Cedar permit the user to customize system behavior along certain) justify
grestore
90.3375 603.7458 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(predefined dimensions via a mechanism called the ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(User Profile) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. Whenever the user boots his) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 591.701 moveto
gsave
font0 setfont
(Cedar world, his user profile is consulted to obtain the value for these parameters. The user profile) justify
grestore
90.3375 579.6559 moveto
gsave
/Helvetica-Oblique findfont 10.0375 scalefont
/font15 exch def
font0 setfont
opsbef 0 {font0 setfont} put
(goes under the name ) 0 buf
opsaft 0 null put
font15 setfont
opsbef 1 {font15 setfont} put
(.) 1 buf
opsaft 1 null put
font13 setfont
opsbef 2 {font13 setfont} put
(cedar) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(.) 3 buf
opsaft 3 null put
font7 setfont
opsbef 4 {font7 setfont} put
(profile) 4 buf
opsaft 4 null put
font0 setfont
opsbef 5 {font0 setfont} put
(, it is stored in your home directory. To just run Cedar from) 5 buf
opsaft 5 null put
mixedjustify
grestore
90.3375 567.6111 moveto
gsave
font0 setfont
(the CDROM you don't need a user profile, but if you may find that you wish to customize the way) justify
grestore
90.3375 555.566 moveto
font0 setfont
(Cedar starts up. ) show
110.4125 536.7020 moveto
/colwidth 403.545 def
gsave
font0 setfont
(To customize your Cedar environment to your liking, copy CedarNoviceUser.profile from the) justify
grestore
90.3375 524.6572 moveto
font0 setfont
(Cedar directory by typing the following commands to your Commander Viewer:) show
110.4125 505.793 moveto
125.4688 492.9515 moveto
font12 setfont
(%) show
font14 setfont
( cd) show
125.4688 480.11 moveto
font12 setfont
(%) show
font14 setfont
( copy .cedar.profile ← /Cedar/CedarDoc/CedarNoviceUser.profile) show
90.3375 461.2459 moveto
/colwidth 423.62 def
gsave
font0 setfont
(\050← will display on the screen as a left-pointing arrow. The keypad 4 key will also work. Note the) justify
grestore
90.3375 449.201 moveto
font0 setfont
(spaces surrounding the ←\051 Having copied the user profile, you need to modify it. Create a viewer.) show
90.3375 430.337 moveto
125.4688 417.4953 moveto
font12 setfont
(%) show
font14 setfont
( open .cedar.profile) show
125.4688 404.6538 moveto
font14 setfont
(Created Viewer: .cedar.profile) show
90.3375 385.7898 moveto
gsave
font0 setfont
(Select anywhere at the beginning of the viewer. Find the key on the right hand side of the) justify
grestore
90.3375 373.7447 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(keyboard, labelled either ``6'' or ``R12.'' This is the so-called ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(NEXT) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( key. Punch it once; you'll) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 361.6998 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(notice that it looks for placeholder markers that look like this ) 0 buf
opsaft 0 null put
font14 setfont
/totwidth /totwidth try 7.026246 add def
opsbef 1 {
font14 setfont
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto} put
(stuff in between) 1 buf
opsaft 1 null put
/totwidth /totwidth try 7.026246 add def
/totwidth /totwidth try 7.026246 add def
font0 setfont
opsbef 2 {
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
font0 setfont} put
(, changes to) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 349.6548 moveto
gsave
font0 setfont
(reverse video, and positions the cursor at the beginning. Just for fun, select the word ``Select'' at) justify
grestore
90.3375 337.6097 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(the beginning of this paragraph. Now ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(NEXT) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( to see what happens. Alas, it doesn't wrap around, so) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 325.5647 moveto
font0 setfont
(to go backward, hold down the ) show
font3 setfont
(SHIFT) show
font0 setfont
( key and depress ) show
font3 setfont
(NEXT) show
font0 setfont
(. ) show
120.45 310.9812 moveto
font0 setfont
(1. Type the following depending on what's between the placeholders.) show
150.5625 296.3978 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(a. ) 0 buf
opsaft 0 null put
font14 setfont
/totwidth /totwidth try 7.026246 add def
font0 setfont
opsbef 1 {
font14 setfont
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
font0 setfont} put
(YourHomeDirectory) 1 buf
opsaft 1 null put
font14 setfont
/totwidth /totwidth try 7.026246 add def
/totwidth /totwidth try 7.026246 add def
font0 setfont
opsbef 2 {
font14 setfont
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
font0 setfont} put
(. Type /net/palain/rosa/boki, for example, or) 2 buf
opsaft 2 null put
mixedjustify
grestore
180.675 284.3528 moveto
/colwidth 333.2826 def
gsave
font0 setfont
(/net/palain/palain/welch, for another \050but don't use those; Oki and Welch) justify
grestore
180.675 272.3076 moveto
font0 setfont
(won't be very happy if you mess with their directories\051 ) show
150.5625 257.7242 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(b. ) 0 buf
opsaft 0 null put
font14 setfont
/totwidth /totwidth try 7.026246 add def
font0 setfont
opsbef 1 {
font14 setfont
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
font0 setfont} put
(YourName) 1 buf
opsaft 1 null put
font14 setfont
/totwidth /totwidth try 7.026246 add def
/totwidth /totwidth try 7.026246 add def
font0 setfont
opsbef 2 {
font14 setfont
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
font0 setfont} put
(. Type your user name in lowercase, say, boki or nichols, at the) 2 buf
opsaft 2 null put
mixedjustify
grestore
180.675 245.6792 moveto
font0 setfont
(cursor. ) show
120.45 231.0958 moveto
font0 setfont
(2. Depress ) show
font3 setfont
(NEXT) show
font0 setfont
( again to get to the next occurrence where you type type your name. ) show
120.45 216.5122 moveto
font0 setfont
(3. Go back to step 1. Continue this procedure until you reach the end of the file.) show
120.45 201.9287 moveto
font0 setfont
(4. Click on ) show
font7 setfont
currentpoint /undery exch def /underx exch def
(Save) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
font0 setfont
( button in that viewer to save the changes.) show
110.4125 183.0646 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Now let's look at the profile more carefully. Notice that each entry in this profile is of the) justify
grestore
90.3375 171.0196 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(form <key>: <value>, where key is typically a string \050case does not matter\051 and value is either ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(TRUE) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 158.9747 moveto
font3 setfont
(or FALSE; ) show
font0 setfont
(an ) show
font3 setfont
(INT) show
font0 setfont
(; or a sequence of strings. For example,) show
105.3938 146.1331 moveto
font12 setfont
(Tioga.TryVersionMap) show
font14 setfont
(: ) show
font3 setfont
(TRUE) show
90.3375 127.2691 moveto
gsave
font0 setfont
(The Tioga editor looks in your profile to see what options are set. In this case, TryVersionMap tells) justify
grestore
90.3375 115.2241 moveto
font0 setfont
(the editor to use the version map mechanism to help it find files. ) show
110.4125 96.36007 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(The above is a particularly simple example of setting an entry to either ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(TRUE) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( or ) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(FALSE) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(. A) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 84.31507 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(more complex example is the ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(BootCommands) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( entry, which the Commander looks at when) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 72.27007 moveto
gsave
font0 setfont
(initializing itself after booting. BootCommands is run once, when you boot your Cedar world.) justify
grestore
grestore
grestore
% end page 7
showpage
%%page 8
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
519.4658 746.79 moveto
(8) show
90.3375 684.9593 moveto
font0 setfont
(Note that a double quote at the beginning and end of this entry encloses the set of commands.) show
110.4125 666.249 moveto
125.4688 653.5616 moveto
font12 setfont
(CommandTool.BootCommands) show
font14 setfont
(: \042) show
140.525 640.8743 moveto
font1 setfont
(BootCommands are run once, when you boot a Viewers world. First we get the aliases) show
146.525 628.8293 moveto
font1 setfont
(and prefixes defined in the NoViewersBootCommands.) show
140.525 616.1420 moveto
140.525 603.4545 moveto
font14 setfont
(CommandsFromProfile CommandTool.NoViewersBootCommands) show
140.525 590.7671 moveto
140.525 578.08 moveto
font1 setfont
(Require commands are used to load packages and define commands.) show
146.525 566.035 moveto
font1 setfont
(Require <world> <component> <resource>) show
146.525 553.9898 moveto
font1 setfont
(The <world> corresponds to a prefix map entry and it defines the main software) show
146.525 541.945 moveto
font1 setfont
(package. ) show
146.525 529.9 moveto
font1 setfont
(The <component> refers to a package in the world, i.e. Imager, Tioga.) show
146.525 517.8549 moveto
font1 setfont
(The <resource> refers to a \042resource.require\042 file found with the package.) show
146.525 505.81 moveto
font1 setfont
(In effect, Require means ) show
146.525 493.7647 moveto
font1 setfont
( CD /<world>/<component> ; Source <resource>.require) show
146.525 481.72 moveto
font1 setfont
( ) show
140.525 469.0325 moveto
font1 setfont
(Require Cedar IconHacks IconHacks) show
140.525 456.345 moveto
font1 setfont
(Require Cedar TiogaExecCommands TiogaExecCommands) show
140.525 443.6575 moveto
font1 setfont
(Require Cedar TiogaExecCommands TiogaExecViewerCommands) show
140.525 430.9702 moveto
140.525 418.2828 moveto
font1 setfont
(Term starts up a vt100-like terminal emulator for UNIX hacking.) show
140.525 405.5952 moveto
font1 setfont
(Term) show
140.525 392.908 moveto
font1 setfont
(Clock) show
140.525 380.2206 moveto
140.525 367.5333 moveto
font1 setfont
(EditTool is a useful adjuct to tioga. It lets you search/replace, change fonts, etc. It has) show
146.525 355.4882 moveto
font1 setfont
(some silly default settings, so we correct them.) show
140.525 342.8008 moveto
font14 setfont
(EditTool) show
140.525 330.1132 moveto
font14 setfont
(DoTiogaOps SaveSelectionA MatchCase MatchLiterally LeaveInitCap SubstituteInSel) show
185.6937 318.0684 moveto
font14 setfont
(MatchAnywhere EqualLooksTest DoReplace TypeName \134\042code\134\042) show
185.6937 306.0232 moveto
font14 setfont
(StyleName \134\042Cedar\134\042 PropName \134\042Comment\134\042 RestoreSelectionA) show
140.525 293.336 moveto
140.525 280.6485 moveto
140.525 267.961 moveto
font1 setfont
(TiogaLineNumberButton adds a tioga button that turns on line numbering.) show
140.525 255.2738 moveto
font1 setfont
(TiogaLineNumberButton) show
140.525 242.5864 moveto
font1 setfont
(KeyboardScan turns on an incremental search mode in Tioga.) show
140.525 229.8989 moveto
font1 setfont
(KeyboardScan) show
140.525 217.2115 moveto
140.525 204.5242 moveto
font1 setfont
(TiogaDWIM turns on a \042do-what-I-mean\042 mode.) show
140.525 191.8367 moveto
font1 setfont
(TiogaDWIM) show
140.525 179.1494 moveto
140.525 166.462 moveto
font1 setfont
(Viewers-oriented aliases) show
140.525 153.7746 moveto
font14 setfont
(Alias myprofile ) show
11.61011 0.0 rmoveto
(open /tilde/) show
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(YourName) show
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(/.cedar.profile) show
140.525 141.0872 moveto
font14 setfont
(Alias profile\050user\051 ) show
10.33147 0.0 rmoveto
(open /) show
(tilde) show
(/user/.cedar.profile) show
140.525 128.3998 moveto
font14 setfont
(...) show
140.525 115.7124 moveto
font14 setfont
(CommandsFromProfile CommandTool.PerCommandTool) show
140.525 103.025 moveto
font14 setfont
(\042) show
110.4125 84.31512 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(The ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(PerCommandTool) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( entry contains commands that are run for each new Commander) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 72.27012 moveto
font0 setfont
(viewer. Mostly these create new buttons for the Commander. For example,) show
grestore
grestore
% end page 8
showpage
%%page 9
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
519.2722 746.79 moveto
(9) show
110.4125 684.9593 moveto
125.4688 671.8175 moveto
font12 setfont
(CommandTool.PerCommandTool) show
font14 setfont
(: \042) show
140.525 658.6757 moveto
font14 setfont
(CreateButton Open Open $FileNameSelection$) show
140.525 645.5342 moveto
font14 setfont
(CreateButton New New $FileNameSelection$) show
140.525 632.3929 moveto
font14 setfont
(...) show
140.525 619.251 moveto
font14 setfont
(\042) show
90.3375 600.087 moveto
font0 setfont
(creates two new buttons in the Commander viewer, one called ) show
font7 setfont
currentpoint /undery exch def /underx exch def
(Open) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
font0 setfont
(, the other called ) show
font7 setfont
currentpoint /undery exch def /underx exch def
(New) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
font0 setfont
(.) show
110.4125 580.9228 moveto
gsave
font0 setfont
(If you change your profile type ``ProfileChanged'' to your Commander. This action causes the) justify
grestore
90.3375 568.8778 moveto
font0 setfont
(new user profile values to take effect.) show
110.4125 549.7136 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Much of this may be mysterious until you've been around for a while, but your profile can) justify
grestore
90.3375 537.6687 moveto
font0 setfont
(make the Cedar environment much more pleasant to work in.) show
90.3375 512.1162 moveto
font12 setfont
(2.4 Static Buttons) show
110.4125 486.5641 moveto
font0 setfont
(These are the buttons at the very top of the screen, from right to left:) show
110.4125 467.4 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {
font0 setfont
currentpoint /undery exch def /underx exch def} put
(X11Viewers) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
opsbef 1 {font0 setfont} put
(: Invokes a pop-up menu with operations including the very important \042Exit) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 455.3551 moveto
font0 setfont
(Cedar\042. To get rid of the pop-up click on \042Dismiss\042.) show
110.4125 436.191 moveto
/colwidth 403.5452 def
gsave
font0 setfont
opsbef 0 {
font0 setfont
currentpoint /undery exch def /underx exch def} put
(New) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
opsbef 1 {font0 setfont} put
(: Create a blank Tioga viewer bearing the path name in the banner of the home) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 424.1459 moveto
font0 setfont
(directory.) show
110.4125 404.9818 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(Open) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
(: Open a file by its full path name, given a mouse-selected text.) show
110.4125 385.8176 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(Cmd) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
(: Create a new Commander viewer) show
90.3375 360.2653 moveto
font12 setfont
(2.5 ) show
(Some of the most common/useful Commands) show
120.45 335.0788 moveto
font0 setfont
(Cd ) show
font1 setfont
(directory) show
150.5625 323.0339 moveto
font0 setfont
(Change directory, as in Unix.) show
120.45 308.2502 moveto
font0 setfont
(Push ) show
font1 setfont
(directory) show
150.5625 296.2051 moveto
font0 setfont
(Change to a new directory, but remember the previous one on a stack.) show
120.45 281.4217 moveto
font0 setfont
(Pop) show
150.5625 269.3766 moveto
font0 setfont
(Pop the directory stack, returning to the previous one.) show
120.45 254.593 moveto
font0 setfont
(List ) show
font1 setfont
(args) show
150.5625 242.548 moveto
font0 setfont
(File listing program, gives file date and size. \050Also known as ``LS''.\051) show
120.45 227.7644 moveto
font0 setfont
(Open ) show
font1 setfont
(file) show
150.5625 215.7195 moveto
/colwidth 363.395 def
gsave
font0 setfont
(Open a file for reading/editing \050defaults to current working directory, followed by) justify
grestore
150.5625 203.6744 moveto
font0 setfont
(/R/ if no path name is specified\051.) show
120.45 188.8908 moveto
font0 setfont
(FindR ) show
font1 setfont
(file) show
150.5625 176.8458 moveto
font0 setfont
(Find out where a system file lives in the released version of software.) show
120.45 162.0622 moveto
font0 setfont
(OpenR ) show
font1 setfont
(file) show
150.5625 150.0172 moveto
font0 setfont
(Open a system file from the released version of software \050/R/<filename>\051.) show
120.45 135.2336 moveto
font0 setfont
(Copy ) show
font1 setfont
(destination) show
font0 setfont
( ← ) show
font1 setfont
(source) show
font0 setfont
9.351254 0.0 rmoveto
150.5625 123.1886 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Copy ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(source) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( file to ) 2 buf
opsaft 2 null put
font1 setfont
opsbef 3 {font1 setfont} put
(destination) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(. If ) 4 buf
opsaft 4 null put
font1 setfont
opsbef 5 {font1 setfont} put
(destination) 5 buf
opsaft 5 null put
font0 setfont
opsbef 6 {font0 setfont} put
( is a directory \050i.e., ends in ``/''\051, then) 6 buf
opsaft 6 null put
mixedjustify
grestore
150.5625 111.1437 moveto
/colwidth 363.3949 def
gsave
font1 setfont
opsbef 0 {font1 setfont} put
(source) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( can be a list of files. \050← will be displayed as a left-pointing arrow. The keypad) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 99.09864 moveto
font0 setfont
(4 key also works.\051) show
120.45 84.31507 moveto
font0 setfont
(Rename ) show
font1 setfont
(destination) show
font0 setfont
( ← ) show
font1 setfont
(source) show
150.5625 72.27007 moveto
font0 setfont
(Like copy but just changes the name of a file.) show
grestore
grestore
% end page 9
showpage
%%page 10
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.125 746.79 moveto
(10) show
120.45 684.9593 moveto
font0 setfont
(DelVer ) show
font1 setfont
(file-pattern) show
150.5625 672.914 moveto
font0 setfont
(Delete all but the most recent version of some files.) show
120.45 658.096 moveto
font0 setfont
(? ) show
font1 setfont
(command-name) show
150.5625 646.0508 moveto
font0 setfont
(Print a usage message regarding the command.) show
120.45 631.2329 moveto
font0 setfont
(Bringover ) show
font1 setfont
(DF-file) show
150.5625 619.1878 moveto
/colwidth 363.395 def
gsave
font0 setfont
(Copy into the local directory all the source, mob, and object files specified in the DF) justify
grestore
150.5625 607.1429 moveto
font0 setfont
(file.) show
120.45 592.3246 moveto
font0 setfont
(Smodel ) show
font1 setfont
(DF-file) show
150.5625 580.2797 moveto
font0 setfont
(Save your files in a stable place.) show
120.45 565.4615 moveto
font0 setfont
(GetFromRelease) show
150.5625 553.4168 moveto
/colwidth 363.395 def
gsave
font0 setfont
(A command to give in response to the Compiler complaint that it can't find the files) justify
grestore
150.5625 541.3714 moveto
font0 setfont
(it needs.) show
120.45 526.5536 moveto
font0 setfont
(Run ) show
font1 setfont
(file) show
150.5625 514.5085 moveto
/colwidth 363.395 def
gsave
font0 setfont
(Loads the C object file into the system. The global default for loaded code is) justify
grestore
150.5625 502.4634 moveto
font0 setfont
(optimized. ) show
120.45 487.6454 moveto
font0 setfont
(MakeDo -df ) show
font1 setfont
(DF-File) show
150.5625 475.6004 moveto
gsave
font0 setfont
(Rebuild an entire package, first determining dependencies. Creates optimized object) justify
grestore
150.5625 463.5555 moveto
font0 setfont
(files \050sun4\051) show
120.45 448.7372 moveto
font0 setfont
(MakeDo ) show
font1 setfont
(sun4/foo.c2c.o) show
120.45 433.919 moveto
font0 setfont
30.1125 0.0 rmoveto
(Generate object code for SPARC for the implementation file named ) show
font1 setfont
(foo.) show
120.45 419.101 moveto
font0 setfont
(Implementor ) show
font1 setfont
(command-name) show
150.5625 407.056 moveto
font0 setfont
(Print the name of the procedure that implements the named command.) show
120.45 392.2378 moveto
font0 setfont
(Mkdir ) show
font1 setfont
(dirname) show
150.5625 380.1928 moveto
font0 setfont
(Unix-like shell command to create a new directory in the current directory.) show
120.45 365.3747 moveto
font0 setfont
(Rmdir ) show
font1 setfont
(dirname) show
150.5625 353.3296 moveto
gsave
font0 setfont
(Unix-like shell command to delete a directory from the current directory. You must) justify
grestore
150.5625 341.2845 moveto
font0 setfont
(first delete all contained files.) show
120.45 326.4664 moveto
font0 setfont
(Plumb ) show
font1 setfont
(machine-name) show
150.5625 314.4214 moveto
gsave
font0 setfont
(If no argument, then defaults to local host machine. Opens a typescript window that) justify
grestore
150.5625 302.3765 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(emulates the Unix shell of ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(machine-name. ) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(This is a very useful command, especially) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 290.3314 moveto
font0 setfont
(if you need to drop down to Unix occassionally.) show
90.3375 264.7102 moveto
font12 setfont
(2.6 When Cedar dies unexpectedly) show
110.4125 239.0888 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(X11Viewers shows its main menu when you try to delete its X window. This menu has a) justify
grestore
90.3375 227.0438 moveto
/colwidth 423.62 def
gsave
font0 setfont
(rescues sub-menu with an entry to save your edits. These menus are most often still alive even) justify
grestore
90.3375 214.9988 moveto
font0 setfont
(when viewers are wedged.) show
90.3375 189.3776 moveto
font12 setfont
(2.7 Short introduction to editing using Tioga) show
110.4125 163.7562 moveto
/colwidth 403.545 def
gsave
font0 setfont
(In the world outside PARC, document production systems are usually de-coupled from text) justify
grestore
90.3375 151.7112 moveto
/colwidth 423.62 def
gsave
font0 setfont
(editors. One normally takes the text that one wants to include in a document, wraps it in) justify
grestore
90.3375 139.6662 moveto
gsave
font0 setfont
(mysterious commands understood by a document processor, and feeds it to that processor.) justify
grestore
90.3375 127.6212 moveto
gsave
font0 setfont
(Programmers may think this is neat; after all, one can do anything with a sufficiently powerful) justify
grestore
90.3375 115.5762 moveto
gsave
font0 setfont
(programming language \050remember, Turing machines supply a sufficiently powerful programming) justify
grestore
90.3375 103.5312 moveto
gsave
font0 setfont
(language too!\051. However, document processors of this sort frequently define semantically complex) justify
grestore
90.3375 91.48624 moveto
font0 setfont
(languages, and one soon discovers that a great deal of time goes into the edit/compile/debug cycle. ) show
110.4125 72.27026 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(Tioga is the editor within Cedar, and it is generally free of imbedded commands to a) justify
grestore
grestore
grestore
% end page 10
showpage
%%page 11
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.132 746.79 moveto
(11) show
90.3375 684.9593 moveto
/colwidth 423.62 def
gsave
font0 setfont
(document processor. It shows formatted text on the screen, or WYSIWIG \050``What You See Is) justify
grestore
90.3375 672.914 moveto
gsave
font0 setfont
(What You Get''\051. When printing a Tioga document, WYSINAWIP \050``What You See Is Not Always) justify
grestore
90.3375 660.8688 moveto
font0 setfont
(What Is Printed''\051. See TiogaDoc.tioga <29> for details. ) show
90.3375 636.5128 moveto
font1 setfont
(Nodes) show
110.4125 612.1568 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(A Tioga document is a tree of nodes of text \050or graphics\051. Think of a node as a selectable,) justify
grestore
90.3375 600.1117 moveto
/colwidth 423.62 def
gsave
font0 setfont
(meaningful unit, defined by the user. For example, in this document, this paragraph you are now) justify
grestore
90.3375 588.0666 moveto
gsave
font0 setfont
(reading is a node. The next paragraph is also a node. The bold-faced heading ``2.9 Short) justify
grestore
90.3375 576.0218 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(introduction ...'' is the ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(parent) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( node of these two paragraph nodes, which are its ) 2 buf
opsaft 2 null put
font1 setfont
opsbef 3 {font1 setfont} put
(children) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(. The tree) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 563.9768 moveto
gsave
font0 setfont
(structure of a document usually manifests itself visually as nesting; thus, the two children nodes are) justify
grestore
90.3375 551.9318 moveto
font0 setfont
(nested \050indented\051 from the parent node.) show
110.4125 533.6648 moveto
/colwidth 403.5451 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Nodes are separated by special node break rather than the usual carriage return. A ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(CTRL-) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 521.6196 moveto
/colwidth 423.62 def
gsave
font3 setfont
opsbef 0 {font3 setfont} put
(RETURN) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( creates a node break. At the node break, you can create another meaningful unit of) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 509.5747 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(stuff, at the same depth of the tree as the previous node; in other words, a sibling node. ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(CTRL-I) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 497.5297 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(both inserts a new node and nests it, making a child node. ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(CTRL-SHIFT-I) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( both inserts a new node) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 485.4847 moveto
/colwidth 423.6202 def
gsave
font0 setfont
(and unnests it; think of this command as creating a new node at the same level in the tree as the) justify
grestore
90.3375 473.4396 moveto
font0 setfont
(parent, that is, create a new node at level i-1, if you're at level i.) show
110.4125 455.1726 moveto
/colwidth 403.545 def
gsave
font0 setfont
(The previous commands created new nodes. There are commands to change the nesting level) justify
grestore
90.3375 443.1276 moveto
/colwidth 423.62 def
gsave
font0 setfont
(of already existing nodes. You must first select a node, using the mouse, and then invoke the) justify
grestore
90.3375 431.0826 moveto
gsave
font0 setfont
(command. For example, move the mouse cursor over this paragraph \050anywhere will do\051, and) justify
grestore
90.3375 419.0375 moveto
gsave
font3 setfont
opsbef 0 {font3 setfont} put
(LEFT) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(-click twice in rapid succession. The entire paragraph is underlined, indicating selection.) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 406.9925 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Next, type ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(CTRL-N) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(, to nest the node. To unnest it, type ) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(CTRL-SHIFT-N) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(. Then, to ensure that you) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 394.9475 moveto
gsave
font0 setfont
(don't accidentally change the contents of this document out on the file server \050of course, not) justify
grestore
90.3375 382.9024 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(possible on the CDROM\051, click the ) 0 buf
opsaft 0 null put
font7 setfont
opsbef 1 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Reset) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 2 {font0 setfont} put
( button at the top of the viewer twice in rapid) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 370.8575 moveto
font0 setfont
(succession; it will reset the contents.) show
110.4125 352.5904 moveto
/colwidth 403.5451 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Perhaps you've already noticed that you can select individual characters with a single ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(LEFT) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 340.5454 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(click with the mouse, words with a single ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(MIDDLE) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-click, and individual nodes with a ) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(DOUBLE) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(-click) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 328.5004 moveto
font0 setfont
(with the mouse.) show
110.4125 310.2334 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Structuring a document as tree of nodes is quite useful because it makes it easy to hunt) justify
grestore
90.3375 298.1884 moveto
/colwidth 423.62 def
gsave
font0 setfont
(through a long document, provided it is well-structured. Why? Because you can search through it) justify
grestore
90.3375 286.1433 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(at different levels. To view this document at different levels, click on the ) 0 buf
opsaft 0 null put
font7 setfont
opsbef 1 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Levels) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 2 {font0 setfont} put
( button in this) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 274.0984 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(viewer's banner, which brings up another line of buttons: ) 0 buf
opsaft 0 null put
opsbef 1 {
currentpoint /undery exch def /underx exch def
font0 setfont} put
(FirstLevelOnly) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
opsbef 2 {font0 setfont} put
(, ) 2 buf
opsaft 2 null put
font7 setfont
opsbef 3 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(MoreLevels) 3 buf
opsaft 3 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 4 {font0 setfont} put
(,) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 262.0533 moveto
gsave
font7 setfont
opsbef 0 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(FewerLevels) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 1 {font0 setfont} put
(, and ) 1 buf
opsaft 1 null put
font7 setfont
opsbef 2 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(AllLevels) 2 buf
opsaft 2 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 3 {font0 setfont} put
(. With these you can decide just how much detail of a document you) 3 buf
opsaft 3 null put
mixedjustify
grestore
90.3375 250.0083 moveto
gsave
font0 setfont
(want to view at any given moment. \050To see the following illustration, type ``Artwork on'' to your) justify
grestore
90.3375 237.9633 moveto
font0 setfont
(Commander.\051) show
grestore
grestore
% end page 11
showpage
%%page 12
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.2037 746.79 moveto
(12) show
-65.05538 402.0588 moveto
gsave
currentpoint translate
2834.645 dup matrix scale concat
gsave
3.527776e-4 dup matrix scale concat
gsave
61.85449 -120.9222 matrix translate concat
0.5 setgray
eofill
gsave
gsave
0.0 0.0 moveto
currentpoint translate
457.2625 123.4118 moveto
460.2625 123.4118 lineto
460.2625 406.8373 lineto
457.2625 406.8373 lineto
clip newpath
0.5 setgray
1.0 setlinewidth
1 setlinecap
1 setlinejoin
458.7625 405.3373 458.7625 124.9118 vec
grestore
grestore
0.5 setgray
eofill
gsave
gsave
-30.79175 0.0 moveto
currentpoint translate
457.2625 123.4118 moveto
460.2625 123.4118 lineto
460.2625 406.8373 lineto
457.2625 406.8373 lineto
clip newpath
0.5 setgray
1.0 setlinewidth
1 setlinecap
1 setlinejoin
458.7625 405.3373 458.7625 124.9118 vec
grestore
grestore
0.5 setgray
eofill
gsave
gsave
-19.79486 0.0 moveto
currentpoint translate
457.2625 123.4118 moveto
460.2625 123.4118 lineto
460.2625 406.8373 lineto
457.2625 406.8373 lineto
clip newpath
0.5 setgray
1.0 setlinewidth
1 setlinecap
1 setlinejoin
458.7625 405.3373 458.7625 124.9118 vec
grestore
grestore
0.5 setgray
eofill
gsave
gsave
-9.89734 0.0 moveto
currentpoint translate
457.2625 123.4118 moveto
460.2625 123.4118 lineto
460.2625 406.8373 lineto
457.2625 406.8373 lineto
clip newpath
0.5 setgray
1.0 setlinewidth
1 setlinecap
1 setlinejoin
458.7625 405.3373 458.7625 124.9118 vec
grestore
grestore
gsave
/Helvetica findfont 1.0 scalefont
/font16 exch def
font16 setfont
0.0 setgray
11.43832 dup matrix scale 308.401 174.1361 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(First level only) show
grestore
gsave
font16 setfont
0.0 setgray
11.43832 dup matrix scale 323.7711 159.6827 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(More levels) show
grestore
gsave
font16 setfont
0.0 setgray
11.43832 dup matrix scale 337.3513 131.5617 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(All levels) show
grestore
gsave
gsave
1.42979 dup matrix scale -46.21731 -631.4737 matrix translate matrix concatmatrix concat
0.0 setgray
325.8806 710.1489 moveto
/Helvetica findfont 8.029999 scalefont
/font17 exch def
font17 setfont
(I.) show
font17 setfont
( head) show
325.8806 700.1111 moveto
font17 setfont
( ) show
font17 setfont
(A. ) show
font17 setfont
( head) show
325.8806 690.0741 moveto
font17 setfont
( ) show
font17 setfont
(1.) show
font17 setfont
( block [or body]) show
325.8806 680.0364 moveto
font17 setfont
( ) show
font17 setfont
(2.) show
font17 setfont
( block) show
325.8806 669.9988 moveto
font17 setfont
( ) show
font17 setfont
(a.) show
font17 setfont
( example) show
325.8806 659.9615 moveto
font17 setfont
( ) show
font17 setfont
(3.) show
font17 setfont
( block) show
325.8806 649.9242 moveto
font17 setfont
( ) show
font17 setfont
(B.) show
font17 setfont
( head) show
325.8806 639.8863 moveto
font17 setfont
( ) show
font17 setfont
(1.) show
font17 setfont
( block) show
325.8806 629.849 moveto
font17 setfont
( ) show
font17 setfont
(a.) show
font17 setfont
( item) show
325.8806 619.8113 moveto
font17 setfont
( ) show
font17 setfont
(b.) show
font17 setfont
( item) show
325.8806 609.7742 moveto
font17 setfont
( ) show
font17 setfont
(2.) show
font17 setfont
( block) show
325.8806 599.7366 moveto
font17 setfont
(II.) show
font17 setfont
( head) show
325.8806 589.699 moveto
font17 setfont
( ) show
font17 setfont
(A.) show
font17 setfont
( block) show
325.8806 579.6616 moveto
font17 setfont
( ) show
font17 setfont
(B.) show
font17 setfont
( head) show
325.8806 569.624 moveto
font17 setfont
( ) show
font17 setfont
(1.) show
font17 setfont
( block) show
325.8806 559.5867 moveto
font17 setfont
( ) show
font17 setfont
(2.) show
font17 setfont
( block) show
grestore
0.5 setlinewidth
1 setlinecap
1 setlinejoin
0.0 setgray
412.5747 124.9118 moveto
412.5747 405.3373 lineto
556.6363 405.3373 lineto
556.6363 124.9118 lineto
412.5747 124.9118 lineto
closepath stroke
grestore
0.0 setgray
eofill
gsave
gsave
0.0 0.0 moveto
currentpoint translate
394.3462 170.1017 moveto
429.5958 170.1017 lineto
429.5958 184.6654 lineto
394.3462 184.6654 lineto
clip newpath
0.0 setgray
1.25 setlinewidth
1 setlinecap
1 setlinejoin
395.971 177.3836 moveto
427.9708 177.3836 lineto
422.314 171.7267 lineto
427.9708 177.3836 lineto
422.314 183.0404 lineto
stroke
grestore
grestore
0.0 setgray
eofill
gsave
gsave
0.0 0.0 moveto
currentpoint translate
394.3462 156.1197 moveto
440.5928 156.1197 lineto
440.5928 170.6834 lineto
394.3462 170.6834 lineto
clip newpath
0.0 setgray
1.25 setlinewidth
1 setlinecap
1 setlinejoin
395.971 162.9303 moveto
438.9677 163.4017 lineto
433.3111 157.7448 lineto
438.9677 163.4017 lineto
433.3111 169.0584 lineto
stroke
grestore
grestore
0.0 setgray
eofill
gsave
gsave
0.0 0.0 moveto
currentpoint translate
394.3462 142.2948 moveto
450.4902 142.2948 lineto
450.4902 156.8584 lineto
394.3462 156.8584 lineto
clip newpath
0.0 setgray
1.25 setlinewidth
1 setlinecap
1 setlinejoin
395.971 149.4196 moveto
448.8652 149.5767 lineto
443.2084 143.9197 lineto
448.8652 149.5767 lineto
443.2084 155.2334 lineto
stroke
grestore
grestore
0.0 setgray
eofill
gsave
gsave
0.0 0.0 moveto
currentpoint translate
394.3462 127.5274 moveto
460.3875 127.5274 lineto
460.3875 142.0909 lineto
394.3462 142.0909 lineto
clip newpath
0.0 setgray
1.25 setlinewidth
1 setlinecap
1 setlinejoin
395.971 134.8092 moveto
458.7625 134.8092 lineto
453.1059 129.1524 lineto
458.7625 134.8092 lineto
453.1059 140.4659 lineto
stroke
grestore
grestore
gsave
font16 setfont
0.0 setgray
11.43832 dup matrix scale 323.7711 146.4863 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(More levels) show
grestore
gsave
grestore
gsave
font16 setfont
0.0 setgray
14.29791 dup matrix scale 91.19686 297.2373 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(viewing a document at) show
grestore
gsave
font16 setfont
0.0 setgray
14.29791 dup matrix scale 122.9794 280.5493 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(many levels) show
grestore
grestore
grestore
grestore
90.3375 381.6491 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(If you clicked ) 0 buf
opsaft 0 null put
opsbef 1 {
currentpoint /undery exch def /underx exch def
font0 setfont} put
(FirstLevelOnly) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
opsbef 2 {font0 setfont} put
(, then only the head nodes \050designated here by I. and II.\051 would be) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 369.6041 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(displayed. If you clicked ) 0 buf
opsaft 0 null put
font7 setfont
opsbef 1 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(MoreLevels) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 2 {font0 setfont} put
(, then you'd be able to view the next level of nodes. Clicking) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 357.559 moveto
font0 setfont
(on ) show
font7 setfont
currentpoint /undery exch def /underx exch def
(AllLevels) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
font0 setfont
( would show you the entire document. ) show
90.3375 330.3462 moveto
font1 setfont
(Format) show
110.4125 303.1333 moveto
/colwidth 403.545 def
gsave
font0 setfont
(In Tioga editing, we name nodes, which will in turn give them formats. In Cedar, we will rely) justify
grestore
90.3375 291.0883 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(on the ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(EditTool) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( to help us do this. If you don't already have an EditTool running, type ``EditTool'') 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 279.0432 moveto
gsave
font0 setfont
(to your Commander. An icon in the shape of a piece of paper, bearing the words ``EditTool'' and) justify
grestore
90.3375 266.9982 moveto
font0 setfont
(a pencil scribbling on the paper, will appear. ) show
font3 setfont
(MIDDLE) show
font0 setfont
(-click to open a viewer.) show
110.4125 246.5885 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Particular types of documents will tend to make use of certain groups of nodes. For example,) justify
grestore
90.3375 234.5435 moveto
font0 setfont
(on a title page you'll tend to find or use the following nodes: ) show
174.9362 214.1338 moveto
font0 setfont
(title, subtitle, authors, boilerplate, abstract, copyrightNotice) show
90.3375 193.7241 moveto
font0 setfont
(On pages of text or prose, you'll tend to find/use these nodes, among others:) show
187.5644 173.3144 moveto
font0 setfont
(head, body, block, item, indent, example, center, note) show
90.3375 152.9047 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Click on the ) 0 buf
opsaft 0 null put
font7 setfont
opsbef 1 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Format) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 2 {font0 setfont} put
( button in your EditTool. Double ) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(LEFT) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(-click on the line beginning with the) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 140.8596 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(word ``Particular.'' Having selected that node, click on the ) 0 buf
opsaft 0 null put
font7 setfont
opsbef 1 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Get) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 2 {font0 setfont} put
( button in your EditTool. The) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 128.8147 moveto
gsave
font0 setfont
(name of the current format of that selected node will appear in the area labelled ``Format name.'') justify
grestore
90.3375 116.7697 moveto
font0 setfont
(You might try selecting various other nodes just to see what format they're in.) show
110.4125 96.36 moveto
/colwidth 403.5451 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Each node ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(format) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( contains its specific recipe for the structure of how that node will look. Title) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 84.31496 moveto
/colwidth 423.6202 def
gsave
font0 setfont
(nodes have larger, bold text, with a specific amount of space allotted above and below each line. A) justify
grestore
90.3375 72.26999 moveto
/colwidth 423.62 def
gsave
font0 setfont
(body node is one type of node used for paragraphs. Its ``recipe'' \050or structure\051 regulates that the) justify
grestore
grestore
grestore
% end page 12
showpage
%%page 13
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.5062 746.79 moveto
(13) show
90.3375 684.9593 moveto
gsave
font0 setfont
(node will have a specific font type and size, indentation of the first word, and predetermined) justify
grestore
90.3375 672.914 moveto
font0 setfont
(spacing above and below lines at the beginning, middle, and end.) show
110.4125 653.3137 moveto
/colwidth 403.545 def
gsave
font0 setfont
(When you apply a Format to a node, that node will take on a structure specific to the type of) justify
grestore
90.3375 641.2687 moveto
/colwidth 423.62 def
gsave
font0 setfont
(node you have named it. It would be accurate to say that when formatting a document with Tioga) justify
grestore
90.3375 629.2237 moveto
gsave
font0 setfont
(editing tools, you are adding a structure or foundation to the node. This structure \050formatting\051 will) justify
grestore
90.3375 617.1786 moveto
font0 setfont
(determine how the node will look.) show
90.3375 591.0444 moveto
font1 setfont
(Looks) show
110.4125 564.9105 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Looks are a way of making changes to the appearance of text within a node, without changing) justify
grestore
90.3375 552.8653 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(the structure of the node. You would add ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(looks) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( to add italics, boldness, or underlining; or to) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 540.8205 moveto
gsave
font0 setfont
(change a word to a superscript, subscript, or larger or smaller size. Different looks can be added to) justify
grestore
90.3375 528.7755 moveto
font0 setfont
(different words within a node, and multiple looks can be added to one selection.) show
110.4125 509.175 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Once you've selected the words to which you want to add Looks, you do so by either using the) justify
grestore
90.3375 497.13 moveto
/colwidth 423.62 def
gsave
font0 setfont
(EditTool or by pressing the Looks key \050key R9 on the righthand keypad\051 and the appropriate) justify
grestore
90.3375 485.0851 moveto
gsave
font0 setfont
(lower case code letter on the keyboard. For a good summary of the Looks available, consult) justify
grestore
90.3375 473.04 moveto
font0 setfont
(SampleSheet.tioga <67>.) show
90.3375 446.906 moveto
font1 setfont
(Style) show
110.4125 420.7722 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Appearance is influenced by the format of the node, which determines things such as vertical) justify
grestore
90.3375 408.7272 moveto
/colwidth 423.62 def
gsave
font0 setfont
(and horizontal spacing. The characters of the text within a node can have looks that control) justify
grestore
90.3375 396.682 moveto
gsave
font0 setfont
(various aspects of their appearance such as font and size. The document refers to the names of) justify
grestore
90.3375 384.637 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(looks and formats, but not to any specific interpretation of them. A ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(style) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( is a collection of) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 372.5921 moveto
gsave
font0 setfont
(interpretations \050or ``complementary flavors'', if you will\051 for looks and formats. This document is) justify
grestore
90.3375 360.5472 moveto
font0 setfont
(composed with the default Cedar style.) show
110.4125 340.9464 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(Styles can be shared by many documents. For example, in the style for this document there) justify
grestore
90.3375 328.9016 moveto
/colwidth 423.62 def
gsave
font0 setfont
(are definitions of formats for titles, headings, and standard paragraphs, and there are definitions of) justify
grestore
90.3375 316.8565 moveto
gsave
font0 setfont
(looks for emphasis and for small caps. Rather than specifying all the details for the formats and) justify
grestore
90.3375 304.8116 moveto
gsave
font0 setfont
(looks, the document refers to formats and looks by name \050like ``title'', ``block'', ``abstract''\051. These) justify
grestore
90.3375 292.7665 moveto
gsave
font0 setfont
(names are defined in the style, so it's easy to change the definitions in the style and modify the) justify
grestore
90.3375 280.7215 moveto
font0 setfont
(appearance uniformly throughout the document.) show
90.3375 254.5875 moveto
font1 setfont
(Properties) show
110.4125 228.4535 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Adding a ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(property) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( is a way of making changes to ) 2 buf
opsaft 2 null put
opsbef 3 {
currentpoint /undery exch def /underx exch def
font0 setfont} put
(specific) 3 buf
opsaft 3 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
opsbef 4 {font0 setfont} put
( characters or nodes in a way that goes) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 216.4085 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(beyond the boundaries of what's included in a particular ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(style) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. Most often, you'll hear about) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 204.3635 moveto
gsave
font0 setfont
(Postfix properties. For example, you could use Postfix properties to add background color to a) justify
grestore
90.3375 192.3186 moveto
gsave
font0 setfont
(node, to change the color of the text itself, to place boxes around words without using a graphics) justify
grestore
90.3375 180.2736 moveto
gsave
font0 setfont
(program, or change the size of margins or indents. Find a Postfix wizard if you'd like further) justify
grestore
90.3375 168.2286 moveto
font0 setfont
(details.) show
90.3375 142.0946 moveto
font1 setfont
(Dealing with Editor Bugs) show
110.4125 115.9606 moveto
/colwidth 403.545 def
gsave
font0 setfont
(All text editors have bugs. The most common -- perhaps we mean ``the least rare'' -- source of) justify
grestore
90.3375 103.9156 moveto
/colwidth 423.62 def
gsave
font0 setfont
(editing disasters in Tioga is problems with monitor \050or ``viewer''\051 locks. Unfortunately, this class of) justify
grestore
90.3375 91.8706 moveto
font0 setfont
(problem usually makes further progress in any part of Cedar impossible. ) show
110.4125 72.27012 moveto
/colwidth 403.545 def
gsave
font0 setfont
(In X11Viewers: The \042delete window\042 from a window manager shows a pop up menu which) justify
grestore
grestore
grestore
% end page 13
showpage
%%page 14
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.0624 746.79 moveto
(14) show
90.3375 684.9593 moveto
font0 setfont
(allows selection of a \042save all edits\042 command.. ) show
90.3375 659.3704 moveto
font1 setfont
(Non-Textual Editors) show
110.4125 633.7812 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(We humans often convey information more effectively in ways other than the written word.) justify
grestore
90.3375 621.7361 moveto
/colwidth 423.62 def
gsave
font0 setfont
(Cedar likewise provides tools for manipulating representations of information other than text, such) justify
grestore
90.3375 609.691 moveto
font0 setfont
(as 2-D illustrations, mathematical expressions and voice. ) show
110.4125 590.4995 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Gargoyle [45] is an interactive 2D illustrator for creating color pictures. It includes novel) justify
grestore
90.3375 578.4545 moveto
/colwidth 423.6202 def
gsave
font0 setfont
(features to aid the user in precise geometric placement of objects in the scene. Refer to [46] for an) justify
grestore
90.3375 566.4095 moveto
font0 setfont
(on-line tutorial. I used Gargoyle to draw all the pictures in this document.) show
110.4125 547.2178 moveto
/colwidth 403.545 def
gsave
font0 setfont
(CaminoReal[44] is an environment for two kinds of manipulations of mathematical) justify
grestore
90.3375 535.1729 moveto
/colwidth 423.62 def
gsave
font0 setfont
(expressions: \0501\051 interactive, syntax-directed, two-dimensional, WYSIWYG editing and \0502\051) justify
grestore
90.3375 523.1277 moveto
font0 setfont
(algebraic manipulation.) show
110.4125 503.9361 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Because Tioga provides a rich common ground, the above heterogeneous data \050image and) justify
grestore
90.3375 491.891 moveto
/colwidth 423.62 def
gsave
font0 setfont
(voice\051 can be integrated into a single source \050namely a Tioga document\051 for later browsing. The) justify
grestore
90.3375 479.8461 moveto
gsave
font0 setfont
(other editors, of course, recognize Tioga's role as chief editor and each provides a facility to insert) justify
grestore
90.3375 467.8012 moveto
font0 setfont
(\050``Stuff''\051 its data into a Tioga document. ) show
90.3375 442.2121 moveto
font12 setfont
(2.8 Exiting Cedar) show
110.4125 416.6232 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Click on the X11Viewers static button to bring up a pop-up menu. Move the mouse cursor to) justify
grestore
90.3375 404.5781 moveto
font0 setfont
(the words ``Exit Cedar'' and click on it. Your X window containing the Cedar world will vanish.) show
90.3375 354.8992 moveto
font11 setfont
(3. Printing) show
90.3375 328.9355 moveto
font12 setfont
(3.1 Interpress and Postscript) show
110.4125 303.3467 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Interpress [51] is a Xerox standard that permits every printing client to use every printer.) justify
grestore
90.3375 291.3016 moveto
/colwidth 423.62 def
gsave
font0 setfont
(Cedar is most adept at converting its online document formats \050.tioga, .gargoyle, etc.\051 to Interpress.) justify
grestore
90.3375 279.2568 moveto
gsave
font0 setfont
(Outside of Xerox, however, the world has standardized on Postscript printing and Interpress) justify
grestore
90.3375 267.2116 moveto
gsave
font0 setfont
(printers are uncommon, so a further conversion of the Interpress file to Postscript will likely be) justify
grestore
90.3375 255.1667 moveto
gsave
font0 setfont
(required. There may be some confusion about fonts in this latter conversion, but the result is) justify
grestore
90.3375 243.1216 moveto
font0 setfont
(usually a readable, though seldom beautiful, printed page. ) show
110.4125 223.93 moveto
font12 setfont
(Converting to Interpress) show
font0 setfont
(. The following commands produce Postscript from tioga.) show
110.4125 204.7383 moveto
125.4688 191.5691 moveto
font12 setfont
(%) show
font14 setfont
( TiogaToInterpress foo.interpress ← foo.tioga) show
131.4688 179.5241 moveto
font14 setfont
10.03749 0.0 rmoveto
font1 setfont
(TiogaToInterpress is a program that converts Tioga documents to Interpress format. ) show
125.4688 166.3548 moveto
font12 setfont
(%) show
font14 setfont
( IPtoPS foo.ps ← foo.interpress) show
131.4688 154.3099 moveto
font14 setfont
10.03749 0.0 rmoveto
font1 setfont
(Converts interpress to Postscript.) show
110.4125 135.1182 moveto
font0 setfont
(Use the Unix lpr command to print the resulting file on your favorite Postscript printer.) show
125.4688 121.949 moveto
90.3375 72.27007 moveto
font11 setfont
(4. Programming) show
grestore
grestore
% end page 14
showpage
%%page 15
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.3934 746.79 moveto
(15) show
90.3375 684.9593 moveto
font12 setfont
(4.1 Naming conventions) show
110.4125 658.9876 moveto
/colwidth 403.545 def
gsave
font0 setfont
(The prevailing local philosophy about naming is perhaps different from elsewhere. We have) justify
grestore
90.3375 646.9428 moveto
/colwidth 423.62 def
gsave
font0 setfont
(our share of alphabet soup, \050that is, acronyms of varying degrees of cuteness and artificiality, like) justify
grestore
90.3375 634.8977 moveto
gsave
font0 setfont
(PARC, FTP, IFS, PUP\051. But we are trying to avoid worsening this situation. To this worthy end,) justify
grestore
90.3375 622.853 moveto
gsave
font0 setfont
(Grapevine \050mail\051 servers are named after wines, Dorados are named after capital ships, some Suns) justify
grestore
90.3375 610.8076 moveto
gsave
font0 setfont
(are named after places in E. E. ``Doc'' Smith science fiction novels, and so on. As these) justify
grestore
90.3375 598.7628 moveto
gsave
font0 setfont
(conventions don't meet with universal approval, you will doubtless provoke interesting discussions) justify
grestore
90.3375 586.718 moveto
font0 setfont
(if you advance your own views on naming to almost anyone wandering in the corridors.) show
110.4125 567.2391 moveto
/colwidth 403.545 def
gsave
font0 setfont
(While we are on the topic of names, let's discuss for a moment the local customs for) justify
grestore
90.3375 555.1944 moveto
/colwidth 423.62 def
gsave
font0 setfont
(constructing single identifiers out of multiple word phrases. Suppose you'd like to name a variable) justify
grestore
90.3375 543.1492 moveto
gsave
font0 setfont
(``name several words long.'' In some environments, a special character that isn't a letter but acts) justify
grestore
90.3375 531.1044 moveto
font0 setfont
(like a letter is used as a word separator, leading to names such as) show
110.4125 505.6035 moveto
font0 setfont
(``name!several!words!long'' or ``name) show
currentpoint /undery exch def /underx exch def
( ) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
(several) show
currentpoint /undery exch def /underx exch def
( ) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
(words) show
currentpoint /undery exch def /underx exch def
( ) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
(long.'') show
90.3375 486.8305 moveto
gsave
font0 setfont
(No such character is in common use locally, however. Instead, we shift between upper and lower) justify
grestore
90.3375 474.7854 moveto
font0 setfont
(case to show word boundaries, leading to the name) show
110.4125 449.2844 moveto
font0 setfont
( ``NameSeveralWordsLong.'') show
90.3375 430.5116 moveto
gsave
font0 setfont
(Some people think this looks terribly ugly. We won't express our opinions in this document, but) justify
grestore
90.3375 418.4665 moveto
font0 setfont
(once again exhort you to espouse your views in the corridors. ) show
110.4125 398.988 moveto
/colwidth 403.545 def
gsave
font0 setfont
(As a general rule, case is significant for identifiers in the Cedar programming language, but) justify
grestore
90.3375 386.943 moveto
/colwidth 423.62 def
gsave
font0 setfont
(not significant in file names or mail names. Thus, the Cedar identifiers ``REF'', ``Ref'', and ``ref'') justify
grestore
90.3375 374.898 moveto
gsave
font0 setfont
(are quite distinct, but the file names ``BriefingBlurb.tioga'' and ``briefingblurb.tioga'' are) justify
grestore
90.3375 362.853 moveto
gsave
font0 setfont
(equivalent, as are the mail names ``BOki.PARC'' and ``boki.parc.'' In Cedar, there is a further) justify
grestore
90.3375 350.808 moveto
gsave
font0 setfont
(convention that the case of the first letter of an identifier distinguishes fancy objects, such as) justify
grestore
90.3375 338.763 moveto
gsave
font0 setfont
(procedures and types, from simple ones, such as integers and reals. Thus, the identifier name) justify
grestore
90.3375 326.718 moveto
/colwidth 381.4717 def
gsave
font0 setfont
(``ProcWithFiveWordName'' begins with an upper case ``P'', but the name) justify
grestore
90.3375 314.6729 moveto
/colwidth 423.62 def
gsave
font0 setfont
(``integerWithFiveWordName'' begins with a lower case ``i.'' The latter form looks strange to most) justify
grestore
90.3375 302.6279 moveto
gsave
font0 setfont
(people when they first see it. When you first tasted an olive, you probably didn't like it. Now, you) justify
grestore
90.3375 290.5829 moveto
gsave
font0 setfont
(probably do. Give these capitalization conventions the same chance that you would an olive.) justify
grestore
90.3375 278.5379 moveto
gsave
font0 setfont
(Caveat: In Cedar, case does not matter in a file name if the file you're interested in happens to be) justify
grestore
90.3375 266.493 moveto
gsave
font0 setfont
(in a versioned, case-insensitive directory like the Cedar system release, so LoganBerryImpl.mesa) justify
grestore
90.3375 254.4478 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(and loganberryimpl.mesa are the same file; in a Unix-like directory, case ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(does) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( matter. These) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 242.4029 moveto
font0 setfont
(distinctions will become clearer further ahead.) show
110.4125 222.9244 moveto
/colwidth 403.545 def
gsave
font0 setfont
(These capitalization conventions don't work too well when acronyms and normal words) justify
grestore
90.3375 210.8794 moveto
/colwidth 423.62 def
gsave
font0 setfont
(appear together in one identifier. Suppose, for example, that we wanted an identifier named ``FTP) justify
grestore
90.3375 198.8344 moveto
font0 setfont
(version number.'' Since it's an integer, probably ``ftpVersionNumber'' is best.) show
90.3375 172.8632 moveto
font12 setfont
(4.2 Cedar programming language) show
90.3375 146.4216 moveto
font1 setfont
(Cedar) show
110.4125 120.4503 moveto
/colwidth 403.545 def
gsave
font0 setfont
(In 1978, CSL began to consider what programming environment to use on the emerging D-) justify
grestore
90.3375 108.4052 moveto
/colwidth 423.62 def
gsave
font0 setfont
(machines, such as the Dorado. CSL chose to build a new programming environment, based on the) justify
grestore
90.3375 96.36024 moveto
gsave
font0 setfont
(Mesa language, that would be the basis for most of our programming during the following years.) justify
grestore
90.3375 84.31528 moveto
gsave
font0 setfont
(That new environment is named ``Cedar.'' We refer the interested reader to [40] for an) justify
grestore
90.3375 72.27026 moveto
gsave
font0 setfont
(introductory ``tour'' through the Cedar programming environment and to [<42>] for an in-depth) justify
grestore
grestore
grestore
% end page 15
showpage
%%page 16
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.2512 746.79 moveto
(16) show
90.3375 684.9593 moveto
font0 setfont
(description of the overall structure of Cedar and its organization.) show
110.4125 664.54 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Cedar documentation is always in flux; indeed, it might be said that Cedar as a whole is in a) justify
grestore
90.3375 652.4948 moveto
/colwidth 423.62 def
gsave
font0 setfont
(constant state of flux. Much of the documentation for the current release is accessible through a) justify
grestore
90.3375 640.45 moveto
font0 setfont
(``.df'' file named Documentation.df <25>. ) show
110.4125 620.0308 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Cedar's predecessor, Mesa, was a strongly typed language designed and built locally.) justify
grestore
90.3375 607.9858 moveto
/colwidth 423.62 def
gsave
font0 setfont
(Although Mesa programs look a lot like PASCAL programs when viewed in the small, Mesa) justify
grestore
90.3375 595.9408 moveto
gsave
font0 setfont
(provides and enforces a modularization concept that allows large programs to be built from smaller) justify
grestore
90.3375 583.8957 moveto
gsave
font0 setfont
(pieces. These pieces are compiled separately, but the strong type checking of Mesa is enforced) justify
grestore
90.3375 571.8508 moveto
gsave
font0 setfont
(between different modules. The basic idea is to structure a system by determining which functions) justify
grestore
90.3375 559.806 moveto
gsave
font0 setfont
(are supplied by particular portions of the system to other portions. This supply of functionality is) justify
grestore
90.3375 547.7609 moveto
gsave
font0 setfont
(called an ``interface;'' it is manifested in a Mesa source file called an ``interface module.'' An) justify
grestore
90.3375 535.7159 moveto
gsave
font0 setfont
(interface module may define types and procedures that act on values of those types. Only the) justify
grestore
90.3375 523.6711 moveto
gsave
font0 setfont
(procedure headers go into the interface module, not the procedure bodies. This makes sense, since) justify
grestore
90.3375 511.6259 moveto
gsave
font0 setfont
(all the interface module has to do is to give the compiler enough information to type-check) justify
grestore
90.3375 499.5809 moveto
font0 setfont
(programs that use the interface.) show
110.4125 479.1618 moveto
/colwidth 403.545 def
gsave
font0 setfont
(An interface is implemented by an ``implementation module,'' which contains the actual) justify
grestore
90.3375 467.1166 moveto
/colwidth 423.62 def
gsave
font0 setfont
(procedure code. An implementation module is said to ``export'' the interface that it is) justify
grestore
90.3375 455.0717 moveto
gsave
font0 setfont
(implementing; it may also ``import'' other interfaces that it needs to do its job, interfaces that some) justify
grestore
90.3375 443.0266 moveto
font0 setfont
(other program will implement.) show
110.4125 422.6076 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(In simple systems, each interface is exported by exactly one module. In such a system, it is) justify
grestore
90.3375 410.5625 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(clear who should be supplying which services to whom. In fact, in these simple cases, the ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(binding) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(,) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 398.5176 moveto
gsave
font0 setfont
(that is, the resolution of imports and exports, can be done on the fly by the loader. But in more) justify
grestore
90.3375 386.4725 moveto
gsave
font0 setfont
(complex cases, there might be several different modules in the system that can supply the same) justify
grestore
90.3375 374.4275 moveto
gsave
font0 setfont
(service under somewhat different conditions, or with somewhat different performance. Then, the) justify
grestore
90.3375 362.3825 moveto
gsave
font0 setfont
(job of describing exactly which modules supply which services to which other modules can become) justify
grestore
90.3375 350.3375 moveto
gsave
font0 setfont
(subtle. A small language was devised to describe these cases. A program reads such a description,) justify
grestore
90.3375 338.2925 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(called a ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(config) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(, and builds a runable system by filling imports requested from exports according to) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 326.2474 moveto
font0 setfont
(the config.) show
110.4125 305.8283 moveto
/colwidth 403.545 def
gsave
font0 setfont
(The programming language underlying Cedar is essentially Mesa plus garbage collection.) justify
grestore
90.3375 293.7833 moveto
/colwidth 423.62 def
gsave
font0 setfont
(Now, garbage collection changes one's programming style in large systems. Without garbage) justify
grestore
90.3375 281.7383 moveto
gsave
font0 setfont
(collection, one must enforce some conventions about who owns the storage. When I call you and) justify
grestore
90.3375 269.6934 moveto
gsave
font0 setfont
(pass you a string argument, we must agree whether I am just letting you look at my string, or I am) justify
grestore
90.3375 257.6484 moveto
gsave
font0 setfont
(actually turning over ownership of the string to you, because it's the owner's responsibility to) justify
grestore
90.3375 245.6033 moveto
gsave
font0 setfont
(reclaim the string's storage and prevent a storage leak. With garbage collection, most problems like) justify
grestore
90.3375 233.5583 moveto
gsave
font0 setfont
(this go away: the garbage collector owns all storage; it gets reclaimed when it is no longer needed,) justify
grestore
90.3375 221.5133 moveto
gsave
font0 setfont
(and not before. But there is a price for this convenience: the garbage collector takes time to do its) justify
grestore
90.3375 209.4684 moveto
gsave
font0 setfont
(work. In addition, all programmers must follow certain rules about using pointers so as not to) justify
grestore
90.3375 197.4233 moveto
font0 setfont
(confuse the garbage collector about what is garbage and what is not.) show
110.4125 177.0042 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Cedar is really two programming languages: a restricted subset called the ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(safe language) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(, and) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 164.9592 moveto
/colwidth 423.62 def
gsave
font0 setfont
(the unrestricted full language. Programmers who stick to the safe language can rest secure in the) justify
grestore
90.3375 152.9142 moveto
gsave
font0 setfont
(confidence that nothing they write can confuse the garbage collector. Their bugs will not risk) justify
grestore
90.3375 140.8692 moveto
gsave
font0 setfont
(bringing down the entire environment around them in a rubble of bits. Those who choose to veer) justify
grestore
90.3375 128.8242 moveto
font0 setfont
(outside of the safe language should know what they are doing.) show
110.4125 108.4051 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Programs in the programming language underlying Cedar look a lot like Mesa programs, but,) justify
grestore
90.3375 96.36005 moveto
/colwidth 423.62 def
gsave
font0 setfont
(on a deeper level, they aren't really Mesa programs at all. To avoid confusion, we decided to use) justify
grestore
90.3375 84.31507 moveto
gsave
font0 setfont
(the name ``Cedar'' to describe the Cedar programming language, as well as the environment built) justify
grestore
90.3375 72.27007 moveto
font0 setfont
(on top of it.) show
grestore
grestore
% end page 16
showpage
%%page 17
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.3934 746.79 moveto
(17) show
90.3375 684.9593 moveto
font1 setfont
(Cedar, PCedar or ``Portable Cedar'') show
110.4125 656.3076 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Neither the Cedar language nor the environment was originally intended to be portable, and) justify
grestore
90.3375 644.2632 moveto
/colwidth 423.62 def
gsave
font0 setfont
(for many years ran only on D-machines at PARC and a few other locations in Xerox. We recently) justify
grestore
90.3375 632.2182 moveto
gsave
font0 setfont
(re-implemented the language to make it portable across many different architectures. Our strategy) justify
grestore
90.3375 620.173 moveto
gsave
font0 setfont
(was, first, to use machine-dependent C code as an intermediate language; second, to create a) justify
grestore
90.3375 608.1282 moveto
gsave
font0 setfont
(language-independent layer known as the Portable Common Runtime; and third, to write a) justify
grestore
90.3375 596.083 moveto
gsave
font0 setfont
(relatively large amount of Cedar-specific runtime code in a subset of Cedar itself. By treating C as) justify
grestore
90.3375 584.038 moveto
gsave
font0 setfont
(an intermediate code we are able to achieve reasonably fast compilation, very good eventual) justify
grestore
90.3375 571.993 moveto
gsave
font0 setfont
(machine code, and all with relatively small programmer effort. Because Cedar is a much richer) justify
grestore
90.3375 559.948 moveto
gsave
font0 setfont
(language than C, there were numerous issues to resolve in performing an efficient translation and) justify
grestore
90.3375 547.9032 moveto
font0 setfont
(in providing reasonable debugging. ) show
110.4125 526.4146 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Reference [<52>] is a paper presented at SIGPLAN '89 Conference on Programming) justify
grestore
90.3375 514.3700 moveto
/colwidth 423.62 def
gsave
font0 setfont
(Language Design and Implementation. It discusses how Cedar was re-implemented to make it) justify
grestore
90.3375 502.325 moveto
gsave
font0 setfont
(portable across many different architectures, in particular, the strategy for the compiler and) justify
grestore
90.3375 490.2797 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(runtime, and the manner of making connections to other languages and the Unix) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont 0.0 4.015 rmoveto} put
(TM) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {0.0 -4.015 rmoveto font0 setfont} put
( operating) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 478.2347 moveto
font0 setfont
(system.) show
110.4125 456.7465 moveto
/colwidth 403.545 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(Mimosa) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(. The Mimosa compiler translates the Cedar language into machine dependent C.) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 444.7016 moveto
/colwidth 423.62 def
gsave
font0 setfont
(There is a front end, compiling into a simple intermediate form, and a back end, translating from) justify
grestore
90.3375 432.6565 moveto
gsave
font0 setfont
(the intermediate form to C code. In the future, back ends may generate other machine codes,) justify
grestore
90.3375 420.6114 moveto
font0 setfont
(other assembler languages, or other versions of C.) show
110.4125 399.1231 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Although treating C as merely an intermediate language has significant advantages, the) justify
grestore
90.3375 387.0781 moveto
/colwidth 423.62 def
gsave
font0 setfont
(decision to keep program maintenance in Cedar was made independently on the merits of the) justify
grestore
90.3375 375.0331 moveto
gsave
font0 setfont
(Cedar language. We were not willing to do a one-time translation from Cedar to C \050even readable) justify
grestore
90.3375 362.9881 moveto
gsave
font0 setfont
(C\051. For example, such things as compiler-generated runtime checks should not be exposed to the) justify
grestore
90.3375 350.9432 moveto
font0 setfont
(programmer for maintenance.) show
110.4125 329.4548 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Everything in the front end was affected by the retargeting, and some files were completely) justify
grestore
90.3375 317.4099 moveto
/colwidth 423.62 def
gsave
font0 setfont
(rewritten. The use of an intermediate code is completely new. The old code generator was) justify
grestore
90.3375 305.3649 moveto
gsave
font0 setfont
(changed to produce the intermediate code, in 16 files and over 8,000 lines of code. A few other) justify
grestore
90.3375 293.3197 moveto
gsave
font0 setfont
(files are completely new, for about 30% of the source lines. Since substantial changes have been) justify
grestore
90.3375 281.2747 moveto
gsave
font0 setfont
(made to other parts of the compiler, it would be reasonable to estimate that over 50% of the source) justify
grestore
90.3375 269.2297 moveto
gsave
font0 setfont
(lines have received major change \050not counting the lines that were completely discarded\051. We) justify
grestore
90.3375 257.1848 moveto
font0 setfont
(estimate that about 2 man-years overall were spent in redoing the front-end.) show
110.4125 235.6964 moveto
/colwidth 403.545 def
gsave
font0 setfont
(The back-end generates machine dependent C code from the intermediate form. It was) justify
grestore
90.3375 223.6515 moveto
/colwidth 423.62 def
gsave
font0 setfont
(written completely from scratch for the port, consists of 10,000 lines of Cedar in 24 modules, and) justify
grestore
90.3375 211.6066 moveto
font0 setfont
(took about 6 man-months to write.) show
110.4125 190.1183 moveto
/colwidth 403.5451 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(Portable Common Runtime) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(. The Cedar runtime environment, to which the generated C code) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 178.0732 moveto
/colwidth 423.62 def
gsave
font0 setfont
(is targeted, is written mostly in Cedar, the rest is written in C, except for a small amount of) justify
grestore
90.3375 166.0281 moveto
font0 setfont
(assembler code. ) show
110.4125 144.54 moveto
/colwidth 403.545 def
gsave
font0 setfont
(The environment is built in layers. The lowest layer is akin to an operating system, and) justify
grestore
90.3375 132.4950 moveto
/colwidth 423.62 def
gsave
font0 setfont
(provides dynamic loading, threads support, and storage management \050including garbage) justify
grestore
90.3375 120.45 moveto
gsave
font0 setfont
(collection\051. This is about 20,000 lines of C code and less than a 100 lines of assembler \050either) justify
grestore
90.3375 108.405 moveto
gsave
font0 setfont
(SPARC and Motorola 68020 at the moment\051. This layer is not specific to Cedar, and is in fact) justify
grestore
90.3375 96.36 moveto
gsave
font0 setfont
(intended to provide a language-independent base for high level languages. We call it the Portable) justify
grestore
90.3375 84.31496 moveto
gsave
font0 setfont
(Common Runtime \050PCR\051, which we describe elsewhere [71]. Below we describe the PCR only) justify
grestore
90.3375 72.26996 moveto
font0 setfont
(where its functionality is particularly important to implementing Cedar features.) show
grestore
grestore
% end page 17
showpage
%%page 18
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.447 746.79 moveto
(18) show
110.4125 684.9593 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Support for the remaining features of Cedar is provided by the penultimate layer, called) justify
grestore
90.3375 672.914 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(CedarCore, which contains ) 0 buf
opsaft 0 null put
opsbef 1 {font0 setfont} put
(400) 1 buf
opsaft 1 null put
opsbef 2 {font0 setfont} put
( lines of C code and ) 2 buf
opsaft 2 null put
opsbef 3 {font0 setfont} put
(10,000) 3 buf
opsaft 3 null put
opsbef 4 {font0 setfont} put
( lines of Cedar. From CedarCore on, the) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 660.8688 moveto
gsave
font0 setfont
(full Cedar language is supported. The final support layer, BasicCedar, while not necessary for the) justify
grestore
90.3375 648.8241 moveto
gsave
font0 setfont
(language itself, contains services that are considered essential for most Cedar applications. For) justify
grestore
90.3375 636.779 moveto
gsave
font0 setfont
(example it includes several kinds of hash table mechanisms and a general-purpose stream I/O) justify
grestore
90.3375 624.7342 moveto
gsave
font0 setfont
(package. Cedar lightweight processes, interface binding, and exception handling are handled by) justify
grestore
90.3375 612.6892 moveto
font0 setfont
(the runtime system. ) show
90.3375 586.8198 moveto
font12 setfont
(4.3 Portable File System \050PFS\051) show
110.4125 560.95 moveto
/colwidth 403.545 def
gsave
font0 setfont
(File system access by all Cedar packages is PFS, the new Portable File System interface. PFS) justify
grestore
90.3375 548.9048 moveto
/colwidth 423.62 def
gsave
font0 setfont
(provides a uniform, extensible mechanism allowing client programs to use files in any of a number) justify
grestore
90.3375 536.86 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(of different kinds of file systems. For example, clients can currently view UNIX) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont 0.0 4.015 rmoveto} put
(TM) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {0.0 -4.015 rmoveto font0 setfont} put
( file systems in) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 524.8149 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(either ``Unix) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont 0.0 4.015 rmoveto} put
(TM) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {0.0 -4.015 rmoveto font0 setfont} put
('' style, i.e., versionless and case-sensitive names, or in ``Cedar'' style, i.e. versioned) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 512.77 moveto
gsave
font0 setfont
(and case-insensitive names. We dub the Unix view ``-ux'' \050pronounced ``ucks''\051 and the Cedar view) justify
grestore
90.3375 500.725 moveto
gsave
font0 setfont
(``-vux'' \050pronounced ``vucks''\051. There is also a view that uses the Cedar version map as its) justify
grestore
90.3375 488.68 moveto
gsave
font0 setfont
(directory. A view of NS files is in development, as is a DF view. To ease porting of Cedar clients) justify
grestore
90.3375 476.635 moveto
font0 setfont
(and to allow sharing of source, a Cedar FS compatibility package was also provided.) show
110.4125 457.2325 moveto
/colwidth 403.545 def
gsave
font0 setfont
(This work builds on work done in Cedar7.0 for accessing files on many different kinds of file) justify
grestore
90.3375 445.1876 moveto
/colwidth 423.62 def
gsave
font0 setfont
(servers, including Sun NFSs, where essentially the same problems had to be solved: a common) justify
grestore
90.3375 433.1426 moveto
gsave
font0 setfont
(interface to different, but essentially similar file systems; a registration mechanism to make the) justify
grestore
90.3375 421.0976 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(solution extensible to new file systems; and a simulation of Cedar-style names using the Unix) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont 0.0 4.015 rmoveto} put
(TM) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 409.0526 moveto
font0 setfont
(file system. See <53> for details.) show
110.4125 389.6505 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(PFS introduces the ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(prefix map) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( concept to Cedar. Prefix maps introduce a level of name) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 377.6054 moveto
/colwidth 423.62 def
gsave
font0 setfont
(indirection to all file system accesses using PFS. This indirection is used to make client programs) justify
grestore
90.3375 365.5604 moveto
gsave
font0 setfont
(less dependent on the actual location of files. Because prefix maps allow replacing an arbitrary) justify
grestore
90.3375 353.5154 moveto
gsave
font0 setfont
(prefix of a path by another path, and because this substitution is done uniformly on all paths used) justify
grestore
90.3375 341.4704 moveto
font0 setfont
(by PFS, prefix maps have additional uses in customizing clients' views of the file system.) show
110.4125 322.0682 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Type the following command ``pmp'' \050short for PrefixMapPrint\051 to your commander. The) justify
grestore
90.3375 310.0232 moveto
/colwidth 423.62 def
gsave
font0 setfont
(current default prefix maps will be printed out. It is easiest to think of these prefix maps as top) justify
grestore
90.3375 297.9782 moveto
font0 setfont
(level directories in the Unix style.) show
110.4125 278.576 moveto
125.4688 265.1963 moveto
font12 setfont
(%) show
font14 setfont
( pmp) show
131.4688 253.1512 moveto
font13 setfont
(/cedar10.1) show
8.782788 0.0 rmoveto
10.03749 0.0 rmoveto
(-vux:/project/cedar10.1/release) show
131.4688 241.1062 moveto
font13 setfont
(/) show
font14 setfont
(cedar) show
font13 setfont
10.75407 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
(-vux:/) show
font14 setfont
(project/cedar10.1/release) show
131.4688 229.0612 moveto
font14 setfont
(...) show
131.4688 217.0162 moveto
font13 setfont
(/) show
13.92702 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
(-ux:/) show
131.4688 204.9713 moveto
font14 setfont
(/r/) show
6.273453 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
10.03749 0.0 rmoveto
(-VerMapA:/Source/) show
125.4688 191.5916 moveto
90.3375 165.722 moveto
font1 setfont
(-Vux view) show
110.4125 139.8524 moveto
/colwidth 403.545 def
gsave
font0 setfont
(The following doesn't apply to Cedar as it appears on the CDROM. The /cedar and) justify
grestore
90.3375 127.8073 moveto
/colwidth 423.62 def
gsave
font0 setfont
(/cedar10.1 prefixes are mapped by the CDROM prefix map to ordinary, case sensitive, versionless) justify
grestore
90.3375 115.7624 moveto
font0 setfont
(directories using the -ux:/ prefix.) show
110.4125 96.3602 moveto
/colwidth 403.545 def
gsave
font0 setfont
(For example, note that /cedar10.1 and /cedar are both prefixes of a somewhat longer) justify
grestore
90.3375 84.31519 moveto
/colwidth 423.62 def
gsave
font0 setfont
(pathname, called /project/cedar10.1/release and is to be viewed as versioned, case-insensitive) justify
grestore
90.3375 72.27018 moveto
gsave
font0 setfont
(names, indicated by ``-vux:'' -- think of -vux as \042versioned unix.\042 If I type the ``ls'' command in) justify
grestore
grestore
grestore
% end page 18
showpage
%%page 19
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.2537 746.79 moveto
(19) show
90.3375 684.9593 moveto
gsave
font0 setfont
(the /cedar/top directory, all file names together with version numbers are printed out. A portion) justify
grestore
90.3375 672.914 moveto
font0 setfont
(of this list looks like the following:) show
90.3375 653.7959 moveto
125.4688 640.7 moveto
font12 setfont
(% ) show
font14 setfont
(push /cedar/top) show
125.4688 627.6044 moveto
font14 setfont
(/cedar/top/) show
125.4688 614.5088 moveto
font12 setfont
(%) show
font14 setfont
( ls) show
125.4688 601.413 moveto
font14 setfont
(/cedar/top/) show
131.4688 589.368 moveto
font14 setfont
(Adobe.df!3 12309 21-Apr-92 16:42:08 PDT) show
131.4688 577.323 moveto
font14 setfont
(Adobe.df!4 12309 29-Apr-92 14:41:17 PDT) show
131.4688 565.2778 moveto
font14 setfont
(Adobe.df!5 12336 12-May-92 14:35:27 PDT) show
131.4688 553.233 moveto
font14 setfont
(AIS.df!1 3619 10-Mar-92 11:59:50 PST) show
131.4688 541.188 moveto
font14 setfont
(Args.df!1 1092 22-Feb-92 10:59:17 PST) show
131.4688 529.143 moveto
font14 setfont
(ArpaTransport.df!1 2039 21-Feb-92 23:29:43 PST) show
110.4125 510.025 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(To those of you who cut your teeth on Unix) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont 0.0 4.015 rmoveto} put
(TM) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {0.0 -4.015 rmoveto font0 setfont} put
(, version numbers are probably alien to you.) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 497.98 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(The semantics of files created and modified in a vux view is ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(immutability) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. A file can never be) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 485.9348 moveto
gsave
font0 setfont
(modified in place or overwritten, so you need never worry about clobberting an old version of a) justify
grestore
90.3375 473.8899 moveto
gsave
font0 setfont
(file as you make changes. The only way to modify an existing file is to create a new version with) justify
grestore
90.3375 461.8448 moveto
gsave
font0 setfont
(the same contents and modify that new version. Reading a file defaults to the latest version, so if) justify
grestore
90.3375 449.7997 moveto
font0 setfont
(you type) show
90.3375 430.6815 moveto
125.4688 417.5858 moveto
font12 setfont
(%) show
font14 setfont
( open /Cedar/Top/Adobe.df) show
131.4688 405.5408 moveto
font14 setfont
(Created Viewer: /Cedar/Top/Adobe.df!5) show
90.3375 386.4226 moveto
gsave
font0 setfont
(to your Commander without specifying a version number, a viewer is opened displaying the latest) justify
grestore
90.3375 374.3776 moveto
gsave
font0 setfont
(version; to read a specific version you must supply that number using ``!2'' for example, if you) justify
grestore
90.3375 362.3325 moveto
gsave
font0 setfont
(want version number 2. The obvious disadvantage is that all those versions accumulate and clutter) justify
grestore
90.3375 350.2875 moveto
font0 setfont
(your disk space. ) show
110.4125 331.1692 moveto
/colwidth 403.545 def
gsave
font0 setfont
(And now for a word on Cedar version maps. To achieve the same effect as the previous) justify
grestore
90.3375 319.1243 moveto
/colwidth 423.62 def
gsave
font0 setfont
(command without having to specify the particular subdirectory, like /Top, which you might not) justify
grestore
90.3375 307.0794 moveto
gsave
font0 setfont
(even know anyway, you can go through Cedar version maps. These maps represent a kind of latest) justify
grestore
90.3375 295.0342 moveto
gsave
font0 setfont
(snapshot of all the software packages making up Cedar. Provided that a package is in the version) justify
grestore
90.3375 282.9892 moveto
gsave
font0 setfont
(maps, then you will always get the latest version of the file; otherwise, you must explicitly specify) justify
grestore
90.3375 270.9443 moveto
gsave
font0 setfont
(the path. The following accomplishes the same thing as the previous command. In this case, I) justify
grestore
90.3375 258.8992 moveto
font0 setfont
(happen know that Adobe.df is in the /Cedar directory and that there are version maps for /Cedar.) show
110.4125 239.781 moveto
125.4688 226.6853 moveto
font12 setfont
(%) show
font14 setfont
( openr Adobe.df) show
131.4688 214.6404 moveto
font14 setfont
(Created Viewer: /R/Adobe.df!5) show
110.4125 195.5221 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(A word of ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(warning) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(: Packages in the Cedar release are, unfortunately, not read-only. It is) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 183.4771 moveto
font0 setfont
(possible for you inadvertently to modify a file and then ) show
font7 setfont
currentpoint /undery exch def /underx exch def
(Save) show
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto
font0 setfont
( it. Please be careful!!!) show
90.3375 157.9861 moveto
font1 setfont
(-Ux view) show
110.4125 132.4951 moveto
gsave
font0 setfont
( Think of this as the Unix view of the file system. In fact, it is the default view for your root) justify
grestore
90.3375 120.4502 moveto
/colwidth 423.62 def
gsave
font0 setfont
(directory ``/'' and thus for your home directory. In the -ux view, PFS maintains only two versions:) justify
grestore
90.3375 108.4052 moveto
gsave
font0 setfont
(the current version and the previous version. This previous version is distinguished by a tilde, ``~'',) justify
grestore
90.3375 96.36016 moveto
gsave
font0 setfont
(appended to the file name. If I modify the current version and write it back, the old previous) justify
grestore
90.3375 84.31516 moveto
gsave
font0 setfont
(version vanishes and the old current version becomes the previous version. If you create a) justify
grestore
90.3375 72.27016 moveto
font0 setfont
(subdirectory, it defaults to -ux. Case is important! ) show
grestore
grestore
% end page 19
showpage
%%page 20
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.125 746.79 moveto
(20) show
90.3375 684.9593 moveto
font1 setfont
(Adding a prefix to the map.) show
110.4125 660.2036 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(Suppose you want to define your own -vux view of some existing directory of yours, say,) justify
grestore
90.3375 648.1588 moveto
font0 setfont
(/YourHomeDirectory/nothing/zippo, then type the following to your Commander:) show
125.4688 635.6153 moveto
font12 setfont
(%) show
font14 setfont
( pma /zippo -vux:/YourHomeDirectory/nothing/zippo) show
90.3375 617.0488 moveto
/colwidth 423.62 def
gsave
font0 setfont
(``pma'' is short for ``PrefixMapAdd'' and is the command for adding new entries. There are two) justify
grestore
90.3375 605.0036 moveto
gsave
font0 setfont
(arguments: the first one, /zippo, is the prefix directory you wish to define; the second one is the) justify
grestore
90.3375 592.9588 moveto
gsave
font0 setfont
(translation, where -vux says you want a versioned view, after the colon, is the path name \050ending) justify
grestore
90.3375 580.9138 moveto
font0 setfont
(in a directory name\051 for which /zippo is the abbreviation.) show
110.4125 562.3474 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(Then type ``pmp'' to your Commander, and you'll see /zippo listed as a prefix map entry with) justify
grestore
90.3375 550.3023 moveto
/colwidth 423.62 def
gsave
font0 setfont
(the -vux view. To view this directory as versioned, you must always refer to it via the prefix name,) justify
grestore
90.3375 538.2575 moveto
gsave
font1 setfont
opsbef 0 {font1 setfont} put
(not) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( the full path name. In fact, we now have ) 1 buf
opsaft 1 null put
font1 setfont
opsbef 2 {font1 setfont} put
(both) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
( an -ux and a -vux view of the same subdirectory.) 3 buf
opsaft 3 null put
mixedjustify
grestore
90.3375 526.2125 moveto
font0 setfont
(Any file created in one is visible from the other view.) show
110.4125 507.6460 moveto
125.4688 495.1023 moveto
font12 setfont
(%) show
font14 setfont
( push /YourHomeDirectory/nothing/zippo) show
125.4688 482.5584 moveto
font14 setfont
(/YourHomeDirectory/nothing/zippo/) show
125.4688 470.0145 moveto
font12 setfont
(%) show
font14 setfont
( ls) show
125.4688 457.4706 moveto
font14 setfont
(/YourHomeDirectory/nothing/zippo/) show
125.4688 444.9268 moveto
font14 setfont
(. 512 05-May-90 14:47:07 PDT) show
125.4688 432.383 moveto
font14 setfont
(.. 512 05-May-90 14:45:17 PDT) show
125.4688 419.8393 moveto
font14 setfont
(.~case~Hello.world 0 05-May-90 14:46:09 PDT) show
125.4688 407.2954 moveto
font14 setfont
(Hello.world 17 05-May-90 14:47:07 PDT) show
125.4688 394.7514 moveto
font14 setfont
(hello.world.~1~ 5 05-May-90 14:46:09 PDT) show
125.4688 382.2075 moveto
font14 setfont
(hello.world.~2~ 11 05-May-90 14:58:21 PDT) show
125.4688 369.6637 moveto
font14 setfont
(Hello.world~ 5 05-May-90 14:45:05 PDT) show
125.4688 357.12 moveto
font14 setfont
(-- 6 files, 1051 total bytes) show
90.3375 338.5536 moveto
gsave
font0 setfont
(Here we're listing the files in the -ux view, and we're also seeing the files that were created under) justify
grestore
90.3375 326.5085 moveto
gsave
font0 setfont
(the -vux view \050.~case~Hello.world, hello.world.~1~, and hello.world.~2~\051. Perhaps the only) justify
grestore
90.3375 314.4634 moveto
gsave
font0 setfont
(puzzling file is the .~case~ that precedes the file name Hello.world. It's there to make the file) justify
grestore
90.3375 302.4185 moveto
font0 setfont
(name case-insensitive.) show
125.4688 289.8746 moveto
125.4688 277.3308 moveto
font12 setfont
(%) show
font14 setfont
( push /zippo) show
125.4688 264.7869 moveto
font14 setfont
(/zippo/) show
125.4688 252.2431 moveto
font12 setfont
(%) show
font14 setfont
( ls) show
125.4688 239.6992 moveto
font14 setfont
(Hello.world 17 05-May-90 14:47:07 PDT) show
125.4688 227.1554 moveto
font14 setfont
(Hello.world!1 5 05-May-90 14:46:09 PDT) show
125.4688 214.6116 moveto
font14 setfont
(Hello.world!2 11 05-May-90 14:58:21 PDT) show
125.4688 202.0678 moveto
font14 setfont
(Hello.world~ 5 05-May-90 14:45:05 PDT) show
125.4688 189.524 moveto
font14 setfont
(-- 3 files, 27 total bytes) show
125.4688 176.9802 moveto
90.3375 158.4138 moveto
gsave
font0 setfont
(It's not clear that you really want to mix your -ux and -vux views of the same directory. I think it's) justify
grestore
90.3375 146.3688 moveto
font0 setfont
(best to maintain the separation.) show
90.3375 121.6138 moveto
font1 setfont
(Removing a prefix from the map) show
110.4125 96.85864 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Removing a prefix is easy. Suppose you want to remove the prefix /zippo. The following) justify
grestore
90.3375 84.81366 moveto
font0 setfont
(does the trick:) show
125.4688 72.26985 moveto
font12 setfont
(%) show
font14 setfont
( pma /zippo) show
grestore
grestore
% end page 20
showpage
%%page 21
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.132 746.79 moveto
(21) show
125.4688 689.9815 moveto
font12 setfont
(%) show
90.3375 670.4820 moveto
font0 setfont
(Note, however, that the prefix is removed only from the map; the filesystem on disk is unaffected.) show
125.4688 657.0051 moveto
90.3375 631.0060 moveto
font12 setfont
(4.4 Name space) show
110.4125 605.0066 moveto
/colwidth 403.545 def
gsave
font0 setfont
(The Cedar name space of interest to most users essentially consists of the aforementioned) justify
grestore
90.3375 592.9615 moveto
/colwidth 423.62 def
gsave
font0 setfont
(Prefix maps that serve as a kind of location-transparent shorthand for file servers. In this section,) justify
grestore
90.3375 580.9167 moveto
font0 setfont
(we discuss how the various name spaces are organized.) show
110.4125 561.4172 moveto
/colwidth 403.545 def
gsave
font0 setfont
(/Cedar consists of the following major sub-directories: /Commands, /Top, and all the) justify
grestore
90.3375 549.372 moveto
/colwidth 423.62 def
gsave
font0 setfont
(software packages, from /Abutters to /XTSetter. The illustration below shows this same) justify
grestore
90.3375 537.3272 moveto
font0 setfont
(organization. ) show
114.3915 375.487 moveto
gsave
currentpoint translate
2834.645 dup matrix scale concat
gsave
3.527776e-4 dup matrix scale concat
gsave
-34.0 -443.3509 matrix translate concat
gsave
font16 setfont
0.0 setgray
12.0 dup matrix scale 40.0 510.0 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(/Commands) show
grestore
gsave
font16 setfont
0.0 setgray
12.0 dup matrix scale 235.2469 507.593 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(/Abutters) show
grestore
gsave
font16 setfont
0.0 setgray
12.0 dup matrix scale 235.2469 493.193 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(/Adobe) show
grestore
gsave
font16 setfont
0.0 setgray
12.0 dup matrix scale 235.2469 478.793 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(/ApproxSymTab) show
grestore
gsave
font16 setfont
0.0 setgray
12.0 dup matrix scale 240.9375 467.593 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(. . .) show
grestore
gsave
font16 setfont
0.0 setgray
12.0 dup matrix scale 235.2469 451.593 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(/XTSetter) show
grestore
gsave
font16 setfont
0.0 setgray
12.0 dup matrix scale 375.0 510.0 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(/Top) show
grestore
0.5 setgray
eofill
gsave
gsave
0.0 0.0 moveto
currentpoint translate
73.37051 517.556 moveto
254.869 517.556 lineto
254.869 577.258 lineto
73.37051 577.258 lineto
clip newpath
0.0 setgray
1.0 setlinewidth
1 setlinecap
1 setlinejoin
253.369 575.758 74.8705 519.0562 vec
grestore
grestore
0.5 setgray
eofill
gsave
gsave
0.0 0.0 moveto
currentpoint translate
251.869 520.5 moveto
255.5 520.5 lineto
255.5 577.258 lineto
251.869 577.258 lineto
clip newpath
0.0 setgray
1.0 setlinewidth
1 setlinecap
1 setlinejoin
253.369 575.758 254.0 522.0 vec
grestore
grestore
0.5 setgray
eofill
gsave
gsave
0.0 0.0 moveto
currentpoint translate
251.869 517.556 moveto
390.756 517.556 lineto
390.756 577.258 lineto
251.869 577.258 lineto
clip newpath
0.0 setgray
1.0 setlinewidth
1 setlinecap
1 setlinejoin
253.369 575.758 389.2558 519.0562 vec
grestore
grestore
gsave
font16 setfont
0.0 setgray
12.0 dup matrix scale 239.0 580.0 matrix translate matrix concatmatrix concat
0.0 0.0 moveto
(/Cedar) show
grestore
grestore
grestore
grestore
110.4125 355.9875 moveto
/colwidth 403.545 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(Top) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(. This subdirectory contains for each software package the DF file that describes that) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 343.9425 moveto
/colwidth 423.62 def
gsave
font0 setfont
(software package. For example, for the software package LoganBerry, there is one DF file:) justify
grestore
90.3375 331.8974 moveto
font0 setfont
(LoganBerry.df. We defer explanation of DF files to the next section.) show
110.4125 312.398 moveto
font12 setfont
(Commands) show
font0 setfont
(. Discussed in the next section.) show
110.4125 292.8986 moveto
/colwidth 403.545 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(Software packages) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(. Each package has its own subdirectory in the hierarchy. Thus XTSetter) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 280.8537 moveto
/colwidth 423.62 def
gsave
font0 setfont
(has /XTSetter and LoganBerry has /LoganBerry. Each package subdirectory contains the source) justify
grestore
90.3375 268.8085 moveto
gsave
font0 setfont
(files \050.mesa, .config\051, symbol table files \050.mob\051, intermediate code files \050.c2c.c\051, and a subdirectory,) justify
grestore
90.3375 256.7636 moveto
gsave
font0 setfont
(sun4. The sun4 directory, contains, as you might expect, all the \050optimized\051 C object files targeted) justify
grestore
90.3375 244.7186 moveto
font0 setfont
(for the SPARC architecture.) show
90.3375 218.7193 moveto
font12 setfont
(4.5 DF Files ) show
110.4125 192.72 moveto
/colwidth 403.545 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(Bringover) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(. In the days Before The Change \050that is before Cedar on Unix\051, the Cedar File) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 180.675 moveto
/colwidth 423.62 def
gsave
font0 setfont
(System was organized into a local file system managed by a user's Dorado worksation and a remote) justify
grestore
90.3375 168.63 moveto
gsave
font0 setfont
(file system, managed by an IFS file server such as Ivy or Indigo: the file server was the truth! If a) justify
grestore
90.3375 156.585 moveto
gsave
font0 setfont
(user wished to modify a software package, he copied the necessary bits from the file server to his) justify
grestore
90.3375 144.54 moveto
gsave
font0 setfont
(local file system, munged with them locally, and then stored them out at the file server, presumably) justify
grestore
90.3375 132.4951 moveto
gsave
font0 setfont
(in some consistent state. Actually, that's an oversimplification, if not an outright lie. What really) justify
grestore
90.3375 120.4501 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(happens is that you create ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(attachments) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( to remote files rather than copying them to the local disk.) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 108.4051 moveto
gsave
font0 setfont
(The local disk is just a cache. The attached files may then be referenced by their short file names) justify
grestore
90.3375 96.36006 moveto
gsave
font0 setfont
(rather than the full path name including the server and directory names. If attached files were) justify
grestore
90.3375 84.31507 moveto
gsave
font0 setfont
(subsequently modified, new versions were automatically created on the local disk. The remote) justify
grestore
90.3375 72.27007 moveto
gsave
font0 setfont
(versions would later be updated to reflect these ``dirty'' files in the cache. The local file system was) justify
grestore
grestore
grestore
% end page 21
showpage
%%page 22
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.2037 746.79 moveto
(22) show
90.3375 684.9593 moveto
gsave
font0 setfont
(truly distinct from the remote file server although the software did much to make things) justify
grestore
90.3375 672.914 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(transparent. This induced a certain mode of operation called ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(Keeping your bags packed) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. If you) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 660.8688 moveto
gsave
font0 setfont
(spent weeks working on modifying some package without putting out intermediate changes to the) justify
grestore
90.3375 648.8241 moveto
gsave
font0 setfont
(file server, you were taking big risks because all manner of nasty things could happen in the) justify
grestore
90.3375 636.779 moveto
gsave
font0 setfont
(meantime to destroy the data on the local disk. Your local copy is indeed only a cached copy of the) justify
grestore
90.3375 624.7342 moveto
font0 setfont
(data on the file server. Dorados themselves were never backed up, but IFSs were.) show
27.36865 0.0 rmoveto
110.4125 602.9194 moveto
/colwidth 403.545 def
gsave
font0 setfont
(In the days After The Change, we now use NFS servers \050and later, even AFS\051 to store our) justify
grestore
90.3375 590.8742 moveto
/colwidth 423.62 def
gsave
font0 setfont
(files, and the distinction between local and remote files goes away; however, I hasten to add that) justify
grestore
90.3375 578.8293 moveto
gsave
font0 setfont
(our SPARCstation's do have 200 Megabytes of local disk space, some of which stores Unix itself) justify
grestore
90.3375 566.7843 moveto
gsave
font0 setfont
(and some of which is devoted to swap space, but no one seriously uses the local disk. I note you) justify
grestore
90.3375 554.7391 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(can get ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(much) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( better performance if you use it! Rumor has it that the DF view will provide) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 542.6945 moveto
gsave
font0 setfont
(something equivalent to Dorado Cedar attachments. One pleasant advantage of NFS is that it) justify
grestore
90.3375 530.6494 moveto
gsave
font0 setfont
(allows you to always login to your home directory on an NFS server, whatever machine you) justify
grestore
90.3375 518.6044 moveto
gsave
font0 setfont
(happen to be on, and thus share the same file system subtree; however, you pay a cost in) justify
grestore
90.3375 506.5594 moveto
gsave
font0 setfont
(performance and in network traffic. Viewed through versioned PFS, the files making up the latest) justify
grestore
90.3375 494.5142 moveto
gsave
font0 setfont
(Cedar release on /Cedar are immutable, that is, you cannot modify a version in place but must) justify
grestore
90.3375 482.4694 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(create a new version. One still copies ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(all) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( these bits, but instead of to your local disk, to some) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 470.4243 moveto
font0 setfont
(subdirectory in your file system space.) show
110.4125 448.6094 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(The Bringover command retrieves to some subdirectory you've specified the set of files) justify
grestore
90.3375 436.5645 moveto
/colwidth 423.62 def
gsave
font0 setfont
(described by a particular DF suite. Typically, the DF files specify the Cedar release directory) justify
grestore
90.3375 424.5195 moveto
gsave
font0 setfont
(\050/Cedar\051 on which to look for a file, or in some cases, the old Cedar7.0 release \050/Cedar7.0\051. These) justify
grestore
90.3375 412.4746 moveto
gsave
font0 setfont
(directories are just hints, in the sense that Bringover will always verify by checking the create date) justify
grestore
90.3375 400.4294 moveto
gsave
font0 setfont
(that it is getting you the correct version of the specified file. If Bringover can't find the correct) justify
grestore
90.3375 388.3844 moveto
gsave
font0 setfont
(version on the specified directory, it will issue a sprightly error message. Consider our) justify
grestore
90.3375 376.3393 moveto
gsave
font0 setfont
(SimpleExample.df file example. Imagine that you've organized your file system so that) justify
grestore
90.3375 364.2944 moveto
gsave
font0 setfont
(development takes place in /tilde/boki/Cedar/Development/ subdirectory. Try typing the) justify
grestore
90.3375 352.2493 moveto
font0 setfont
(following to your Commander:) show
125.4688 336.4572 moveto
font12 setfont
(\015) show
131.4688 324.412 moveto
font12 setfont
(% ) show
font14 setfont
(mkdir SimpleExample) show
131.4688 312.3671 moveto
font12 setfont
(% ) show
font14 setfont
(cd) show
font12 setfont
( ) show
font14 setfont
(SimpleExample) show
font12 setfont
( ) show
131.4688 300.322 moveto
font14 setfont
(/tilde/boki/Cedar/Development/SimpleExample/) show
font12 setfont
(\015) show
131.4688 288.2769 moveto
font12 setfont
(%) show
font14 setfont
( mkdir sun4) show
131.4688 276.2319 moveto
font12 setfont
(% ) show
font14 setfont
(BringOver /Cedar10.1/Top/SimpleExample.df) show
font12 setfont
(\015) show
131.4688 264.1869 moveto
font14 setfont
( ) show
font1 setfont
(it types a lot of stuff ...) show
font12 setfont
(\015) show
131.4688 252.142 moveto
font12 setfont
(% ) show
font14 setfont
(open ReverseName.mesa) show
131.4688 240.097 moveto
font12 setfont
(%) show
font14 setfont
( open Calculate.mesa) show
125.4688 224.3047 moveto
110.4125 202.4898 moveto
/colwidth 403.5451 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(On line 1, we must explicitly make a subdirectory called ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(SimpleExample) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( in the Development) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 190.4449 moveto
/colwidth 423.62 def
gsave
font0 setfont
(subdirectory we're already in. Then we change directory to that newly created directory. Since the) justify
grestore
90.3375 178.3999 moveto
gsave
font0 setfont
(Bringover command, in copying the object files, does not create subdirectories sun4 and sun4-o3,) justify
grestore
90.3375 166.3548 moveto
gsave
font0 setfont
(you must explicitly do that yourself. Next, do the bringover. Finally, open some viewers on the) justify
grestore
90.3375 154.3099 moveto
gsave
font0 setfont
(two source files making up SimpleExample. You're welcome to stare at the Cedar code on your) justify
grestore
90.3375 142.2649 moveto
font0 setfont
(screen, but we're not here going to explain anything about it.) show
110.4125 120.4501 moveto
/colwidth 403.5451 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(Smodel) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(. Suppose we modify a local copy of a file described in a DF file; now we want to put) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 108.4051 moveto
/colwidth 423.62 def
gsave
font0 setfont
(the new version back on the Cedar release directory, say, along with a new DF file that describes) justify
grestore
90.3375 96.3601 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(the new version. This is performed by the ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(SModel) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( command \050short for Simple Modelling\051.) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 84.31507 moveto
gsave
font0 setfont
(SModel considers each file described in the DF file, and looks to see if it has been edited it \050that is,) justify
grestore
90.3375 72.27007 moveto
gsave
font0 setfont
(it looks to see if the create date of that file in my copy of the file is now different from the create) justify
grestore
grestore
grestore
% end page 22
showpage
%%page 23
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.5062 746.79 moveto
(23) show
90.3375 684.9593 moveto
gsave
font0 setfont
(date stored in the old DF file\051. If so, SModel stores the new version onto the /Cedar directory.) justify
grestore
90.3375 672.914 moveto
gsave
font0 setfont
(After doing this for each file, SModel writes a new version of the DF file itself, filling in all of the) justify
grestore
90.3375 660.8688 moveto
gsave
font0 setfont
(create dates correctly to describe the new version of the entire ensemble. If the DF file describes) justify
grestore
90.3375 648.8241 moveto
gsave
font0 setfont
(itself, as most DF files do, SModel is smart enough to make sure that the new version of the DF) justify
grestore
90.3375 636.779 moveto
gsave
font0 setfont
(file is stored out to the /Cedar release directory as well. SModel also has lots of bells and whistles,) justify
grestore
90.3375 624.7342 moveto
font0 setfont
(but let's not go into them.) show
110.4125 602.5512 moveto
/colwidth 403.5451 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(A real example) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(. Let's consider a real example. I've extracted the simplest Cedar program) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 590.5063 moveto
/colwidth 423.62 def
gsave
font0 setfont
(from the Cedar examples usually inflicted on summer interns and permanent hires alike and) justify
grestore
90.3375 578.4612 moveto
gsave
font0 setfont
(constructed a DF file that packages them up. Without showing you the source code for the) justify
grestore
90.3375 566.4163 moveto
gsave
font0 setfont
(programs themselves, here's what the various DF files look like \050excluding the Sun4O3 df\051. It also) justify
grestore
90.3375 554.3714 moveto
font0 setfont
(includes some comment lines \050each line is preceded by two hypens --\051 provided by Brent.) show
110.4125 532.1885 moveto
/colwidth 403.5452 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(SimpleExample.df. ) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(The first few comment lines give the name of the DF file, copyright year,) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 520.1434 moveto
/colwidth 423.62 def
gsave
font0 setfont
(and a line for each person who last modified the file. ``Exports [Cedar10.1]<Top>'' means that the) justify
grestore
90.3375 508.0984 moveto
gsave
font0 setfont
(following files are stored in the Cedar Top directory, in this case, ``SimpleExample.df'', followed) justify
grestore
90.3375 496.0533 moveto
gsave
font0 setfont
(by the create date ``14-May-92 15:15:34 PDT''; note that [Cedar10.1]<Top> and /Cedar10.1/Top) justify
grestore
90.3375 484.0084 moveto
font0 setfont
(are different notations for the same thing; you will see them used interchangeably. ) show
110.4125 461.8256 moveto
/colwidth 403.5451 def
gsave
font0 setfont
(Includes: \050Don't occur in this df file\051``Include'' merely means that the specified file \050usually a) justify
grestore
90.3375 449.7804 moveto
/colwidth 423.62 def
gsave
font0 setfont
(DF file\051 is included in the Suite. Think of the ``Include'' line as syntactic inclusion, similar to) justify
grestore
90.3375 437.7355 moveto
gsave
font0 setfont
(macro-expansion, in which the DF-suite references other DF files. Bringover invokes itself) justify
grestore
90.3375 425.6904 moveto
font0 setfont
(recursively on the included file at the point it encounters the Include statement. ) show
105.3938 409.5301 moveto
111.3938 397.4851 moveto
font14 setfont
(-- SimpleExample.df) show
111.3938 385.44 moveto
font14 setfont
(-- Copyright ) show
/Times-Roman findfont 10.0375 scalefont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding ISOLatin1Encoding def currentdict
end
/font18 exch definefont pop
/font18 findfont setfont
(\251) show
font14 setfont
( 1992 by Xerox Corporation. All rights reserved.) show
111.3938 373.395 moveto
font14 setfont
(-- DFPort: Christian Jacobi, May 14, 1992 3:01 pm PDT) show
111.3938 361.35 moveto
font14 setfont
(--) show
111.3938 349.305 moveto
font14 setfont
(-- Simple example programs useful for introductions to Cedar only) show
111.3938 337.26 moveto
font14 setfont
(--) show
111.3938 325.215 moveto
111.3938 313.17 moveto
font14 setfont
(Exports [Cedar10.1]<Top>) show
111.3938 301.125 moveto
font14 setfont
( SimpleExample.df 14-May-92 15:15:34 PDT) show
111.3938 289.08 moveto
111.3938 277.035 moveto
font14 setfont
(Directory [Cedar10.1]<Commands>) show
111.3938 264.99 moveto
font14 setfont
( Calculate.command!1 14-May-92 14:11:48 PDT) show
111.3938 252.945 moveto
font14 setfont
( ReverseName.command!1 14-May-92 14:11:15 PDT) show
111.3938 240.9 moveto
111.3938 228.855 moveto
font14 setfont
(Directory [Cedar10.1]<SimpleExample>) show
111.3938 216.81 moveto
111.3938 204.765 moveto
font14 setfont
( SimpleExampleDoc.tioga!2 14-May-92 15:14:55 PDT) show
111.3938 192.72 moveto
111.3938 180.675 moveto
font14 setfont
( Calculate.require!1 02-May-90 12:39:04 PDT) show
111.3938 168.63 moveto
font14 setfont
( Calculate.mob!1 14-May-92 15:00:14 PDT) show
111.3938 156.585 moveto
font14 setfont
( Calculate.mesa!1 14-May-92 15:00:07 PDT) show
111.3938 144.54 moveto
font14 setfont
( Calculate.c2c.c!1 14-May-92 15:00:15 PDT) show
111.3938 132.4951 moveto
font14 setfont
( +sun4>Calculate.c2c.o!1 14-May-92 15:00:39 PDT) show
111.3938 120.45 moveto
111.3938 108.4051 moveto
font14 setfont
( ReverseName.require!1 02-May-90 10:24:08 PDT) show
111.3938 96.36 moveto
font14 setfont
( ReverseName.mob!1 14-May-92 14:22:28 PDT) show
111.3938 84.315 moveto
font14 setfont
( ReverseName.mesa!1 14-May-92 14:22:19 PDT) show
111.3938 72.26999 moveto
font14 setfont
( ReverseName.c2c.c!1 14-May-92 14:22:28 PDT) show
grestore
grestore
% end page 23
showpage
%%page 24
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.0624 746.79 moveto
(24) show
111.3938 689.9815 moveto
font14 setfont
( +sun4>ReverseName.c2c.o!1 14-May-92 14:22:36 PDT) show
111.3938 677.9366 moveto
111.3938 665.8916 moveto
font14 setfont
(Imports [Cedar10.1]<Top>BasicPackages.df Of ~=) show
111.3938 653.8465 moveto
font14 setfont
( Using [Commander.mob]) show
111.3938 641.8015 moveto
111.3938 629.7568 moveto
font14 setfont
(Imports [Cedar10.1]<Top>Basics.df Of ~=) show
111.3938 617.7115 moveto
font14 setfont
( Using [Process.mob]) show
111.3938 605.6668 moveto
111.3938 593.6216 moveto
font14 setfont
(Imports [Cedar10.1]<Top>IO.df Of ~=) show
111.3938 581.5766 moveto
font14 setfont
( Using [IO.mob]) show
111.3938 569.5316 moveto
111.3938 557.4865 moveto
font14 setfont
(Imports [Cedar10.1]<Top>Rope.df Of ~=) show
111.3938 545.4418 moveto
font14 setfont
( Using [Rope.mob]) show
111.3938 533.3969 moveto
111.3938 521.3519 moveto
font14 setfont
(Imports [Cedar10.1]<Top>SystemNames.df Of ~=) show
111.3938 509.3067 moveto
font14 setfont
( Using [SystemNames.mob]) show
111.3938 497.2619 moveto
111.3938 485.2167 moveto
font14 setfont
(Imports [Cedar10.1]<Top>ViewerIO.df Of ~=) show
111.3938 473.1716 moveto
font14 setfont
( Using [ViewerIO.mob]) show
125.4688 459.7625 moveto
110.4125 440.3307 moveto
/colwidth 403.545 def
gsave
font0 setfont
(As you can see, if we only discussed DF files as descriptions of ensembles of files, then mere) justify
grestore
90.3375 428.2857 moveto
/colwidth 423.62 def
gsave
font0 setfont
(mortals could figure out DF files without unduly straining their gray cells. But there's more. In) justify
grestore
90.3375 416.2408 moveto
font0 setfont
(fact, these ensembles are often components of larger ensembles. It's complicated.) show
110.4125 396.8088 moveto
/colwidth 403.545 def
gsave
font0 setfont
(DF files grew up over time in response to several needs. As they became more popular,) justify
grestore
90.3375 384.7639 moveto
/colwidth 423.62 def
gsave
font0 setfont
(features were added one by one to make them more useful in these varying contexts. The resulting) justify
grestore
90.3375 372.7188 moveto
gsave
font0 setfont
(system as a whole is hard to grok, particularly in PCedar2.0, but we hope that Cedar10.1 is a little) justify
grestore
90.3375 360.6739 moveto
font0 setfont
(bit simpler again.) show
90.3375 334.7647 moveto
font12 setfont
(4.6 Reading programs) show
110.4125 308.8557 moveto
90.3375 282.9468 moveto
font1 setfont
(A Sample Program) show
110.4125 257.0379 moveto
/colwidth 403.545 def
gsave
font0 setfont
(About the Cedar code you will see, I won't explain syntax or semantics very much. A tutorial) justify
grestore
90.3375 244.9928 moveto
font0 setfont
(on Cedar programming is beyond the scope of this primer. ) show
110.4125 225.5611 moveto
gsave
font0 setfont
(After the listing of the ReverseName.mesa module, there is a set of notes to help in reading it.) justify
grestore
90.3375 213.5161 moveto
/colwidth 423.62 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(The notes are keyed to the programs by the numbers in parentheses to the ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(right) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( of some lines, e.g.,) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 201.4712 moveto
gsave
/Times-BoldItalic findfont 10.0375 scalefont
/font19 exch def
font0 setfont
opsbef 0 {font0 setfont} put
(as ``) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(--) 1 buf
opsaft 1 null put
font19 setfont
opsbef 2 {font19 setfont} put
(\050note 3.1\051) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(''. You will also find references to lines in the program from the notes, as, e.g., ``) 3 buf
opsaft 3 null put
font19 setfont
opsbef 4 {font19 setfont} put
([see) 4 buf
opsaft 4 null put
mixedjustify
grestore
90.3375 189.4261 moveto
gsave
font19 setfont
opsbef 0 {font19 setfont} put
(line 1.1]) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(''. The corresponding lines in the programs are marked as, e.g., ) 1 buf
opsaft 1 null put
font19 setfont
opsbef 2 {font19 setfont} put
([1.1]) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(. When Cedar) 3 buf
opsaft 3 null put
mixedjustify
grestore
90.3375 177.3811 moveto
gsave
font0 setfont
(identifiers appear in the notes, they are displayed in italics to make reading easier; e.g.,) justify
grestore
90.3375 165.3361 moveto
gsave
font1 setfont
opsbef 0 {font1 setfont} put
(ReverseName) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(, ) 1 buf
opsaft 1 null put
font1 setfont
opsbef 2 {font1 setfont} put
(CommandProc) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(. You should read this example for understanding and use the notes) 3 buf
opsaft 3 null put
mixedjustify
grestore
90.3375 153.2911 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(as references, rather than the other way around. Consult the on-line documentation ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(Cedar) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 141.2461 moveto
gsave
font1 setfont
opsbef 0 {font1 setfont} put
(Language Overview) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( <57>, which details, somewhat cryptically and hastily, the additional changes) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 129.2011 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(that produced Cedar. Finally, see ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(Language Change Summary) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( <58> for the latest word on the) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 117.1561 moveto
gsave
font0 setfont
(subtle changes made to the Cedar language definition intended to foster portability of code from) justify
grestore
90.3375 105.1111 moveto
font0 setfont
(one target architecture to another. ) show
110.4125 85.67937 moveto
105.3938 72.27012 moveto
font1 setfont
(ReverseName.mesa) show
31.79435 0.0 rmoveto
37.64056 0.0 rmoveto
37.64056 0.0 rmoveto
37.64056 0.0 rmoveto
37.64056 0.0 rmoveto
37.64056 0.0 rmoveto
(--) show
font19 setfont
(\050note 1.1\051) show
27.88755 0.0 rmoveto
grestore
grestore
% end page 24
showpage
%%page 25
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.3934 746.79 moveto
(25) show
120.45 684.9593 moveto
font1 setfont
(Copyright ) show
/font2 findfont setfont
(\251) show
font1 setfont
( 1990 by Xerox Corporation. All rights reserved.) show
120.45 672.383 moveto
font1 setfont
(Brian Oki, May 7, 1990 8:23 pm PDT) show
105.3938 659.8068 moveto
105.3938 647.2308 moveto
font3 setfont
(DIRECTORY) show
120.45 634.6545 moveto
font14 setfont
(Commander ) show
font3 setfont
(USING) show
font14 setfont
( [CommandProc, Register],) show
120.45 622.0785 moveto
font3 setfont
(IO) show
font14 setfont
( ) show
font3 setfont
(USING) show
font14 setfont
( [PutF, rope, ) show
font3 setfont
(STREAM) show
font14 setfont
(],) show
120.45 609.5024 moveto
font14 setfont
(Rope ) show
font3 setfont
(USING) show
font14 setfont
( [Cat, Equal, Fetch, Find, FromChar, Length, ) show
font3 setfont
(ROPE) show
font14 setfont
(, Substr],) show
120.45 596.9262 moveto
font14 setfont
(UserCredentials ) show
font3 setfont
(USING) show
font14 setfont
( [Get];) show
120.45 584.35 moveto
105.3938 571.7742 moveto
font12 setfont
(ReverseName) show
font14 setfont
(: ) show
font3 setfont
(CEDAR) show
font14 setfont
( ) show
font3 setfont
(PROGRAM) show
120.45 559.1978 moveto
font3 setfont
(IMPORTS) show
font14 setfont
( Commander, ) show
font3 setfont
(IO) show
font14 setfont
(, Rope, UserCredentials) show
120.45 546.6216 moveto
font14 setfont
(~ ) show
font3 setfont
(BEGIN ) show
36.29867 0.0 rmoveto
( --) show
font19 setfont
(\050note 1.3\051) show
135.5063 534.0455 moveto
120.45 521.4694 moveto
font3 setfont
(ROPE) show
font14 setfont
(: ) show
font3 setfont
(TYPE) show
font14 setfont
( = Rope.) show
font3 setfont
(ROPE) show
font14 setfont
(; ) show
21.8328 0.0 rmoveto
37.64056 0.0 rmoveto
37.64056 0.0 rmoveto
( ) show
font1 setfont
(--) show
font19 setfont
(\050note 1.4\051) show
font14 setfont
( ) show
font12 setfont
7.812637 0.0 rmoveto
120.45 508.8936 moveto
120.45 496.3175 moveto
font12 setfont
(ReverseName) show
font14 setfont
(: Commander.CommandProc ~ {) show
165.6187 484.2723 moveto
font14 setfont
(--) show
font19 setfont
(\050note 1.5\051) show
135.5063 471.6962 moveto
/Times-Italic findfont 8.029999 scalefont
/font20 exch def
font20 setfont
([cmd: Commander.Handle] RETURNS [result: REF ANY ← NIL, msg: ROPE ← NIL]) show
150.5625 459.12 moveto
150.5625 446.5438 moveto
font1 setfont
(Reverses the user's login name and prints it out in the CommandTool window.) show
150.5625 433.9677 moveto
font14 setfont
(userName: ) show
font3 setfont
(ROPE) show
font14 setfont
( ← UserCredentials.Get[].name; ) show
7.569673 0.0 rmoveto
37.64056 0.0 rmoveto
( --) show
font19 setfont
(\050note 1.6\051) show
font14 setfont
( ) show
150.5625 421.3917 moveto
font14 setfont
(out: ) show
font3 setfont
(IO) show
font14 setfont
(.) show
font3 setfont
(STREAM) show
font14 setfont
( ← cmd.out; ) show
font1 setfont
(-- cmd is an arg to ReverseName.) show
font19 setfont
4.697098 0.0 rmoveto
150.5625 408.8156 moveto
font14 setfont
(backwordsName: ) show
font3 setfont
(ROPE) show
font14 setfont
( ← ) show
font3 setfont
(NIL) show
font14 setfont
(;) show
150.5625 396.2394 moveto
font1 setfont
(Remove anything after the period in user name, e.g., \042.PA\042, and check for the name) show
156.5625 384.1944 moveto
font1 setfont
(Weiser.) show
150.5625 371.6184 moveto
font14 setfont
(dotPos: ) show
font3 setfont
(INT) show
font14 setfont
( = userName.Find[\042.\042]; ) show
21.668 0.0 rmoveto
37.64056 0.0 rmoveto
37.64056 0.0 rmoveto
( --) show
font19 setfont
(\050note 1.7\051) show
font14 setfont
( ) show
150.5625 359.0422 moveto
font3 setfont
(IF) show
font14 setfont
( dotPos # -1 ) show
font3 setfont
(THEN) show
165.6187 346.4662 moveto
font14 setfont
(userName ← userName.Substr[0, dotPos];) show
150.5625 333.8901 moveto
font3 setfont
(IF) show
font14 setfont
( userName.Equal[s2: \042Weiser\042, case: ) show
font3 setfont
(FALSE) show
font14 setfont
(] ) show
font3 setfont
(THEN) show
165.6187 321.314 moveto
font14 setfont
(out.PutF[\042Hi, Mark!\134n\042];) show
150.5625 308.7379 moveto
font1 setfont
(Now reverse the name and concatenate them in reverse order.) show
150.5625 296.1618 moveto
font3 setfont
(FOR) show
font14 setfont
( i: ) show
font3 setfont
(INT) show
font14 setfont
( ) show
font3 setfont
(DECREASING) show
font14 setfont
( ) show
font3 setfont
(IN) show
font14 setfont
( [0..userName.Length[]\051 ) show
font3 setfont
(DO) show
165.6187 283.5857 moveto
font14 setfont
(--) show
font19 setfont
([1.1] \050note 1.8\051) show
165.6187 271.0095 moveto
font14 setfont
(backwordsName ← backwordsName.Cat[Rope.FromChar[userName.Fetch[i]]]) show
165.6187 258.4334 moveto
font3 setfont
(ENDLOOP) show
font14 setfont
(;) show
150.5625 245.8573 moveto
font14 setfont
(out.PutF[\042Your user name backwards is: %g.\134n\042, ) show
font3 setfont
(IO) show
font14 setfont
(.rope[backwordsName]]; --) show
font19 setfont
(\050Note) show
195.7312 233.8123 moveto
font19 setfont
(1.9\051) show
150.5625 221.2362 moveto
font14 setfont
(};) show
150.5625 208.66 moveto
135.5063 196.084 moveto
font1 setfont
(Start code registers a ReverseName command, which must be invoked for this program to) show
141.5063 184.0389 moveto
font1 setfont
(do anything:) show
135.5063 171.4629 moveto
135.5063 158.8868 moveto
font14 setfont
(--) show
font19 setfont
(\050note 1.16\051) show
135.5063 146.3107 moveto
font14 setfont
(Commander.Register[key: \042ReverseName\042, proc: ReverseName, doc: \042Reverses your) show
180.675 134.2656 moveto
font14 setfont
(user name\042];) show
105.3938 121.6895 moveto
font3 setfont
(END) show
font14 setfont
(.) show
90.3375 96.89140 moveto
font1 setfont
(Program notes) show
120.45 72.27026 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(\0501.1\051) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.6766 add def
opsbef 1 {10.6766 0.0 rmoveto font0 setfont} put
(These stylized comments give the name of the module, and who last edited it. See) 1 buf
opsaft 1 null put
mixedjustify
grestore
grestore
grestore
% end page 25
showpage
%%page 26
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.2512 746.79 moveto
(26) show
150.5625 684.9593 moveto
/colwidth 363.395 def
gsave
font0 setfont
(the document CedarProgramStyle.tioga for a list of the stylistic conventions) justify
grestore
150.5625 672.914 moveto
font0 setfont
(recommended for Cedar programmers.) show
120.45 658.383 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(\0501.3\051) 0 buf
opsaft 0 null put
font1 setfont
/totwidth /totwidth try 10.6766 add def
opsbef 1 {font1 setfont 10.6766 0.0 rmoveto} put
(ReverseName) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( imports four interfaces, ) 2 buf
opsaft 2 null put
font1 setfont
opsbef 3 {font1 setfont} put
(Commander, IO) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(, ) 4 buf
opsaft 4 null put
font1 setfont
opsbef 5 {font1 setfont} put
(Rope) 5 buf
opsaft 5 null put
font0 setfont
opsbef 6 {font0 setfont} put
(, ) 6 buf
opsaft 6 null put
font1 setfont
opsbef 7 {font1 setfont} put
(and UserCredentials) 7 buf
opsaft 7 null put
mixedjustify
grestore
150.5625 646.3379 moveto
/colwidth 363.395 def
gsave
font0 setfont
(because it needs to call procedures defined in those interfaces. You've seen the) justify
grestore
150.5625 634.2926 moveto
gsave
font0 setfont
(Commander's interactive face before. IO provides abstract STREAM operations,) justify
grestore
150.5625 622.2479 moveto
/colwidth 363.395 def
gsave
font0 setfont
(and Rope provides immutable string values with lots of operations for creating new) justify
grestore
150.5625 610.2029 moveto
gsave
font0 setfont
(ones out of old ones. The student of Cedar would do well to study Rope.mesa,) justify
grestore
150.5625 598.1580 moveto
font0 setfont
(RopeImpl.mesa, IO.mesa and IOImpl.mesa.) show
120.45 583.627 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(\0501.4\051) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.6766 add def
opsbef 1 {10.6766 0.0 rmoveto font0 setfont} put
(Since ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(ROPE) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(s are so heavily used in the program, an unqualified version of the type) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 571.5818 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(name is generated simply by equating it with the type in the ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(Rope) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( interface. This is a) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 559.5366 moveto
gsave
font0 setfont
(commonly used means for making one or a small set of names from interfaces) justify
grestore
150.5625 547.4918 moveto
font0 setfont
(available as simple identifiers in a module.) show
120.45 532.9604 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(\0501.5\051) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.6766 add def
opsbef 1 {10.6766 0.0 rmoveto font0 setfont} put
(The argument and returns lists given here as comments show the meanging of the) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 520.9155 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(type ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(Commander.CommandProc) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(; they were inserted semi-automatically using) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 508.8706 moveto
gsave
font0 setfont
(Tioga's ``Expand Abbreviation'' command to assist in reading the program.) justify
grestore
150.5625 496.8256 moveto
gsave
font1 setfont
opsbef 0 {font1 setfont} put
(ReverseName) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( has this type so that it can be registered with the ) 1 buf
opsaft 1 null put
font1 setfont
opsbef 2 {font1 setfont} put
(Commander) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
( as a) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 484.7804 moveto
font0 setfont
(command that a user can invoke by typing a simple identifier \050see note 1.18\051) show
font1 setfont
(.) show
120.45 470.2494 moveto
font0 setfont
(\0501.6\051) show
font1 setfont
10.6766 0.0 rmoveto
(UserCredentials.Get) show
font0 setfont
( has the type) show
155.5812 457.4864 moveto
font3 setfont
10.03749 0.0 rmoveto
(PROC) show
font14 setfont
( ) show
font3 setfont
(RETURNS) show
font14 setfont
( [name, password: ) show
font3 setfont
(ROPE) show
font14 setfont
(]) show
120.45 442.955 moveto
/colwidth 393.5077 def
gsave
font1 setfont
opsbef 0 {font1 setfont 30.1125 0.0 rmoveto} put
(userName) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( is initialized to the value of the ``) 1 buf
opsaft 1 null put
font1 setfont
opsbef 2 {font1 setfont} put
(name) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
('' return value from) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 430.9100 moveto
font1 setfont
(UserCredentials.Get) show
font0 setfont
( by qualifying the call with ``.) show
font1 setfont
(name) show
font0 setfont
(''.) show
120.45 416.3788 moveto
font0 setfont
(\0501.7\051) show
10.6766 0.0 rmoveto
(The notation) show
155.5812 403.6157 moveto
font1 setfont
10.03749 0.0 rmoveto
(userName.Find) show
font14 setfont
([\042.\042]) show
120.45 389.0845 moveto
/colwidth 393.5075 def
gsave
font0 setfont
30.1125 0.0 rmoveto
(is interpreted by the compiler as follows: Look in the interface where the type of) justify
grestore
150.5625 377.0394 moveto
/colwidth 363.395 def
gsave
font1 setfont
opsbef 0 {font1 setfont} put
(userName) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( is defined \050) 1 buf
opsaft 1 null put
font1 setfont
opsbef 2 {font1 setfont} put
(Rope) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
( in this case\051 and look for the procedure ) 3 buf
opsaft 3 null put
font1 setfont
opsbef 4 {font1 setfont} put
(Find,) 4 buf
opsaft 4 null put
font0 setfont
opsbef 5 {font0 setfont} put
( whose first) 5 buf
opsaft 5 null put
mixedjustify
grestore
150.5625 364.9946 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(parameter should be a ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(ROPE) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. Generate code to call that procedure, inserting) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 352.9495 moveto
gsave
font1 setfont
opsbef 0 {font1 setfont} put
(userName) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( at the head of its argument list. Thus ) 1 buf
opsaft 1 null put
font1 setfont
opsbef 2 {font1 setfont} put
(userName.Find) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
([\042.\042] is an alternate) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 340.9045 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(way of saying ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(Rope.) 1 buf
opsaft 1 null put
opsbef 2 {font1 setfont} put
(Find) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
([) 3 buf
opsaft 3 null put
font1 setfont
opsbef 4 {font1 setfont} put
(userName) 4 buf
opsaft 4 null put
font0 setfont
opsbef 5 {font0 setfont} put
(, \042.\042]. The ) 5 buf
opsaft 5 null put
font1 setfont
opsbef 6 {font1 setfont} put
(userName.Find) 6 buf
opsaft 6 null put
font0 setfont
opsbef 7 {font0 setfont} put
( form is called ``object-) 7 buf
opsaft 7 null put
mixedjustify
grestore
150.5625 328.8596 moveto
font0 setfont
(style notation'', and the ) show
font1 setfont
(Rope.) show
(Find) show
font0 setfont
( form is called ``procedure-oriented notation''.) show
120.45 314.3284 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont 30.1125 0.0 rmoveto} put
(Note also that ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(dotPos) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( is supposed to be constant over the scope of its declaration, so) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 302.2833 moveto
/colwidth 363.395 def
gsave
font0 setfont
(it is initialized with ``='' \050as opposed to ``←''\051 to prevent any subsequent assignment) justify
grestore
150.5625 290.2383 moveto
font0 setfont
(to it.) show
120.45 275.707 moveto
/colwidth 393.5077 def
gsave
font0 setfont
30.1125 0.0 rmoveto
(This ``object-style notation'' might be handy for some well known data types.) justify
grestore
150.5625 263.6622 moveto
/colwidth 363.395 def
gsave
font0 setfont
(However usage of ``object-style notation'' for your own data types makes the) justify
grestore
150.5625 251.617 moveto
font0 setfont
(program nearly unreadable for casual readers and is strongly discouraged.) show
120.45 237.086 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(\0501.8\051) 0 buf
opsaft 0 null put
font1 setfont
/totwidth /totwidth try 10.6766 add def
opsbef 1 {font1 setfont 10.6766 0.0 rmoveto} put
(Find) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(, ) 2 buf
opsaft 2 null put
font1 setfont
opsbef 3 {font1 setfont} put
(Fetch) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(, ) 4 buf
opsaft 4 null put
font1 setfont
opsbef 5 {font1 setfont} put
(Equal) 5 buf
opsaft 5 null put
font0 setfont
opsbef 6 {font0 setfont} put
(, ) 6 buf
opsaft 6 null put
font1 setfont
opsbef 7 {font1 setfont} put
(Substr) 7 buf
opsaft 7 null put
font0 setfont
opsbef 8 {font0 setfont} put
(, ) 8 buf
opsaft 8 null put
font1 setfont
opsbef 9 {font1 setfont} put
(Cat) 9 buf
opsaft 9 null put
font0 setfont
opsbef 10 {font0 setfont} put
(, and ) 10 buf
opsaft 10 null put
font1 setfont
opsbef 11 {font1 setfont} put
(FromChar) 11 buf
opsaft 11 null put
font0 setfont
opsbef 12 {font0 setfont} put
( are all procedures from the ) 12 buf
opsaft 12 null put
font1 setfont
opsbef 13 {font1 setfont} put
(Rope) 13 buf
opsaft 13 null put
mixedjustify
grestore
150.5625 225.0408 moveto
/colwidth 363.395 def
gsave
font0 setfont
(interface. The program uses object-style notation for those calls whose first) justify
grestore
150.5625 212.9959 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(argument is a nameable object, e.g., ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(userName) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(, and procedure-oriented notation) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 200.9509 moveto
gsave
font0 setfont
(otherwise. [line 1.1] is a good example of both. Here it is again, spread out to exhibit) justify
grestore
150.5625 188.9059 moveto
font0 setfont
(the two forms:) show
155.5812 176.1428 moveto
170.6375 163.3797 moveto
font14 setfont
(backwordsName ←) show
185.6937 150.6167 moveto
font14 setfont
(backwordsName.Cat[) show
20.53561 0.0 rmoveto
37.64056 0.0 rmoveto
font1 setfont
(-- object-style notation) show
200.75 137.8536 moveto
font14 setfont
(Rope.FromChar[) show
38.88302 0.0 rmoveto
( ) show
font1 setfont
(-- procedure-oriented notation) show
215.8062 125.0906 moveto
font14 setfont
(userName.Fetch[i]) show
33.40534 0.0 rmoveto
( ) show
font1 setfont
(-- object-style notation) show
215.8062 112.3275 moveto
font14 setfont
(]) show
200.75 99.56446 moveto
font14 setfont
(];) show
200.75 86.80142 moveto
120.45 72.27020 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(\0501.9\051) 0 buf
opsaft 0 null put
font1 setfont
/totwidth /totwidth try 10.6766 add def
opsbef 1 {font1 setfont 10.6766 0.0 rmoveto} put
(IO.PutF) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( is the standard way of providing formatted output to a stream \050much like) 2 buf
opsaft 2 null put
mixedjustify
grestore
grestore
grestore
% end page 26
showpage
%%page 27
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.3934 746.79 moveto
(27) show
150.5625 684.9593 moveto
/colwidth 363.395 def
gsave
font3 setfont
opsbef 0 {font3 setfont} put
(FORTRAN) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( output with ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(FORMAT) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(\051. Its first argument is an ) 3 buf
opsaft 3 null put
font3 setfont
opsbef 4 {font3 setfont} put
(IO) 4 buf
opsaft 4 null put
opsbef 5 {font3 setfont} put
(.STREAM) 5 buf
opsaft 5 null put
font0 setfont
opsbef 6 {font0 setfont} put
(. The second is a) 6 buf
opsaft 6 null put
mixedjustify
grestore
150.5625 672.914 moveto
gsave
font3 setfont
opsbef 0 {font3 setfont} put
(ROPE) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( with embedded Fortran-like formatting commands where variables are to be) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 660.8688 moveto
gsave
font0 setfont
(output. The ``%g'' format is the most useful one; it will handle any sort of variable:) justify
grestore
150.5625 648.8241 moveto
gsave
font3 setfont
opsbef 0 {font3 setfont} put
(INTEGER) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(, ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(CHARACTER) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(, ) 3 buf
opsaft 3 null put
font3 setfont
opsbef 4 {font3 setfont} put
(ROPE) 4 buf
opsaft 4 null put
font0 setfont
opsbef 5 {font0 setfont} put
(, etc., in a general default format. The third through) 5 buf
opsaft 5 null put
mixedjustify
grestore
150.5625 636.779 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(last arguments are values to be output, surrounded by calls to inline ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(IO) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( procedures) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 624.7342 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(that tell ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(PutF) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( the type of the argument: ) 2 buf
opsaft 2 null put
font1 setfont
opsbef 3 {font1 setfont} put
(int) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
([) 4 buf
opsaft 4 null put
font1 setfont
opsbef 5 {font1 setfont} put
(answer) 5 buf
opsaft 5 null put
font0 setfont
opsbef 6 {font0 setfont} put
(], for example. For details, see the) 6 buf
opsaft 6 null put
mixedjustify
grestore
150.5625 612.6892 moveto
font0 setfont
(description of ) show
font1 setfont
(IO) show
font0 setfont
( in IODoc.tioga.) show
120.45 597.4706 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(\0501.16\051) 0 buf
opsaft 0 null put
/totwidth /totwidth try 5.657868 add def
opsbef 1 {5.657868 0.0 rmoveto font0 setfont} put
(Here, at the end of the module, is the code that is executed when the module is) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 585.4255 moveto
/colwidth 363.3949 def
gsave
font0 setfont
(started. You can create an instance of a module and start it using the \042Run\042) justify
grestore
150.5625 573.3804 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(command in ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(Commander) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. The loader creates instances of programs when loading) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 561.3354 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(configurations. If a component of a configuration is not ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(START) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(ed explicitly, then it) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 549.2903 moveto
gsave
font0 setfont
(will be started automatically \050as the result of a trap\051 the first time one of its) justify
grestore
150.5625 537.2453 moveto
gsave
font0 setfont
(procedures is called. See the Mesa Language Reference Manual for more) justify
grestore
150.5625 525.2004 moveto
font0 setfont
(information.) show
120.45 509.9818 moveto
/colwidth 393.5075 def
gsave
font0 setfont
30.1125 0.0 rmoveto
(In this case, the start code for the module consists of one call on the procedure) justify
grestore
150.5625 497.9367 moveto
/colwidth 363.395 def
gsave
font1 setfont
opsbef 0 {font1 setfont} put
(Commander.Register) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(, which registers the command ``ReverseName'' with the) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 485.8919 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Commander, so that you can invoke the procedures ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(ReverseName) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( by typing its) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 473.8467 moveto
font0 setfont
(command name.) show
120.45 458.6279 moveto
/colwidth 393.5077 def
gsave
font0 setfont
30.1125 0.0 rmoveto
(These procedure calls also illustrate the ability to specify the association between a) justify
grestore
150.5625 446.5828 moveto
/colwidth 363.395 def
gsave
font0 setfont
(procedure's formal parameters and the arguments using keyword notation.) justify
grestore
150.5625 434.5378 moveto
gsave
font0 setfont
(Generally, keyword notation is preferred over positional for all but simple one- or) justify
grestore
150.5625 422.4928 moveto
gsave
font0 setfont
(two-argument calls, and it is definitely better for two-argument calls if the types of) justify
grestore
150.5625 410.4477 moveto
font0 setfont
(the arguments are the same. Either) show
155.5812 396.6533 moveto
font14 setfont
10.03749 0.0 rmoveto
(Copy[to: arg1, from: arg2]) show
120.45 381.4348 moveto
font0 setfont
30.1125 0.0 rmoveto
(or) show
155.5812 367.6404 moveto
font14 setfont
10.03749 0.0 rmoveto
(Copy[from: arg2, to: arg1]) show
120.45 352.4216 moveto
font1 setfont
30.1125 0.0 rmoveto
font0 setfont
(is preferable to) show
155.5812 338.6271 moveto
font14 setfont
10.03749 0.0 rmoveto
(Copy[arg1, arg2]) show
90.3375 312.2045 moveto
font12 setfont
(4.7 Creating programs using Tioga) show
110.4125 285.782 moveto
110.4125 265.9651 moveto
/colwidth 403.545 def
gsave
font0 setfont
(This section shows you the rudiments of using Tioga to create Cedar programs, such as the) justify
grestore
90.3375 253.9202 moveto
/colwidth 423.62 def
gsave
font0 setfont
(ones you've seen in the previous section. In fact, we'll reconstruct the framework of the) justify
grestore
90.3375 241.8752 moveto
font0 setfont
(ReverseName.mesa Cedar module.) show
110.4125 222.0582 moveto
/colwidth 403.545 def
gsave
font0 setfont
(A Cedar module is usually one of three kinds: A definitions module, which contains type) justify
grestore
90.3375 210.0133 moveto
/colwidth 423.62 def
gsave
font0 setfont
(definitions and assorted other things needed by the compiler to type-check uses of the module; an) justify
grestore
90.3375 197.9682 moveto
gsave
font0 setfont
(implementation module, which typically implements some interface, and is said, in CSL parlance) justify
grestore
90.3375 185.9234 moveto
gsave
font0 setfont
(to ``export'' that interface; and configuration modules, which bind together object files into one,) justify
grestore
90.3375 173.8784 moveto
gsave
font0 setfont
(loadable file. Not all implementation modules need implement an interface; in fact,) justify
grestore
90.3375 161.8333 moveto
font0 setfont
(ReverseName.mesa stands alone.) show
110.4125 142.0164 moveto
font0 setfont
(Our module consists of three parts:) show
120.45 126.7977 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(1. ) 0 buf
opsaft 0 null put
/totwidth /totwidth try 20.09845 add def
opsbef 1 {20.09845 0.0 rmoveto font0 setfont} put
(Comment consisting of the module name, and the person who last changed the) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 114.7527 moveto
font0 setfont
(module.) show
120.45 99.5339 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(2. ) 0 buf
opsaft 0 null put
/totwidth /totwidth try 20.09845 add def
font3 setfont
opsbef 1 {20.09845 0.0 rmoveto font3 setfont} put
(DIRECTORY) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(, which says what other modules are used by this one, and in particular,) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 87.48892 moveto
font0 setfont
(states explicitly ) show
font1 setfont
(what) show
font0 setfont
( symbols or procedures are used.) show
120.45 72.27016 moveto
font0 setfont
(3.) show
22.60782 0.0 rmoveto
(Module name together with ) show
font3 setfont
(IMPORTS) show
font0 setfont
( and ) show
font3 setfont
(EXPORTS ) show
font0 setfont
(clauses.) show
grestore
grestore
% end page 27
showpage
%%page 28
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.447 746.79 moveto
(28) show
90.3375 684.9593 moveto
font0 setfont
(To construct a similar format, let's go through the following steps:) show
120.45 670.5161 moveto
font0 setfont
(1.) show
22.60782 0.0 rmoveto
(Type the following to your Commander) show
155.5812 657.8847 moveto
font12 setfont
(%) show
font14 setfont
( new ReverseName.mesa) show
155.5812 645.2543 moveto
font14 setfont
(/tilde/boki/InternCzar/SimpleExample/ReverseName.mesa already exists! Use) show
161.5812 633.209 moveto
font14 setfont
(the -d switch to create a new viewer anyway.) show
155.5812 620.5780 moveto
font14 setfont
(Oops! That name already exists in the current directory, so let's try another name,) show
161.5812 608.5332 moveto
font14 setfont
(say HelloWorld.mesa) show
155.5812 595.9021 moveto
font12 setfont
(%) show
font14 setfont
( new HelloWorld.mesa) show
155.5812 583.2712 moveto
font14 setfont
(Created Viewer: /tilde/boki/InternCzar/SimpleExample/HelloWorld.mesa) show
120.45 568.8281 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(2.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 22.60782 add def
opsbef 1 {22.60782 0.0 rmoveto font0 setfont} put
(A new, empty viewer should appear on your screen. Move the mouse cursor into) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 556.7832 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(that window. Type the name ``HelloWorld.mesa''. ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(MIDDLE) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-click twice on that) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 544.738 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(name to select the name, and type ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(CTRL) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-\134 to turn it into a ) 2 buf
opsaft 2 null put
font1 setfont
opsbef 3 {font1 setfont} put
(comment) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
( node, in italics.) 4 buf
opsaft 4 null put
mixedjustify
grestore
150.5625 532.6934 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Type ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(CTRL) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(RETURN) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
( twice \050to create new nodes\051 and ) 4 buf
opsaft 4 null put
font3 setfont
opsbef 5 {font3 setfont} put
(CTRL) 5 buf
opsaft 5 null put
font0 setfont
opsbef 6 {font0 setfont} put
(-) 6 buf
opsaft 6 null put
font3 setfont
opsbef 7 {font3 setfont} put
(SHIFT) 7 buf
opsaft 7 null put
font0 setfont
opsbef 8 {font0 setfont} put
(-\134 to undo the) 8 buf
opsaft 8 null put
mixedjustify
grestore
150.5625 520.6481 moveto
font0 setfont
(comment mode.) show
120.45 506.2051 moveto
font0 setfont
(3. ) show
20.09845 0.0 rmoveto
(Type ``dir'' \050without\051 italics in the viewer.) show
120.45 491.7619 moveto
font0 setfont
(4.) show
22.60782 0.0 rmoveto
(Type ) show
font3 setfont
(CTRL) show
font0 setfont
(-e. ``dir'' will be magically replaced with the following:) show
150.5625 477.3188 moveto
font3 setfont
(DIRECTORY) show
165.6187 464.6879 moveto
font7 setfont
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
font14 setfont
(Interface) show
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
( ) show
font3 setfont
(USING) show
font14 setfont
( [) show
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(Item) show
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(],) show
165.6187 452.0568 moveto
font14 setfont
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(Interface) show
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
( ) show
font3 setfont
(USING) show
font14 setfont
( [) show
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(Item) show
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(];) show
140.525 433.4035 moveto
/colwidth 373.4324 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(This lists the interfaces that this program uses. ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(CTRL) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-e is the abbreviation expander) 2 buf
opsaft 2 null put
mixedjustify
grestore
120.45 421.3585 moveto
/colwidth 393.5075 def
gsave
font0 setfont
(command to help making coding and editing Cedar programs much easier. See) justify
grestore
120.45 409.3134 moveto
font0 setfont
(/Cedar/EssentialStyles/cedar.abbreviations for a complete list.) show
120.45 394.8704 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(5.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 22.60782 add def
opsbef 1 {22.60782 0.0 rmoveto font0 setfont} put
(Reposition the mouse cursor to the beginning, and hit the ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(NEXT) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
( key. Type) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 382.8252 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(``Commander'', hit the ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(NEXT) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( key again, and type ``CommandProc, Register''. Hit) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 370.7802 moveto
gsave
font3 setfont
opsbef 0 {font3 setfont} put
(NEXT) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( again and type ``IO''; hit ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(NEXT) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(, and type ``PutRope''. Delete the semi-colon,) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 358.7353 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(replace it with a comma, and type ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(CTRL) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(RETURN) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(. Now type ``Rope USING) 4 buf
opsaft 4 null put
mixedjustify
grestore
150.5625 346.6902 moveto
gsave
font0 setfont
([ROPE];'' don't worry that it's not in small capitals; the prettyprinter will take care of) justify
grestore
150.5625 334.6452 moveto
font0 setfont
(that.) show
120.45 320.202 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(6.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 22.60782 add def
opsbef 1 {22.60782 0.0 rmoveto font0 setfont} put
(Type ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(CTRL) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(-) 3 buf
opsaft 3 null put
font3 setfont
opsbef 4 {font3 setfont} put
(RETURN) 4 buf
opsaft 4 null put
font0 setfont
opsbef 5 {font0 setfont} put
( twice to create new nodes, followed by ) 5 buf
opsaft 5 null put
font3 setfont
opsbef 6 {font3 setfont} put
(CTRL) 6 buf
opsaft 6 null put
font0 setfont
opsbef 7 {font0 setfont} put
(-) 7 buf
opsaft 7 null put
font3 setfont
opsbef 8 {font3 setfont} put
(SHIFT) 8 buf
opsaft 8 null put
font0 setfont
opsbef 9 {font0 setfont} put
(-n to unnest) 9 buf
opsaft 9 null put
mixedjustify
grestore
150.5625 308.157 moveto
font0 setfont
(the node. Now we're at the top level.) show
120.45 293.7139 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(7.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 22.60782 add def
opsbef 1 {22.60782 0.0 rmoveto font0 setfont} put
(Type ``prog'' \050without quotes\051 to the viewer, and then type ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(CTRL) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(-e. It replaces the) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 281.6688 moveto
font0 setfont
(word prog with ) show
120.45 267.2258 moveto
135.5063 254.5946 moveto
font14 setfont
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
font11 setfont
(Name) show
font14 setfont
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(: ) show
font3 setfont
(CEDAR PROGRAM) show
150.5625 241.9638 moveto
font3 setfont
(IMPORTS) show
font14 setfont
( ) show
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(ImportsList) show
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
150.5625 229.3328 moveto
font3 setfont
(EXPORTS) show
font14 setfont
( ) show
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(ExportsList) show
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
135.5063 216.7017 moveto
font14 setfont
(~ ) show
font3 setfont
(BEGIN) show
150.5625 204.0708 moveto
150.5625 191.4399 moveto
font14 setfont
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
(Body) show
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
135.5063 178.8089 moveto
135.5063 166.178 moveto
font3 setfont
(END) show
font14 setfont
(.) show
120.45 151.7348 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(8. ) 0 buf
opsaft 0 null put
/totwidth /totwidth try 20.09845 add def
opsbef 1 {20.09845 0.0 rmoveto font0 setfont} put
(Position the mouse just in front of ) 1 buf
opsaft 1 null put
/totwidth /totwidth try 7.026246 add def
font14 setfont
/totwidth /totwidth try 7.026246 add def
font0 setfont
opsbef 2 {
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
font14 setfont
gsave
currentpoint translate
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
font0 setfont} put
(Name) 2 buf
opsaft 2 null put
font14 setfont
/totwidth /totwidth try 7.026246 add def
/totwidth /totwidth try 7.026246 add def
font0 setfont
opsbef 3 {
font14 setfont
gsave
7.026246 0.0 rmoveto
currentpoint translate
-1.0 1.0 matrix scale concat
0.0 setgray
1.00375 -1.254688 moveto
1.00375 8.280937 lineto
6.273437 3.513125 lineto
fill
grestore
7.026246 0.0 rmoveto
font0 setfont} put
( and type the ) 3 buf
opsaft 3 null put
font3 setfont
opsbef 4 {font3 setfont} put
(NEXT) 4 buf
opsaft 4 null put
font0 setfont
opsbef 5 {font0 setfont} put
( key \050remember key) 5 buf
opsaft 5 null put
mixedjustify
grestore
150.5625 139.6898 moveto
font0 setfont
(R15\051. Now type ``HelloWorld'' without the quotes.) show
120.45 125.2467 moveto
font0 setfont
(9.) show
22.60782 0.0 rmoveto
(Type the ) show
font3 setfont
(NEXT ) show
font0 setfont
(key again, and type ``Commander, ) show
font3 setfont
(IO) show
font0 setfont
(''.) show
120.45 110.8035 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(10.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 17.58908 add def
opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
(Delete the ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(EXPORTS) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
( clause since we're not exporting an interface. Hold down the) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 98.75852 moveto
/colwidth 363.395 def
gsave
font3 setfont
opsbef 0 {font3 setfont} put
(CTRL) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( key, position the mouse cursor on the line, and fast double ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(MIDDLE) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(-click to) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 86.71351 moveto
font0 setfont
(delete the line. Release the ) show
font3 setfont
(CTRL) show
font0 setfont
( key.) show
120.45 72.27039 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(11.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 17.58908 add def
opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
(Hit ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(NEXT) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
( and position the cursor at the placeholder labelled ``Body''. Type ``proc'') 3 buf
opsaft 3 null put
mixedjustify
grestore
grestore
grestore
% end page 28
showpage
%%page 29
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.2537 746.79 moveto
(29) show
150.5625 684.9593 moveto
font0 setfont
(and type ) show
font3 setfont
(CTRL) show
font0 setfont
(-e. This expands to a procedure skeleton.) show
120.45 670.3288 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(12.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 17.58908 add def
opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
(Type ``PrintHelloWorld''. This is the name of the procedure. Note that procedure) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 658.2838 moveto
font0 setfont
(names must start with a capital letter.) show
120.45 643.6539 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(13.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 17.58908 add def
font3 setfont
opsbef 1 {17.58908 0.0 rmoveto font3 setfont} put
(MIDDLE) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-click on the word ``) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(PROC) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(''. Then ) 4 buf
opsaft 4 null put
font3 setfont
opsbef 5 {font3 setfont} put
(RIGHT) 5 buf
opsaft 5 null put
font0 setfont
opsbef 6 {font0 setfont} put
(-click, which turns the selected stuff) 6 buf
opsaft 6 null put
mixedjustify
grestore
150.5625 631.6087 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(to reverse video; drag the mouse until you reach the ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(RETURNS) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( clause's right square) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 619.564 moveto
/colwidth 328.3433 def
gsave
font0 setfont
(bracket: ]. This mode is called pending delete. Now type) justify
grestore
150.5625 607.519 moveto
/colwidth 363.395 def
gsave
font0 setfont
(``Commander.CommandProc''. This references the interface contained in the) justify
grestore
150.5625 595.4739 moveto
font0 setfont
(Commander module, in particular, CommandProc.) show
120.45 580.8438 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(14.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 17.58908 add def
opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
(Hit ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(NEXT) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(, which takes you to the body of the procedure. Type the following two) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 568.7988 moveto
font0 setfont
(lines:) show
120.45 554.1688 moveto
135.5063 541.2575 moveto
font3 setfont
(ROPE) show
font14 setfont
(: ) show
font3 setfont
(TYPE) show
font14 setfont
( = Rope.) show
font3 setfont
(ROPE) show
font14 setfont
(; ) show
font12 setfont
21.8328 0.0 rmoveto
135.5063 528.3460 moveto
font3 setfont
(IO) show
font14 setfont
(.PutRope[cmd.out, \042Hello world!\134n\042];) show
135.5063 515.4348 moveto
120.45 500.8046 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(15.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 17.58908 add def
opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
(A curly bracket ``}'' delimits a procedure definition. Position your cursor after the) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 488.7594 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(statement separator semi-colon. Type ) 0 buf
opsaft 0 null put
font3 setfont
opsbef 1 {font3 setfont} put
(CTRL) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(-) 2 buf
opsaft 2 null put
font3 setfont
opsbef 3 {font3 setfont} put
(RETURN) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
( twice, followed by ) 4 buf
opsaft 4 null put
font3 setfont
opsbef 5 {font3 setfont} put
(CTRL) 5 buf
opsaft 5 null put
font0 setfont
opsbef 6 {font0 setfont} put
(-) 6 buf
opsaft 6 null put
font3 setfont
opsbef 7 {font3 setfont} put
(SHIFT) 7 buf
opsaft 7 null put
font0 setfont
opsbef 8 {font0 setfont} put
(-) 8 buf
opsaft 8 null put
mixedjustify
grestore
150.5625 476.7146 moveto
font0 setfont
(n to unnest the node to the same level as the procedure definition.) show
120.45 462.0845 moveto
font0 setfont
(16.) show
17.58908 0.0 rmoveto
(Finally, type the line) show
150.5625 447.4546 moveto
135.5063 434.5429 moveto
font14 setfont
(Commander.Register[key: \042PrintHelloWorld\042, proc: PrintHelloWorld, doc: \042Prints) show
180.675 422.498 moveto
font14 setfont
(Hello world\042];) show
120.45 407.868 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(17.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 17.58908 add def
opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
(Type ) 1 buf
opsaft 1 null put
font3 setfont
opsbef 2 {font3 setfont} put
(CTRL) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(-d. This selects the contents of the viewer. Now type ) 3 buf
opsaft 3 null put
font3 setfont
opsbef 4 {font3 setfont} put
(CTRL) 4 buf
opsaft 4 null put
font0 setfont
opsbef 5 {font0 setfont} put
(-m, which) 5 buf
opsaft 5 null put
mixedjustify
grestore
150.5625 395.8228 moveto
font0 setfont
(invokes the prettyprinter to format Cedar code. ) show
120.45 381.1928 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(18.) 0 buf
opsaft 0 null put
/totwidth /totwidth try 17.58908 add def
opsbef 1 {17.58908 0.0 rmoveto font0 setfont} put
(Click on the ) 1 buf
opsaft 1 null put
font7 setfont
opsbef 2 {
font7 setfont
currentpoint /undery exch def /underx exch def} put
(Save) 2 buf
opsaft 2 {
1.0 setlinewidth
currentpoint currentpoint pop
undery 1.2 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 3 {font0 setfont} put
( button. Notice that your name will appear \050as a nested node\051 just) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 369.1478 moveto
/colwidth 363.395 def
gsave
font0 setfont
(below the commented file name. You are marked as the last person to modify this) justify
grestore
150.5625 357.1028 moveto
font0 setfont
(file.) show
150.5625 342.4727 moveto
110.4125 323.5387 moveto
/colwidth 403.545 def
gsave
font0 setfont
(You have now constructed a legitimate program in Cedar. You may not understand all the) justify
grestore
90.3375 311.4937 moveto
/colwidth 423.62 def
gsave
font0 setfont
(details of the syntax and semantics of the language constructs, but at least you've used Tioga to) justify
grestore
90.3375 299.4487 moveto
gsave
font0 setfont
(construct the program. Try running MakeDo to compile the program; you might even try running) justify
grestore
90.3375 287.4037 moveto
font0 setfont
(it. Good luck!) show
110.4125 268.4697 moveto
/colwidth 403.545 def
gsave
font0 setfont
(The Cedar programming community follows established programming conventions. They) justify
grestore
90.3375 256.4247 moveto
/colwidth 423.62 def
gsave
font0 setfont
(cannot be hard and fast rules, and there can be good and compelling reasons for not following) justify
grestore
90.3375 244.3797 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(some convention in a particular instance. Nevertheless, to the extent that we all ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(usually) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( follow) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 232.3348 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(them, it will help us in reading \050and therefore in modifying\051 one anothers' programs. See ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(Stylizing) 1 buf
opsaft 1 null put
mixedjustify
grestore
90.3375 220.2898 moveto
font1 setfont
(Cedar Programs) show
font0 setfont
( <77>. Here are some of the rules.) show
120.45 205.6597 moveto
font0 setfont
(a.) show
22.91563 0.0 rmoveto
(Capitalize the first letter of a name.) show
120.45 191.0296 moveto
font0 setfont
(b.) show
21.96876 0.0 rmoveto
(Capitalize the first letter of each embedded word.) show
120.45 176.3995 moveto
font0 setfont
(c.) show
23.22344 0.0 rmoveto
(Case shift should be used to distinguish identifiers.) show
120.45 161.7694 moveto
font0 setfont
(d.) show
21.96876 0.0 rmoveto
(All module source file names have the extension ``.mesa'') show
120.45 147.1393 moveto
font0 setfont
(e.) show
22.91563 0.0 rmoveto
(A ) show
font3 setfont
(DEFINITIONS) show
font0 setfont
( source file does not need any standard suffix on its name.) show
120.45 132.5092 moveto
font0 setfont
(f.) show
24.17033 0.0 rmoveto
(A ) show
font3 setfont
(PROGRAM) show
font0 setfont
( or ) show
font3 setfont
(MONITOR) show
font0 setfont
( moduel name should have the suffix ``Impl''.) show
120.45 117.8791 moveto
font0 setfont
(g.) show
22.60782 0.0 rmoveto
(A ) show
font3 setfont
(CONFIGURATION) show
font0 setfont
( file name should have the extension ``.config'') show
120.45 103.249 moveto
110.4125 84.31516 moveto
/colwidth 403.545 def
gsave
font0 setfont
(Prettyprinting Cedar programs. This depends on proper capitalization of keywords \050all) justify
grestore
90.3375 72.27012 moveto
/colwidth 423.62 def
gsave
font0 setfont
(capitals\051, procedure names \050begin with capital\051, and variables \050lower case\051. The following) justify
grestore
grestore
grestore
% end page 29
showpage
%%page 30
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.125 746.79 moveto
(30) show
90.3375 684.9593 moveto
font0 setfont
(operations help you to achieve this:) show
120.45 669.9068 moveto
font3 setfont
(CTRL) show
font0 setfont
(-) show
font3 setfont
(SHIFT) show
font0 setfont
(-c) show
32.06388 0.0 rmoveto
(all capitals) show
120.45 654.8543 moveto
font3 setfont
(CTRL) show
font0 setfont
(-c) show
30.03024 0.0 rmoveto
30.1125 0.0 rmoveto
(all lower case) show
120.45 639.8017 moveto
font3 setfont
(CTRL) show
font0 setfont
(-c-c ) show
19.66153 0.0 rmoveto
30.1125 0.0 rmoveto
(capitalize just the first character) show
120.45 624.7492 moveto
90.3375 574.5692 moveto
font11 setfont
(5. Additional Documentation ) show
90.3375 547.9796 moveto
font12 setfont
(5.1 Cedar Documentation) show
110.4125 521.8896 moveto
font0 setfont
(To view these documents, type Openr ) show
font1 setfont
(name ) show
font0 setfont
(to your commander.) show
110.4125 502.322 moveto
/colwidth 403.545 def
gsave
font0 setfont
(CedarProgramStyle.tioga: Discusses the conventions that have been generally agreed upon by) justify
grestore
90.3375 490.2771 moveto
/colwidth 423.62 def
gsave
font0 setfont
(the Cedar programming community and are approximations to current practice. Consequently,) justify
grestore
90.3375 478.2321 moveto
gsave
font0 setfont
(they cannot be hard and fast rules, and there can be good and compelling reasons for not following) justify
grestore
90.3375 466.1872 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(some convention in a particular instance. Nevertheless, to the extent that we all ) 0 buf
opsaft 0 null put
font1 setfont
opsbef 1 {font1 setfont} put
(usually) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( follow) 2 buf
opsaft 2 null put
mixedjustify
grestore
90.3375 454.1420 moveto
font0 setfont
(them, it will help us in reading \050and therefore in modifying\051 one anothers' programs.) show
110.4125 434.5744 moveto
/colwidth 403.545 def
gsave
font0 setfont
(MimosaDoc.tioga: Mimosa is a reworked version of the ancient Cedar/Mesa compiler. The) justify
grestore
90.3375 422.5296 moveto
/colwidth 423.62 def
gsave
font0 setfont
(intention is to eventually arrive at a compiler base that can have multiple targets. The current) justify
grestore
90.3375 410.4846 moveto
gsave
font0 setfont
(target is restricted to 32-bit words, byte addressing, big-endian bit and byte order \050bit/byte 0 is) justify
grestore
90.3375 398.4396 moveto
gsave
font0 setfont
(most significant within a word\051, and code generation for the C language \050specifically for Sun-3 and) justify
grestore
90.3375 386.3946 moveto
font0 setfont
(Sun-4\051.) show
110.4125 366.8272 moveto
/colwidth 403.545 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(ExperiencesCreatingAPortableCedar) 0 buf
opsaft 0 null put
font7 setfont
opsbef 1 {font7 setfont} put
(.) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(tioga) 2 buf
opsaft 2 null put
opsbef 3 {font0 setfont} put
(: It discusses how Cedar was re-implemented to) 3 buf
opsaft 3 null put
mixedjustify
grestore
90.3375 354.782 moveto
/colwidth 423.62 def
gsave
font0 setfont
(make it portable across many different architectures, in particular, the strategy for the compiler and) justify
grestore
90.3375 342.7372 moveto
gsave
font0 setfont
(runtime, and the manner of making connections to other languages and the UNIX operating) justify
grestore
90.3375 330.6921 moveto
font0 setfont
(system.) show
110.4125 311.1246 moveto
/colwidth 403.545 def
gsave
font0 setfont
(PFSDoc.tioga: Preliminary documentation. Mostly details the latest news. It describes the) justify
grestore
90.3375 299.0796 moveto
/colwidth 423.62 def
gsave
font0 setfont
(standard facilities available for file access from Cedar. These facilities are available through the) justify
grestore
90.3375 287.0346 moveto
font0 setfont
(interfaces PFS and PFSNames. PFS and PFSNames contain facilities of interest to all users. ) show
110.4125 267.4672 moveto
/colwidth 403.545 def
gsave
font0 setfont
(CirioDoc.tioga: Cirio is a debugger intended to support the debugging of systems written in) justify
grestore
90.3375 255.4222 moveto
/colwidth 423.62 def
gsave
font0 setfont
(multiple programming languages and running on multiple target machines. Currently Cirio) justify
grestore
90.3375 243.3772 moveto
gsave
font0 setfont
(understands the Cedar and C programming languages and understands about programs run on D-) justify
grestore
90.3375 231.3322 moveto
gsave
font0 setfont
(machines or in PCR-based systems. The current version is still very much a prototype, with much) justify
grestore
90.3375 219.2872 moveto
font0 setfont
(of its functionality missing.) show
110.4125 199.7198 moveto
/colwidth 403.545 def
gsave
font0 setfont
(RawViewersDoc.tioga: The RawViewersImpl module starts up Viewers using just the low) justify
grestore
90.3375 187.6748 moveto
font0 setfont
(level Sun drivers for the keyboard, mouse, and frame buffers. Useful if you do not wish to use X.) show
110.4125 168.1074 moveto
font0 setfont
(X11ViewersDoc.tioga: Analogous to RawViewersDoc for X11Viewers.) show
110.4125 148.5399 moveto
font0 setfont
(UserProfileDoc.tioga: Tells you how to customize system behavior using the User Profile. ) show
90.3375 98.36 moveto
font11 setfont
(References) show
110.4125 72.27012 moveto
grestore
grestore
% end page 30
showpage
%%page 31
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.132 746.79 moveto
(31) show
110.4125 684.9593 moveto
gsave
font0 setfont
(Reference numbers in [square brackets] are for conventional hardcopy documents. Many of) justify
grestore
90.3375 672.914 moveto
/colwidth 423.62 def
gsave
font0 setfont
(them are Xerox reports published in blue and white covers; the CSL blue-and-whites are available) justify
grestore
90.3375 660.8688 moveto
gsave
font0 setfont
(on bookshelves in the CSL Alcove. Reference numbers in <angle brackets> are for on-line) justify
grestore
90.3375 648.8241 moveto
font0 setfont
(documents. If they are included on the CDROM you can open them with \042openr filename\042.) show
110.4125 623.9041 moveto
120.45 605.2833 moveto
font0 setfont
(<) show
font1 setfont
(n) show
font0 setfont
(>:) show
11.19744 0.0 rmoveto
(The generic form for a reference to an on-line document.) show
120.45 590.678 moveto
font0 setfont
([) show
font1 setfont
(n) show
font0 setfont
(]:) show
15.58937 0.0 rmoveto
(The generic form for a reference to a hardcopy document.) show
120.45 576.0723 moveto
120.45 561.4668 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([1]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 15.99199 add def
font12 setfont
opsbef 1 {15.99199 0.0 rmoveto font12 setfont} put
(Sunset New Western Garden Book.) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( Lane Publishing Company, Menlo Park, CA,) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 549.4217 moveto
/colwidth 363.395 def
gsave
font0 setfont
(1979. The definitive document on Western gardening for non-botanists; 1200 plant) justify
grestore
150.5625 537.3769 moveto
gsave
font0 setfont
(identification drawings; comprehensive Western plant encyclopedia; zoned for all) justify
grestore
150.5625 525.3316 moveto
font0 setfont
(Western climates; plant selection guide in color. ) show
120.45 510.726 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([2]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 15.99199 add def
opsbef 1 {15.99199 0.0 rmoveto font0 setfont} put
(Warnock, John E. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(The Display of Characters Using Gray Level Sample Arrays) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(.) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 498.6809 moveto
font0 setfont
(blue-and-white report CSL-80-6.) show
120.45 484.0755 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([3]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 15.99199 add def
opsbef 1 {15.99199 0.0 rmoveto font0 setfont} put
(Lyon, Richard F. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(The Optical Mouse, and an Architectural Methodology for Smart) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 472.0303 moveto
font12 setfont
(Digital Sensors) show
font0 setfont
(. blue-and-white report VLSI-81-1.) show
120.45 457.4246 moveto
font0 setfont
([4]:) show
15.99199 0.0 rmoveto
font12 setfont
(The Ethernet Local Network: Three Reports) show
font0 setfont
(. blue-and-white report CSL-80-2.) show
120.45 442.819 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([5]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 15.99199 add def
opsbef 1 {15.99199 0.0 rmoveto font0 setfont} put
(Shoch, John F., Yogen K. Dalal, Ronald C. Crane, and David D. Redell. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Evolution) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 430.774 moveto
font12 setfont
(of the Ethernet Local Computer Network) show
font0 setfont
(. blue-and-white report OPD-T8102.) show
120.45 416.1684 moveto
font0 setfont
(<6>:) show
11.60005 0.0 rmoveto
font1 setfont
(no reference) show
font0 setfont
(.) show
120.45 401.5628 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([7]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 15.99199 add def
opsbef 1 {15.99199 0.0 rmoveto font0 setfont} put
(Boggs, David R., John F. Shoch, Edward A. Taft, and Robert M. Metcalfe. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Pup: An) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 389.5178 moveto
font12 setfont
(Internetwork Architecture) show
font0 setfont
(. blue-and-white report CSL-79-10.) show
120.45 374.912 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([8]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 15.99199 add def
font12 setfont
opsbef 1 {15.99199 0.0 rmoveto font12 setfont} put
(Internet Transport Protocols) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. Xerox System Integration Standard report XSIS) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 362.867 moveto
font0 setfont
(028112, December 1981.) show
120.45 348.2614 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([9]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 15.99199 add def
font12 setfont
opsbef 1 {15.99199 0.0 rmoveto font12 setfont} put
(Courier: The Remote Procedure Call Protocol) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. Xerox System Integration Standard) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 336.2164 moveto
font0 setfont
(report XSIS 038112, December 1981.) show
120.45 321.6107 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([10]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
( Thacker, Charles P., Edward M. McCreight, Butler. W. Lampson, Robert F.) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 309.5658 moveto
/colwidth 363.3949 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Sproull, and David R. Boggs. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(Alto: A personal computer) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. blue-and-white report) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 297.5206 moveto
font0 setfont
(CSL-79-11.) show
120.45 282.915 moveto
/colwidth 393.5075 def
gsave
font0 setfont
(<11>: [Indigo]<AltoDocs>AltoHardware.press. Everything that you need to know to write) justify
grestore
150.5625 270.8701 moveto
font0 setfont
(your own Alto microcode.) show
120.45 256.2644 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([12]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
font12 setfont
opsbef 1 {10.97325 0.0 rmoveto font12 setfont} put
(The Dorado: A High-Performance Personal Computer; Three Papers.) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
( blue-and-) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 244.2194 moveto
font0 setfont
(white report CSL-81-1.) show
120.45 229.6136 moveto
gsave
font0 setfont
currentpoint /undery exch def /underx exch def
(<13>: [Indigo]<DoradoDocs>DoradoBooting.press. Describes how to boot a Dorado, and) justify
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
grestore
150.5625 217.5686 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(how to configure it to boot in various ways.) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
120.45 202.963 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([14]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
(Myer, T. H. and Barnaby, J. R. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(TENEX Executive Language Manual for Users.) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 190.918 moveto
/colwidth 363.395 def
gsave
font0 setfont
(Available from Arpa Network Information Center as NIC 16874, but in the) justify
grestore
150.5625 178.873 moveto
font0 setfont
(relatively unlikely event that you need one, borrow one from a Tenex wizard.) show
120.45 164.2673 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<15>: ) 0 buf
opsaft 0 null put
opsbef 1 {
currentpoint /undery exch def /underx exch def
font0 setfont} put
([Indigo]<AltoDocs>BCPL.press) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
opsbef 2 {font0 setfont} put
( The reference manual for the BCPL programming) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 152.2224 moveto
font0 setfont
(language.) show
120.45 137.6167 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<16>: ) 0 buf
opsaft 0 null put
opsbef 1 {
currentpoint /undery exch def /underx exch def
font0 setfont} put
([Indigo]<AltoDocs>OS.press) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
opsbef 2 {font0 setfont} put
(. The programmer's reference manual for the Alto) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 125.5716 moveto
/colwidth 363.395 def
gsave
font0 setfont
(Operating System, including detailed information on the services provided and the) justify
grestore
150.5625 113.5266 moveto
font0 setfont
(interface requirements.) show
120.45 98.921 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<17>: ) 0 buf
opsaft 0 null put
opsbef 1 {
currentpoint /undery exch def /underx exch def
font0 setfont} put
([Indigo]<AltoDocs>Packages.press) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
opsbef 2 {font0 setfont} put
(. A catalogue giving documentation for the various) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 86.87597 moveto
font0 setfont
(BCPL packages that other hacker's have made available.) show
120.45 72.27031 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([18]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
font12 setfont
opsbef 1 {10.97325 0.0 rmoveto font12 setfont} put
(Mesa Language Manual, Version 11.0) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(, March 1984. Published by the Systems) 2 buf
opsaft 2 null put
mixedjustify
grestore
grestore
grestore
% end page 31
showpage
%%page 32
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.2037 746.79 moveto
(32) show
150.5625 684.9593 moveto
font0 setfont
(Development Department of ) show
font12 setfont
(OSD) show
font0 setfont
(.) show
120.45 669.9697 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([19]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
(James G. Mitchell, William Maybury, and Richard Sweet. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Mesa Language Manual,) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 657.9245 moveto
/colwidth 363.395 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(Version 5.0.) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
( blue-and-white report CSL-79-3. A cross between a tutorial and a) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 645.8797 moveto
font0 setfont
(reference manual, though much closer to the latter than the former.) show
120.45 630.8904 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([20]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
(Morris, J. H. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(The Elements of Mesa Style.) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
( Xerox PARC Internal Report, June) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 618.8453 moveto
/colwidth 363.395 def
gsave
font0 setfont
(1976. Somewhat out of date \050since Mesa has changed under it\051, but a readable) justify
grestore
150.5625 606.8004 moveto
font0 setfont
(introduction to some useful program structuring techniques in Mesa.) show
120.45 591.8111 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([21]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
(Goldberg, Adele and David Robson. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Smalltalk-80: The Language and Its) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 579.766 moveto
font12 setfont
(Implementation) show
font0 setfont
(. book published by Addison-Wesley, 1983. ) show
120.45 564.7768 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([22]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
( ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Interlisp Reference Manual) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(. Published in a blue and white cover, although not) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 552.7316 moveto
font0 setfont
(officially a blue-and-white. October, 1983.) show
120.45 537.7425 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([23]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
(The Interlisp-D Group. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Papers on Interlisp-D) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
(. blue-and-white report CIS-5 \050also) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 525.6976 moveto
font0 setfont
(given the number SSL-80-4\051, Revised version, July 1981.) show
120.45 510.7084 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([24]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
(Deutsch, L. Peter, and Edward A. Taft, editors. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Requirements for an Experimental) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 498.6631 moveto
font12 setfont
(Programming Environment) show
font0 setfont
(. blue-and-white report CSL-80-10.) show
120.45 483.6739 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<25>: ) 0 buf
opsaft 0 null put
opsbef 1 {
currentpoint /undery exch def /underx exch def
font0 setfont} put
([CedarChest7.0]<Top>Documentation.df) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
opsbef 2 {font0 setfont} put
(. Hardcopies are entitled ) 2 buf
opsaft 2 null put
font12 setfont
opsbef 3 {font12 setfont} put
(The Cedar) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 471.6289 moveto
font12 setfont
(Manual) show
font0 setfont
(.) show
120.45 456.6396 moveto
/colwidth 393.5077 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([26]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
font12 setfont
opsbef 1 {10.97325 0.0 rmoveto font12 setfont} put
(Alto User's Handbook) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. Internal report, published in a black cover. The version of) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 444.5946 moveto
/colwidth 363.395 def
gsave
font0 setfont
(September, 1979 is identical to the version of November, 1978 except for the date on) justify
grestore
150.5625 432.5494 moveto
gsave
font0 setfont
(the cover and title page. Includes sections on Bravo, Laurel, FTP, Draw, Markup,) justify
grestore
150.5625 420.5045 moveto
font0 setfont
(and Neptune) show
120.45 405.5152 moveto
/colwidth 386.8824 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<27>: ) 0 buf
opsaft 0 null put
opsbef 1 {
currentpoint /undery exch def /underx exch def
font0 setfont} put
([Indigo]<AltoDocs>SubSystems.press) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
opsbef 2 {font0 setfont} put
(. Documentation on individual Alto) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 393.4701 moveto
/colwidth 363.395 def
gsave
font0 setfont
(subsystems, collected in a single file. Individual systems are documented on) justify
grestore
150.5625 381.4252 moveto
gsave
font0 setfont
([Indigo]<AltoDocs>systemname.TTY, and these files are sometimes more recent) justify
grestore
150.5625 369.38 moveto
font0 setfont
(than SubSystems.press.) show
120.45 354.3908 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([28]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
(Jerome, Suzan. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Bravo Course Outline.) 2 buf
opsaft 2 null put
font0 setfont
opsbef 3 {font0 setfont} put
( Internal report, published in a red cover.) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 342.3458 moveto
font0 setfont
(Oriented to non-programmers.) show
120.45 327.3564 moveto
font0 setfont
(<29>: ) show
font12 setfont
(The Tioga editor) show
font0 setfont
(. [Cedar10.1]<Tioga>TiogaDoc.tioga. ) show
120.45 312.3671 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(<30>: [Indigo]<PrintingDocs>PressFormat.press. Describes the Press print file format.) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
120.45 297.3778 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(<31>: [Indigo]<PrintingDocs>PressOps.press. Describes the Press printing program.) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
120.45 282.3885 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(<32>: [Indigo]<PrintingDocs>PDPrintOps.press. Describes the PDPrint printing program.) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
120.45 267.3992 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([33]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
(Birrell, Andrew D., Roy Levin, Roger M. Needham, and Michael D. Schroeder.) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 255.3542 moveto
font12 setfont
(Grapevine: Two Papers and a Report.) show
font0 setfont
( blue-and-white report CSL-83-12.) show
120.45 240.3648 moveto
gsave
font0 setfont
currentpoint /undery exch def /underx exch def
(<34>: [Ivy]<Laurel>Maintain.press. Documentation for the teletype version of Maintain,) justify
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
grestore
150.5625 228.3199 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(the version that is used from within Laurel or Tajo.) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
120.45 213.3305 moveto
font0 setfont
([35]:) show
10.97325 0.0 rmoveto
(Brotz, Douglas K. ) show
font12 setfont
(The Laurel Manual.) show
font0 setfont
( blue-and-white report CSL-81-6.) show
120.45 198.3412 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([36]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
(Schimidt, Eric Emerson. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Controlling Large Software Development in a Distributed) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 186.2962 moveto
font12 setfont
(Environment.) show
font0 setfont
( blue-and-white report CSL-82-7.) show
120.45 171.3069 moveto
font0 setfont
(<37>: [Cedar10.1]<DF>DFDoc.tioga. The reference manual for the use of DF files.) show
120.45 156.3175 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(<38>: [CedarChest7.0]<Documentation>CSL-NotebookDoc.tioga) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
150.5625 141.3282 moveto
font1 setfont
currentpoint /undery exch def /underx exch def
(also stored as ) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
font0 setfont
currentpoint /undery exch def /underx exch def
([Indigo]<CSL-Notebook>Docs>CSL-NotebookDoc.tioga) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
120.45 126.3388 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(<39>: [CedarChest7.0]<Documentation>HowToUseAPublicCedarMachine.tioga. ) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
120.45 111.3495 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([40]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
( Teitelman, Warren. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(The Cedar Programming Environment: A Midterm Report and) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 99.30454 moveto
font12 setfont
(Examination.) show
font0 setfont
( blue-and-white report CSL-83-11.) show
120.45 84.31521 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([41]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
(Brown, Mark R., Karen Kolling, and Edward A. Taft. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(The Alpine File System.) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 72.2702 moveto
font0 setfont
(blue-and-white report CSL-84-4.) show
grestore
grestore
% end page 32
showpage
%%page 33
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.5062 746.79 moveto
(33) show
120.45 684.9593 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([<42>]: Swinehart, Daniel, Polle Zellweger, Rick Beach, Robert Hagmann. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(A Structural) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 672.914 moveto
font12 setfont
(View of the Cedar Programming Environment.) show
font0 setfont
( blue-and-white report CSL-86-1.) show
150.5625 658.4324 moveto
font1 setfont
(available online as) show
font0 setfont
( [CedarChest7.0]<Documentation>StructureOfCedar.tioga.) show
120.45 643.9508 moveto
font0 setfont
(<43>: Hagmann, Robert B. ) show
font12 setfont
(A Labelless File System For Cedar.) show
150.5625 629.4687 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
([Indigo]<CSL-Notebook>Docs>86CSLN-0047.press) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
120.45 614.9872 moveto
font0 setfont
(<44>: Arnon, Dennis, and Carl Waldspurger. ) show
font12 setfont
(CaminoReal.) show
150.5625 600.5056 moveto
font0 setfont
([CedarChest7.0]<Documentation>CaminoRealDoc.tioga. ) show
120.45 586.0238 moveto
font0 setfont
([45]:) show
10.97325 0.0 rmoveto
( Bier, Eric and Ken Pier. ) show
font12 setfont
(The Gargoyle Reference Manual.) show
150.5625 571.5424 moveto
font0 setfont
([CedarChest7.0]<Documentation>GargoyleDoc.tioga. ) show
120.45 557.0605 moveto
font0 setfont
(<46>: Bier, Eric and Ken Pier. ) show
font12 setfont
(Gargoyle Tutorial.) show
150.5625 542.5789 moveto
font0 setfont
([CedarChest7.0]<Documentation>GargoyleTutorialDoc.tioga. ) show
120.45 528.0972 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([47]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
( Ades, Stephen, and Daniel Swinehart. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Voice Annotation and Editing in a) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 516.052 moveto
font12 setfont
(Workstation Environment.) show
font0 setfont
( blue-and-white report CSL-86-3.) show
120.45 501.5704 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([48]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
( Donahue, James, and Willie-Sue Orr. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(Walnut: Storing Electronic Mail in a) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 489.5254 moveto
font12 setfont
(Database.) show
font0 setfont
( blue-and-white report CSL-85-9.) show
120.45 475.0438 moveto
font0 setfont
(<49>: Kent, Jack, and Doug Terry. ) show
font12 setfont
(Wallaby.) show
150.5625 460.562 moveto
font0 setfont
([CedarChest7.0]<Documentation>WallabyDoc.tioga. ) show
120.45 446.0804 moveto
font0 setfont
(<50>: Frailong, Jean-Marc. ) show
font12 setfont
(XTSetter.) show
150.5625 431.5986 moveto
font0 setfont
([Cedar10.1]<XTSetter>XTSetterDoc.tioga. ) show
120.45 417.1169 moveto
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([51]:) 0 buf
opsaft 0 null put
/totwidth /totwidth try 10.97325 add def
opsbef 1 {10.97325 0.0 rmoveto font0 setfont} put
( Bhushan, Abbay, and Michael Plass. ) 1 buf
opsaft 1 null put
font12 setfont
opsbef 2 {font12 setfont} put
(The Interpress Page and Document) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 405.072 moveto
font12 setfont
(Description Language.) show
font0 setfont
( IEEE Computer, Vol 19, Number 6, June 1986, pp. 72-77.) show
120.45 390.5901 moveto
gsave
font0 setfont
([<52>]: Atkinson, Russ, Alan Demers, Carl Hauser, Christian Jacobi, Peter Kessler, and) justify
grestore
150.5625 378.5454 moveto
/colwidth 363.395 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(Mark Weiser. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(Experiences Creating a Portable Cedar) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. Proceedings of the) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 366.5002 moveto
gsave
font0 setfont
(SIGPLAN '89 conference on Programming Language Design and Implmentation,) justify
grestore
150.5625 354.4553 moveto
font0 setfont
(held in Portland, Oregon, June 21-23, 1989, pp. 322-329. ) show
150.5625 339.9735 moveto
/colwidth 92.08938 def
gsave
font1 setfont
(available online as) justify
grestore
180.675 327.9286 moveto
font0 setfont
([PCedar2.0]<Documentation>ExperiencesCreatingAPortableCedar) show
font7 setfont
(.) show
font0 setfont
(tioga) show
120.45 313.4468 moveto
font0 setfont
(<53>: Hauser, Carl. ) show
font12 setfont
(PFS.) show
font0 setfont
( [Cedar10.1]<PFS>PFSDoc.tioga) show
120.45 298.9651 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<54>: Sturgis, Howard, and Marvin Theimer. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(The Cirio Debugger: a multi-language, multi-) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 286.9201 moveto
font12 setfont
(target-world debugger.) show
font0 setfont
( [PCedar2.0]<Documentation>CirioDoc.tioga) show
120.45 272.4384 moveto
/colwidth 351.0816 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<55>: Pier, Ken. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(Life On SPARCstation) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. Available on-line as) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 260.3934 moveto
font0 setfont
([Cedar10.1]<CedarDoc>LifeOnSPARCstation.tioga) show
120.45 245.9118 moveto
/colwidth 381.1357 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<56>: Pelegri-Llopart, Eduardo. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(Life in PCedar) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. Available on-line as) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 233.8668 moveto
font0 setfont
([PCedar2.0]<OldDocumentation>LifeInPCedar.tioga) show
120.45 219.385 moveto
font0 setfont
(<57>: ) show
font12 setfont
(Cedar Language Overview) show
font0 setfont
(. [Cedar10.1]<CedarDoc>LanguageOverviewDoc.tioga) show
120.45 204.9034 moveto
/colwidth 198.8525 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<58>: ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(Cedar/Mesa Language Changes) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(.) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 192.8584 moveto
font0 setfont
([Cedar10.1]<MimosaOnly>LanguageChangesSummary.tioga) show
120.45 178.3766 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<59>: Johnson, Sharon, and John Larson. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(Hitchhikers Guide to External Mail: Using the) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 166.3316 moveto
/colwidth 190.4389 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(PARC ARPA Internet Mail Gateway) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(.) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 154.2867 moveto
font0 setfont
([CedarChest7.0]<Documentation>ExternalMail.tioga) show
120.45 139.805 moveto
font0 setfont
(<60>: ) show
font12 setfont
(Peanut) show
font0 setfont
(. [PCedar2.0]<Documentation>PeanutDoc.tioga) show
120.45 125.3233 moveto
font0 setfont
(<61>: ) show
font12 setfont
(BlackCherry) show
font0 setfont
(. [PCedar2.0]<Documentation>BlackCherryDoc.tioga) show
120.45 110.8416 moveto
/colwidth 372.6442 def
gsave
font0 setfont
opsbef 0 {
font0 setfont
currentpoint /undery exch def /underx exch def} put
(<62>: Tammer, Laine. ) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
font12 setfont
opsbef 1 {
font12 setfont
currentpoint /undery exch def /underx exch def} put
(Doggy-Paddling in PCedar) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 2 {
font0 setfont
currentpoint /undery exch def /underx exch def} put
(. /Indigo/CSL-) 2 buf
opsaft 2 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
mixedjustify
grestore
150.5625 98.7966 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(Notebook/Entries/90CSLN-0003/IntroPCedarUse.tioga) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
120.45 84.31496 moveto
/colwidth 370.165 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<63>: Tammer, Laine. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(Tioga Editing in PCedar) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. /Indigo/CSL-) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 72.26993 moveto
font0 setfont
(Notebook/Entries/90CSLN-0003/TiogaEditingInPCedar.tioga) show
grestore
grestore
% end page 33
showpage
%%page 34
gsave
2834.646 2834.646 scale
gsave
0.0254 dup matrix scale concat
0.013837 dup matrix scale concat
282.1476 38.135 moveto
font3 setfont
(CEDAR 10.1 ) show
font0 setfont
514.0624 746.79 moveto
(34) show
120.45 684.9593 moveto
/colwidth 354.1319 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<64>: Tammer, Laine. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(Using the Commander) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(. /Indigo/CSL-) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 672.914 moveto
font0 setfont
(Notebook/Entries/90CSLN-0003/UsingTheCommander.tioga) show
120.45 658.6269 moveto
font0 setfont
(<65>: ) show
font12 setfont
(Introduction to Cedar) show
font0 setfont
(. /CedarChest7.0/Documentation/Introduction.tioga) show
120.45 644.3396 moveto
/colwidth 331.6267 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<66>: Jacobi, Christian) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
(. The X Window System Version 11) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(.) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 632.2948 moveto
font0 setfont
(/Cedar10.1/X11/X11Doc.tioga and /Cedar10.1/X11Viewers/X11ViewersDoc.tioga) show
120.45 618.0076 moveto
font0 setfont
(<67>: ) show
font12 setfont
( Cedar Document Style) show
font0 setfont
(. /CedarChest7.0/Documentation/SampleSheet.tioga) show
120.45 603.7203 moveto
/colwidth 365.8182 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<68>: Plass, Michael, et al. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
( RawViewers: PCedar Viewers without X) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(.) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 591.6754 moveto
font0 setfont
(/Cedar10.1/RawViewers/RawViewersDoc.tioga) show
120.45 577.388 moveto
font0 setfont
(<69>: Atkinson, Russ, et al. ) show
font12 setfont
( PCRDOC: Portable Common Runtime) show
font0 setfont
(. ) show
120.45 563.1011 moveto
/colwidth 241.2686 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<70>: Plass, Michael. ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
( The Cedar Commander) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(.) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 551.0561 moveto
font0 setfont
(/Cedar10.1/Commander/CommanderDoc.tioga) show
120.45 536.7688 moveto
/colwidth 393.5075 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
([71]: ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
( ) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(Weiser, Mark, Alan Demers, and Carl Hauser. ) 2 buf
opsaft 2 null put
font12 setfont
opsbef 3 {font12 setfont} put
(The Portable Common Runtime) 3 buf
opsaft 3 null put
mixedjustify
grestore
150.5625 524.7238 moveto
/colwidth 363.395 def
gsave
font12 setfont
opsbef 0 {font12 setfont} put
(Approach to Interoperability) 0 buf
opsaft 0 null put
font0 setfont
opsbef 1 {font0 setfont} put
(. Proceedings of the 12th ACM Symposium on) 1 buf
opsaft 1 null put
mixedjustify
grestore
150.5625 512.6788 moveto
/colwidth 363.395 def
gsave
font0 setfont
(Operating Systems Principles, pp. 114-122. Special issue of SIGOPS Operating) justify
grestore
150.5625 500.6338 moveto
font0 setfont
(Systems Review, volume 23, number 5.) show
120.45 486.3467 moveto
/colwidth 369.2985 def
gsave
font0 setfont
opsbef 0 {
font0 setfont
currentpoint /undery exch def /underx exch def} put
(<72>: Pelegri-Llopart, Eduardo, and Ken Pier. ) 0 buf
opsaft 0 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
font12 setfont
opsbef 1 {
font12 setfont
currentpoint /undery exch def /underx exch def} put
( DF Suites in PCedar) 1 buf
opsaft 1 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
font0 setfont
opsbef 2 {
font0 setfont
currentpoint /undery exch def /underx exch def} put
(.) 2 buf
opsaft 2 {
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto} put
mixedjustify
grestore
150.5625 474.3019 moveto
font0 setfont
currentpoint /undery exch def /underx exch def
(/PCedar2.0/Documentation/DFSuitesDoc.tioga) show
1.0 setlinewidth
currentpoint currentpoint pop
undery -2.3 sub dup underx exch
vec moveto
120.45 460.0147 moveto
/colwidth 337.8231 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<73>: ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
( A Glossary of Terms, Subsystems, Directories, and Files) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(.) 2 buf
opsaft 2 null put
mixedjustify
grestore
150.5625 447.9697 moveto
font0 setfont
(/Cedar7.0/Documentation/Glossary.tioga) show
120.45 433.6825 moveto
font0 setfont
(<74>: ) show
font12 setfont
( ) show
font0 setfont
(Irish, Wesley.) show
font12 setfont
( Maintain) show
font0 setfont
(. /Cedar10.1/Maintain/MaintainDoc.tioga) show
120.45 419.3954 moveto
font0 setfont
(<75>: ) show
font12 setfont
( ) show
font0 setfont
(Spreitzer, Mike.) show
font12 setfont
( MakeDo) show
font0 setfont
(. /Cedar10.1/MakeDo/MakeDoDoc.tioga) show
120.45 405.1081 moveto
/colwidth 209.0071 def
gsave
font0 setfont
opsbef 0 {font0 setfont} put
(<76>: ) 0 buf
opsaft 0 null put
font12 setfont
opsbef 1 {font12 setfont} put
( ) 1 buf
opsaft 1 null put
font0 setfont
opsbef 2 {font0 setfont} put
(Nichols, David.) 2 buf
opsaft 2 null put
font12 setfont
opsbef 3 {font12 setfont} put
( Cedar Essentials) 3 buf
opsaft 3 null put
font0 setfont
opsbef 4 {font0 setfont} put
(.) 4 buf
opsaft 4 null put
mixedjustify
grestore
150.5625 393.0632 moveto
font0 setfont
(/PCedar2.0/Documentation/CedarEssentials.tioga) show
120.45 378.7759 moveto
font0 setfont
(<77>: ) show
font12 setfont
( Stylizing Cedar Programs) show
font0 setfont
(. /Cedar10.1/CedarDoc/CedarProgramStyle.tioga) show
120.45 364.4889 moveto
grestore
grestore
% end page 34
showpage
%%Trailer
%%Pages: 34