File data structure p egrep c bitmap display g command interpreter s command language s current file s current text s current window s cut-and-paste editor g file name s garbage-compacted arena garbage-compacting allocator global substitutes s interactive editing s interactive editor g main memory s menu line s modified bit s mouse cursor s mouse language mouse-based interface s multiple lines s multiple windows s newline character s null string s obscured windows s open files s parse tree s programmable editor g real time s relative addresses s remote host s snarf S starting sam s snarf buffer S <mux> S double clicking s update algorithm s updated windows s virtual memory s window system CW write S caches s CW new S < S > S | S -d S sam window S $ S b S Bitmap S Boxes s d S ed c CW execute S Flayer software p Frame software p Layers software f List structure p Rasp S awk c bitblt c CW c S C subroutine C source C language .c x coordinates CW close S cmdexec S compile S cut S d S e S f S a/ S i/ S c/ S x/ S y/ S g/ S v/ S s/ S frdelete S frinsert S g S grep c CW i S CW look S m S mux c n S p S paste S pi C q S reshape S s S sed C setjmp/longjmp S t S u S v S vi S w S r S x S xerox S y S Text Editor Sam g Command Language s Structural Regular Expressions Multiple files s Mouse Interface NH The Implementation s Parsing and execution s regular expression Memory allocation Data structures for manipulating files s Doing and undoing s 2 Communications s Data structures in the terminal s Screen update s 5620 g Blit g undo s ~undone ~undoing ~cut-and-paste Text commands s Display commands s File commands s I/O commands s Loops and conditionals s Miscellany s ~next x compound address s addresses s relative addresses s ~the a comma s ~command