1*0Sstevel@tonic-gate%A L. P. Deutsch 2*0Sstevel@tonic-gate%A B. W. Lampson 3*0Sstevel@tonic-gate%T An online editor 4*0Sstevel@tonic-gate%J Comm. Assoc. Comp. Mach. 5*0Sstevel@tonic-gate%V 10 6*0Sstevel@tonic-gate%N 12 7*0Sstevel@tonic-gate%D December 1967 8*0Sstevel@tonic-gate%P 793-799, 803 9*0Sstevel@tonic-gate%K qed 10*0Sstevel@tonic-gate 11*0Sstevel@tonic-gate.[ 12*0Sstevel@tonic-gate%r 17 13*0Sstevel@tonic-gate%K cstr 14*0Sstevel@tonic-gate%R Comp. Sci. Tech. Rep. No. 17 15*0Sstevel@tonic-gate%I Bell Laboratories 16*0Sstevel@tonic-gate%C Murray Hill, New Jersey 17*0Sstevel@tonic-gate%A B. W. Kernighan 18*0Sstevel@tonic-gate%A L. L. Cherry 19*0Sstevel@tonic-gate%T A System for Typesetting Mathematics 20*0Sstevel@tonic-gate%d May 1974, revised April 1977 21*0Sstevel@tonic-gate%J Comm. Assoc. Comp. Mach. 22*0Sstevel@tonic-gate%K acm cacm 23*0Sstevel@tonic-gate%V 18 24*0Sstevel@tonic-gate%P 151-157 25*0Sstevel@tonic-gate%D March 1975 26*0Sstevel@tonic-gate.] 27*0Sstevel@tonic-gate 28*0Sstevel@tonic-gate%T U\s-2NIX\s0 Time-Sharing System: Document Preparation 29*0Sstevel@tonic-gate%K unix bstj 30*0Sstevel@tonic-gate%A B. W. Kernighan 31*0Sstevel@tonic-gate%A M. E. Lesk 32*0Sstevel@tonic-gate%A J. F. Ossanna 33*0Sstevel@tonic-gate%J Bell Sys. Tech. J. 34*0Sstevel@tonic-gate%V 57 35*0Sstevel@tonic-gate%N 6 36*0Sstevel@tonic-gate%P 2115-2135 37*0Sstevel@tonic-gate%D 1978 38*0Sstevel@tonic-gate 39*0Sstevel@tonic-gate%A T. A. Dolotta 40*0Sstevel@tonic-gate%A J. R. Mashey 41*0Sstevel@tonic-gate%T An Introduction to the Programmer's Workbench 42*0Sstevel@tonic-gate%J Proc. 2nd Int. Conf. on Software Engineering 43*0Sstevel@tonic-gate%D October 13-15, 1976 44*0Sstevel@tonic-gate%P 164-168 45*0Sstevel@tonic-gate 46*0Sstevel@tonic-gate%T U\s-2NIX\s0 Time-Sharing System: The Programmer's Workbench 47*0Sstevel@tonic-gate%A T. A. Dolotta 48*0Sstevel@tonic-gate%A R. C. Haight 49*0Sstevel@tonic-gate%A J. R. Mashey 50*0Sstevel@tonic-gate%J Bell Sys. Tech. J. 51*0Sstevel@tonic-gate%V 57 52*0Sstevel@tonic-gate%N 6 53*0Sstevel@tonic-gate%P 2177-2200 54*0Sstevel@tonic-gate%D 1978 55*0Sstevel@tonic-gate%K unix bstj 56*0Sstevel@tonic-gate 57*0Sstevel@tonic-gate%T U\s-2NIX\s0 Time-Sharing System: U\s-2NIX\s0 on a Microprocessor 58*0Sstevel@tonic-gate%K unix bstj 59*0Sstevel@tonic-gate%A H. Lycklama 60*0Sstevel@tonic-gate%J Bell Sys. Tech. J. 61*0Sstevel@tonic-gate%V 57 62*0Sstevel@tonic-gate%N 6 63*0Sstevel@tonic-gate%P 2087-2101 64*0Sstevel@tonic-gate%D 1978 65*0Sstevel@tonic-gate 66*0Sstevel@tonic-gate%T The C Programming Language 67*0Sstevel@tonic-gate%A B. W. Kernighan 68*0Sstevel@tonic-gate%A D. M. Ritchie 69*0Sstevel@tonic-gate%I Prentice-Hall 70*0Sstevel@tonic-gate%C Englewood Cliffs, New Jersey 71*0Sstevel@tonic-gate%D 1978 72*0Sstevel@tonic-gate 73*0Sstevel@tonic-gate%T Computer Recreations 74*0Sstevel@tonic-gate%A Aleph-null 75*0Sstevel@tonic-gate%J Software Practice and Experience 76*0Sstevel@tonic-gate%V 1 77*0Sstevel@tonic-gate%N 2 78*0Sstevel@tonic-gate%D April-June 1971 79*0Sstevel@tonic-gate%P 201-204 80*0Sstevel@tonic-gate 81*0Sstevel@tonic-gate%T U\s-2NIX\s0 Time-Sharing System: The U\s-2NIX\s0 Shell 82*0Sstevel@tonic-gate%A S. R. Bourne 83*0Sstevel@tonic-gate%K unix bstj 84*0Sstevel@tonic-gate%J Bell Sys. Tech. J. 85*0Sstevel@tonic-gate%V 57 86*0Sstevel@tonic-gate%N 6 87*0Sstevel@tonic-gate%P 1971-1990 88*0Sstevel@tonic-gate%D 1978 89*0Sstevel@tonic-gate 90*0Sstevel@tonic-gate%A L. P. Deutsch 91*0Sstevel@tonic-gate%A B. W. Lampson 92*0Sstevel@tonic-gate%T \*sSDS\*n 930 time-sharing system preliminary reference manual 93*0Sstevel@tonic-gate%R Doc. 30.10.10, Project \*sGENIE\*n 94*0Sstevel@tonic-gate%C Univ. Cal. at Berkeley 95*0Sstevel@tonic-gate%D April 1965 96*0Sstevel@tonic-gate 97*0Sstevel@tonic-gate%A R. J. Feiertag 98*0Sstevel@tonic-gate%A E. I. Organick 99*0Sstevel@tonic-gate%T The Multics input-output system 100*0Sstevel@tonic-gate%J Proc. Third Symposium on Operating Systems Principles 101*0Sstevel@tonic-gate%D October 18-20, 1971 102*0Sstevel@tonic-gate%P 35-41 103*0Sstevel@tonic-gate 104*0Sstevel@tonic-gate%A D. G. Bobrow 105*0Sstevel@tonic-gate%A J. D. Burchfiel 106*0Sstevel@tonic-gate%A D. L. Murphy 107*0Sstevel@tonic-gate%A R. S. Tomlinson 108*0Sstevel@tonic-gate%T \*sTENEX\*n, a Paged Time Sharing System for the \*sPDP\*n-10 109*0Sstevel@tonic-gate%J Comm. Assoc. Comp. Mach. 110*0Sstevel@tonic-gate%V 15 111*0Sstevel@tonic-gate%N 3 112*0Sstevel@tonic-gate%D March 1972 113*0Sstevel@tonic-gate%K tenex 114*0Sstevel@tonic-gate%P 135-143 115*0Sstevel@tonic-gate 116*0Sstevel@tonic-gate%A R. E. Griswold 117*0Sstevel@tonic-gate%A D. R. Hanson 118*0Sstevel@tonic-gate%T An Overview of SL5 119*0Sstevel@tonic-gate%J SIGPLAN Notices 120*0Sstevel@tonic-gate%V 12 121*0Sstevel@tonic-gate%N 4 122*0Sstevel@tonic-gate%D April 1977 123*0Sstevel@tonic-gate%P 40-50 124*0Sstevel@tonic-gate 125*0Sstevel@tonic-gate%A E. W. Dijkstra 126*0Sstevel@tonic-gate%T Cooperating Sequential Processes 127*0Sstevel@tonic-gate%B Programming Languages 128*0Sstevel@tonic-gate%E F. Genuys 129*0Sstevel@tonic-gate%I Academic Press 130*0Sstevel@tonic-gate%C New York 131*0Sstevel@tonic-gate%D 1968 132*0Sstevel@tonic-gate%P 43-112 133*0Sstevel@tonic-gate 134*0Sstevel@tonic-gate%A J. A. Hawley 135*0Sstevel@tonic-gate%A W. B. Meyer 136*0Sstevel@tonic-gate%T M\s-2UNIX\s0, A Multiprocessing Version of U\s-2NIX\s0 137*0Sstevel@tonic-gate%K munix unix 138*0Sstevel@tonic-gate%R M.S. Thesis 139*0Sstevel@tonic-gate%I Naval Postgraduate School 140*0Sstevel@tonic-gate%C Monterey, Cal. 141*0Sstevel@tonic-gate%D 1975 142*0Sstevel@tonic-gate 143*0Sstevel@tonic-gate%T The U\s-2NIX\s0 Time-Sharing System 144*0Sstevel@tonic-gate%K unix bstj 145*0Sstevel@tonic-gate%A D. M. Ritchie 146*0Sstevel@tonic-gate%A K. Thompson 147*0Sstevel@tonic-gate%J Bell Sys. Tech. J. 148*0Sstevel@tonic-gate%V 57 149*0Sstevel@tonic-gate%N 6 150*0Sstevel@tonic-gate%P 1905-1929 151*0Sstevel@tonic-gate%D 1978 152*0Sstevel@tonic-gate 153*0Sstevel@tonic-gate%A E. I. Organick 154*0Sstevel@tonic-gate%T The M\s-2ULTICS\s0 System 155*0Sstevel@tonic-gate%K multics 156*0Sstevel@tonic-gate%I M.I.T. Press 157*0Sstevel@tonic-gate%C Cambridge, Mass. 158*0Sstevel@tonic-gate%D 1972 159*0Sstevel@tonic-gate 160*0Sstevel@tonic-gate%T UNIX for Beginners 161*0Sstevel@tonic-gate%A B. W. Kernighan 162*0Sstevel@tonic-gate%D 1978 163*0Sstevel@tonic-gate 164*0Sstevel@tonic-gate%T U\s-2NIX\s0 Programmer's Man\&ual 165*0Sstevel@tonic-gate%A K. Thompson 166*0Sstevel@tonic-gate%A D. M. Ritchie 167*0Sstevel@tonic-gate%K unix 168*0Sstevel@tonic-gate%I Bell Laboratories 169*0Sstevel@tonic-gate%O Seventh Edition. 170*0Sstevel@tonic-gate%D 1978 171*0Sstevel@tonic-gate 172*0Sstevel@tonic-gate%A K. Thompson 173*0Sstevel@tonic-gate%T The U\s-2NIX\s0 Command Language 174*0Sstevel@tonic-gate%B Structured Programming\(emInfotech State of the Art Report 175*0Sstevel@tonic-gate%I Infotech International Ltd. 176*0Sstevel@tonic-gate%C Nicholson House, Maidenhead, Berkshire, England 177*0Sstevel@tonic-gate%D March 1975 178*0Sstevel@tonic-gate%P 375-384 179*0Sstevel@tonic-gate%K unix 180*0Sstevel@tonic-gate%X pwb 181*0Sstevel@tonic-gateBrief description of shell syntax and semantics, without much 182*0Sstevel@tonic-gatedetail on implementation. 183*0Sstevel@tonic-gateMuch on pipes and convenience of hooking programs together. 184*0Sstevel@tonic-gateIncludes SERMONETTE: 185*0Sstevel@tonic-gate"Many familiar computing `concepts' are missing from UNIX. 186*0Sstevel@tonic-gateFiles have no records. There are no access methods. 187*0Sstevel@tonic-gateThere are no file types. These concepts fill a much-needed gap. 188*0Sstevel@tonic-gateI sincerely hope that when future systems are designed by 189*0Sstevel@tonic-gatemanufacturers the value of some of these ingrained notions is re-examined. 190*0Sstevel@tonic-gateLike the politician and his `common man', manufacturers have 191*0Sstevel@tonic-gatetheir `average user'. 192*0Sstevel@tonic-gate 193*0Sstevel@tonic-gate%A J. R. Mashey 194*0Sstevel@tonic-gate%T PWB/UNIX Shell Tutorial 195*0Sstevel@tonic-gate%D September 30, 1977 196*0Sstevel@tonic-gate 197*0Sstevel@tonic-gate%A D. F. Hartley (Ed.) 198*0Sstevel@tonic-gate%T The Cambridge Multiple Access System \- Users Reference Manual 199*0Sstevel@tonic-gate%I University Mathematical Laboratory 200*0Sstevel@tonic-gate%C Cambridge, England 201*0Sstevel@tonic-gate%D 1968 202*0Sstevel@tonic-gate 203*0Sstevel@tonic-gate%A P. A. Crisman (Ed.) 204*0Sstevel@tonic-gate%T The Compatible Time-Sharing System 205*0Sstevel@tonic-gate%I M.I.T. Press 206*0Sstevel@tonic-gate%K whole ctss book 207*0Sstevel@tonic-gate%C Cambridge, Mass. 208*0Sstevel@tonic-gate%D 1965 209*0Sstevel@tonic-gate 210*0Sstevel@tonic-gate%T LR Parsing 211*0Sstevel@tonic-gate%A A. V. Aho 212*0Sstevel@tonic-gate%A S. C. Johnson 213*0Sstevel@tonic-gate%J Comp. Surveys 214*0Sstevel@tonic-gate%V 6 215*0Sstevel@tonic-gate%N 2 216*0Sstevel@tonic-gate%P 99-124 217*0Sstevel@tonic-gate%D June 1974 218*0Sstevel@tonic-gate 219*0Sstevel@tonic-gate%T Deterministic Parsing of Ambiguous Grammars 220*0Sstevel@tonic-gate%A A. V. Aho 221*0Sstevel@tonic-gate%A S. C. Johnson 222*0Sstevel@tonic-gate%A J. D. Ullman 223*0Sstevel@tonic-gate%J Comm. Assoc. Comp. Mach. 224*0Sstevel@tonic-gate%K acm cacm 225*0Sstevel@tonic-gate%V 18 226*0Sstevel@tonic-gate%N 8 227*0Sstevel@tonic-gate%P 441-452 228*0Sstevel@tonic-gate%D August 1975 229*0Sstevel@tonic-gate 230*0Sstevel@tonic-gate%A A. V. Aho 231*0Sstevel@tonic-gate%A J. D. Ullman 232*0Sstevel@tonic-gate%T Principles of Compiler Design 233*0Sstevel@tonic-gate%I Addison-Wesley 234*0Sstevel@tonic-gate%C Reading, Mass. 235*0Sstevel@tonic-gate%D 1977 236*0Sstevel@tonic-gate 237*0Sstevel@tonic-gate.[ 238*0Sstevel@tonic-gate%r 65 239*0Sstevel@tonic-gate%R Comp. Sci. Tech. Rep. No. 65 240*0Sstevel@tonic-gate%K CSTR 241*0Sstevel@tonic-gate%A S. C. Johnson 242*0Sstevel@tonic-gate%T Lint, a C Program Checker 243*0Sstevel@tonic-gate%D December 1977 244*0Sstevel@tonic-gate%O updated version TM 78-1273-3 245*0Sstevel@tonic-gate%D 1978 246*0Sstevel@tonic-gate.] 247*0Sstevel@tonic-gate 248*0Sstevel@tonic-gate%T A Portable Compiler: Theory and Practice 249*0Sstevel@tonic-gate%A S. C. Johnson 250*0Sstevel@tonic-gate%J Proc. 5th ACM Symp. on Principles of Programming Languages 251*0Sstevel@tonic-gate%P 97-104 252*0Sstevel@tonic-gate%D January 1978 253*0Sstevel@tonic-gate 254*0Sstevel@tonic-gate.[ 255*0Sstevel@tonic-gate%r 39 256*0Sstevel@tonic-gate%K CSTR 257*0Sstevel@tonic-gate%R Comp. Sci. Tech. Rep. No. 39 258*0Sstevel@tonic-gate%I Bell Laboratories 259*0Sstevel@tonic-gate%C Murray Hill, New Jersey 260*0Sstevel@tonic-gate%A M. E. Lesk 261*0Sstevel@tonic-gate%T Lex \(em A Lexical Analyzer Generator 262*0Sstevel@tonic-gate%D October 1975 263*0Sstevel@tonic-gate.] 264*0Sstevel@tonic-gate 265*0Sstevel@tonic-gate.[ 266*0Sstevel@tonic-gate%r 32 267*0Sstevel@tonic-gate%K CSTR 268*0Sstevel@tonic-gate%R Comp. Sci. Tech. Rep. No. 32 269*0Sstevel@tonic-gate%I Bell Laboratories 270*0Sstevel@tonic-gate%C Murray Hill, New Jersey 271*0Sstevel@tonic-gate%A S. C. Johnson 272*0Sstevel@tonic-gate%T Yacc \(em Yet Another Compiler-Compiler 273*0Sstevel@tonic-gate%D July 1975 274*0Sstevel@tonic-gate.] 275*0Sstevel@tonic-gate 276*0Sstevel@tonic-gate%T U\s-2NIX\s0 Time-Sharing System: Portability of C Programs and the U\s-2NIX\s0 System 277*0Sstevel@tonic-gate%K unix bstj 278*0Sstevel@tonic-gate%A S. C. Johnson 279*0Sstevel@tonic-gate%A D. M. Ritchie 280*0Sstevel@tonic-gate%J Bell Sys. Tech. J. 281*0Sstevel@tonic-gate%V 57 282*0Sstevel@tonic-gate%N 6 283*0Sstevel@tonic-gate%P 2021-2048 284*0Sstevel@tonic-gate%D 1978 285*0Sstevel@tonic-gate 286*0Sstevel@tonic-gate%T Typing Documents on UNIX and GCOS: The -ms Macros for Troff 287*0Sstevel@tonic-gate%A M. E. Lesk 288*0Sstevel@tonic-gate%D 1977 289*0Sstevel@tonic-gate 290*0Sstevel@tonic-gate%A K. Thompson 291*0Sstevel@tonic-gate%A D. M. Ritchie 292*0Sstevel@tonic-gate%T U\s-2NIX\s0 Programmer's Manual 293*0Sstevel@tonic-gate%K unix 294*0Sstevel@tonic-gate%I Bell Laboratories 295*0Sstevel@tonic-gate%O Sixth Edition 296*0Sstevel@tonic-gate%D May 1975 297*0Sstevel@tonic-gate 298*0Sstevel@tonic-gate%T The Network U\s-2NIX\s0 System 299*0Sstevel@tonic-gate%K unix 300*0Sstevel@tonic-gate%A G. L. Chesson 301*0Sstevel@tonic-gate%J Operating Systems Review 302*0Sstevel@tonic-gate%V 9 303*0Sstevel@tonic-gate%N 5 304*0Sstevel@tonic-gate%P 60-66 305*0Sstevel@tonic-gate%D 1975 306*0Sstevel@tonic-gate%O Also in \f2Proc. 5th Symp. on Operating Systems Principles.\f1 307*0Sstevel@tonic-gate 308*0Sstevel@tonic-gate%T Spider \(em An Experimental Data Communications System 309*0Sstevel@tonic-gate%Z ctr127 310*0Sstevel@tonic-gate%A A. G. Fraser 311*0Sstevel@tonic-gate%J Proc. IEEE Conf. on Communications 312*0Sstevel@tonic-gate%P 21F 313*0Sstevel@tonic-gate%O IEEE Cat. No. 74CH0859-9-CSCB. 314*0Sstevel@tonic-gate%D June 1974 315*0Sstevel@tonic-gate 316*0Sstevel@tonic-gate%T A Virtual Channel Network 317*0Sstevel@tonic-gate%A A. G. Fraser 318*0Sstevel@tonic-gate%J Datamation 319*0Sstevel@tonic-gate%P 51-56 320*0Sstevel@tonic-gate%D February 1975 321*0Sstevel@tonic-gate 322*0Sstevel@tonic-gate.[ 323*0Sstevel@tonic-gate%r 41 324*0Sstevel@tonic-gate%K CSTR 325*0Sstevel@tonic-gate%R Comp. Sci. Tech. Rep. No. 41 326*0Sstevel@tonic-gate%I Bell Laboratories 327*0Sstevel@tonic-gate%C Murray Hill, New Jersey 328*0Sstevel@tonic-gate%A J. W. Hunt 329*0Sstevel@tonic-gate%A M. D. McIlroy 330*0Sstevel@tonic-gate%T An Algorithm for Differential File Comparison 331*0Sstevel@tonic-gate%D June 1976 332*0Sstevel@tonic-gate.] 333*0Sstevel@tonic-gate 334*0Sstevel@tonic-gate%A F. P. Brooks, Jr. 335*0Sstevel@tonic-gate%T The Mythical Man-Month 336*0Sstevel@tonic-gate%I Addison-Wesley 337*0Sstevel@tonic-gate%C Reading, Mass. 338*0Sstevel@tonic-gate%D 1975 339*0Sstevel@tonic-gate%X pwb 340*0Sstevel@tonic-gateReadable, classic reference on software engineering and 341*0Sstevel@tonic-gateproblems of large projects, from someone with experience in them. 342*0Sstevel@tonic-gateRequired reading for any software engineer, even if conclusions may not 343*0Sstevel@tonic-gatealways be agreed with. 344*0Sstevel@tonic-gate%br 345*0Sstevel@tonic-gate"The second is the most dangerous system a man every designs." p.55. 346*0Sstevel@tonic-gate%br 347*0Sstevel@tonic-gate"Hence plan to throw one away; you will, anyhow." p.116. 348*0Sstevel@tonic-gate%br 349*0Sstevel@tonic-gate"Cosgrove has perceptively pointed out that the programmer delivers 350*0Sstevel@tonic-gatesatisfaction of a user need rather than any tangible product. 351*0Sstevel@tonic-gateAnd both the actual need and the user's perception of that need 352*0Sstevel@tonic-gatewill change as programs are built, tested, and used." p.117. 353*0Sstevel@tonic-gate%br 354*0Sstevel@tonic-gate"The total cost of maintaining a widely used program is typically 40 percent 355*0Sstevel@tonic-gateor more of the cost of developing it." p.121. 356*0Sstevel@tonic-gate%br 357*0Sstevel@tonic-gate"As shown above, amalgamating prose and program reduces the total 358*0Sstevel@tonic-gatenumber of characters to be stored." p.175. 359*0Sstevel@tonic-gate 360*0Sstevel@tonic-gate%T A Portable Compiler for the Language C 361*0Sstevel@tonic-gate%A A. Snyder 362*0Sstevel@tonic-gate%I Master's Thesis, M.I.T. 363*0Sstevel@tonic-gate%C Cambridge, Mass. 364*0Sstevel@tonic-gate%D 1974 365*0Sstevel@tonic-gate 366*0Sstevel@tonic-gate%T The C Language Calling Sequence 367*0Sstevel@tonic-gate%A M. E. Lesk 368*0Sstevel@tonic-gate%A S. C. Johnson 369*0Sstevel@tonic-gate%A D. M. Ritchie 370*0Sstevel@tonic-gate%D 1977 371*0Sstevel@tonic-gate 372*0Sstevel@tonic-gate%T Optimal Code Generation for Expression Trees 373*0Sstevel@tonic-gate%A A. V. Aho 374*0Sstevel@tonic-gate%A S. C. Johnson 375*0Sstevel@tonic-gate%D 1975 376*0Sstevel@tonic-gate%J J. Assoc. Comp. Mach. 377*0Sstevel@tonic-gate%K acm jacm 378*0Sstevel@tonic-gate%V 23 379*0Sstevel@tonic-gate%N 3 380*0Sstevel@tonic-gate%P 488-501 381*0Sstevel@tonic-gate%O Also in \f2Proc. ACM Symp. on Theory of Computing,\f1 pp. 207-217, 1975. 382*0Sstevel@tonic-gate 383*0Sstevel@tonic-gate%A R. Sethi 384*0Sstevel@tonic-gate%A J. D. Ullman 385*0Sstevel@tonic-gate%T The Generation of Optimal Code for Arithmetic Expressions 386*0Sstevel@tonic-gate%J J. Assoc. Comp. Mach. 387*0Sstevel@tonic-gate%K acm jacm 388*0Sstevel@tonic-gate%V 17 389*0Sstevel@tonic-gate%N 4 390*0Sstevel@tonic-gate%D October 1970 391*0Sstevel@tonic-gate%P 715-728 392*0Sstevel@tonic-gate%O Reprinted as pp. 229-247 in \fICompiler Techniques\fR, ed. B. W. Pollack, Auerbach, Princeton NJ (1972). 393*0Sstevel@tonic-gate%X pwb 394*0Sstevel@tonic-gateOptimal approach for straight-line, fixed 395*0Sstevel@tonic-gatenumber of regs. 396*0Sstevel@tonic-gate 397*0Sstevel@tonic-gate%T Code Generation for Machines with Multiregister 398*0Sstevel@tonic-gateOperations 399*0Sstevel@tonic-gate%A A. V. Aho 400*0Sstevel@tonic-gate%A S. C. Johnson 401*0Sstevel@tonic-gate%A J. D. Ullman 402*0Sstevel@tonic-gate%J Proc. 4th ACM Symp. on Principles of Programming Languages 403*0Sstevel@tonic-gate%P 21-28 404*0Sstevel@tonic-gate%D January 1977 405*0Sstevel@tonic-gate 406