{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,11,13]],"date-time":"2023-11-13T00:06:59Z","timestamp":1699834019884},"reference-count":9,"publisher":"Wiley","issue":"12","license":[{"start":{"date-parts":[[2006,10,27]],"date-time":"2006-10-27T00:00:00Z","timestamp":1161907200000},"content-version":"vor","delay-in-days":9461,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1980,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>The scanner is a subroutine which is frequently called by an application program like a compiler. The primary function of a scanner is to combine characters from the input stream into recognizable units called tokens. A method has been presented in this paper for designing such a scanner, also frequently referred to as a lexical analyser in the current literature. The major steps involved in this design process are: identification of tokens, construction of a state diagram, building driver tables and finally writing a scanning routine. The rules for generating the driver tables are described and an algorithm for the scanner, utilizing these driver tables, is included. The method has been successfully used to build the system scanner for a user oriented plotting language. It is concluded that the method is well defined, gives rise to a modular design and as such easily lends itself to language extensions.<\/jats:p>","DOI":"10.1002\/spe.4380101203","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T23:50:07Z","timestamp":1163807407000},"page":"959-972","source":"Crossref","is-referenced-by-count":1,"title":["Scanner design"],"prefix":"10.1002","volume":"10","author":[{"given":"John M.","family":"Dedourek","sequence":"first","affiliation":[]},{"given":"Uday G.","family":"Gujar","sequence":"additional","affiliation":[]},{"given":"Marion E.","family":"McIntyre","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,27]]},"reference":[{"key":"e_1_2_1_2_2","volume-title":"Principles of Compiler Design","author":"Aho A. V.","year":"1977"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/364175.364185"},{"key":"e_1_2_1_4_2","unstructured":"R. P.Delaney Automatic Construction of a Lexical Analyzer from Regular Expressions M.Sc. Thesis University of New Brunswick Federicton N.B. Canada 1974."},{"key":"e_1_2_1_5_2","unstructured":"B. C.Lesser Implementation of a Scanner Generator M.Sc. Report University of New Brunswick Federicton N.B. Canada 1977."},{"key":"e_1_2_1_6_2","unstructured":"M. E.Lesk Lex\u2014A Lexical Analyzer Generator Computing Science Technical Report #39 Bell Laboratories Murray Hill N.J. 1975."},{"key":"e_1_2_1_7_2","unstructured":"H. L.Pierson A Finite Transducer Model of Compiler Scanners Masters Thesis Case Institute of Technology Cleveland Ohio 1966."},{"key":"e_1_2_1_8_2","unstructured":"H. L.PiersonandW. C.Lynch A Finite Transducer Model for Compiler Lexical Scanners Technical Report 1098 Case Western Reserve University Cleveland Ohio 1968."},{"key":"e_1_2_1_9_2","unstructured":"M. E.McIntyre A User\u2010Oriented Plotting Language M.Sc. Thesis University of New Brunswick Fredericton N.B. 1979."},{"key":"e_1_2_1_10_2","unstructured":"U. G.GujarandM. E.McIntyre \u2018A user\u2010oriented plotting language\u2019 in preparation."}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380101203","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380101203","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,11,12]],"date-time":"2023-11-12T13:32:57Z","timestamp":1699795977000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380101203"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1980,12]]},"references-count":9,"journal-issue":{"issue":"12","published-print":{"date-parts":[[1980,12]]}},"alternative-id":["10.1002\/spe.4380101203"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380101203","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1980,12]]}}}