{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,11,13]],"date-time":"2023-11-13T00:32:19Z","timestamp":1699835539243},"reference-count":5,"publisher":"Wiley","issue":"1","license":[{"start":{"date-parts":[[2006,10,27]],"date-time":"2006-10-27T00:00:00Z","timestamp":1161907200000},"content-version":"vor","delay-in-days":10526,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1978,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>RATFOR is a preprocessor language for FORTRAN that supports structured flow of control statements and macrosubstitution. The RATFOR processor, written in RATFOR, is modular, carefully coded and portable, but extremely inefficient. A profile of the running time revealed that a linear search in the macroprocessor consumed over half of the CPU time. Running time was reduced by over 50 per cent when a binary search was used. Our observation is of interest primarily because it differs from previously reported measurements.<\/jats:p><jats:p>A more dramatic improvement in running time was obtained by rewriting the <jats:italic>ad hoc<\/jats:italic> lexical scanner using a standard method based on finite automata. For a 3,000\u2010line source program the standard RATFOR required 185.470 CPU seconds on a CDC 6500 while the automata\u2010based version needed only 12.723 seconds.<\/jats:p><jats:p>We conclude that, contrary to evidence exhibited by the designer of RATFOR, sequential search is often inadequate for production software. Furthermore, in the case of lexical analysis, well\u2010known techniques do seem to offer efficiency while retaining the simplicity, ease of coding and modularity of <jats:italic>ad hoc<\/jats:italic> methods.<\/jats:p>","DOI":"10.1002\/spe.4380080105","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T12:47:06Z","timestamp":1163767626000},"page":"35-40","source":"Crossref","is-referenced-by-count":2,"title":["MOUSE4: An improved implementation of the RATFOR preprocessor"],"prefix":"10.1002","volume":"8","author":[{"given":"Douglas","family":"Comer","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"311","published-online":{"date-parts":[[2006,10,27]]},"reference":[{"key":"e_1_2_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380050408"},{"key":"e_1_2_2_1_3_2","doi-asserted-by":"crossref","volume-title":"Software Tools","author":"Kernighan B.","DOI":"10.1145\/1010726.1010728"},{"key":"e_1_2_2_1_4_2","volume-title":"Compiler Construction for Digital Computers","author":"Gries D."},{"key":"e_1_2_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/361011.361061"},{"key":"e_1_2_2_2_2_2","doi-asserted-by":"crossref","DOI":"10.1145\/1010726.1010728","volume-title":"Software Tools","author":"Kernighan B. W.","year":"1976"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380080105","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380080105","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,11,12]],"date-time":"2023-11-12T08:19:52Z","timestamp":1699777192000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380080105"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1978,1]]},"references-count":5,"journal-issue":{"issue":"1","published-print":{"date-parts":[[1978,1]]}},"alternative-id":["10.1002\/spe.4380080105"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380080105","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1978,1]]}}}