{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T16:41:24Z","timestamp":1697906484178},"reference-count":9,"publisher":"Wiley","issue":"7","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":7791,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1985,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Many Pascal compilers generate incorrect code for statements. The trap that catches many implementors, whereby overflow is generated incorrectly, is explained and means for avoiding it are discussed (with attention to cost). Most common languages have a similar construct in which iteration is \u2018controlled\u2019 by a sequence of values in that a variable takes on successive values of the sequence for the several executions of the \u2018body\u2019. Often, the size step is not restricted to plus\u2010or\u2010minus one (as in Pascal) and the correctness situation cannot be characterized in such black and white terms. Typically, there is a range of behaviours that are valid and the compiler writer is able to choose a compromise between time\u2010space overheads and avoidance of unnecessary overflow indications; we describe the latter behaviour as robust. We present techniques for implementation appropriate to several languages and direct comments at language designers warning against both ignoring and overestimating the cost of robustly implementing iteration statements with arbitrary step size. Lastly, we criticize the design of instructions available in some machines, ostensibly to support the implementation of such sequence controlled iteration statements.<\/jats:p>","DOI":"10.1002\/spe.4380150704","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T04:16:08Z","timestamp":1163823368000},"page":"655-668","source":"Crossref","is-referenced-by-count":1,"title":["The robust implementation of sequence\u2010controlled iteration"],"prefix":"10.1002","volume":"15","author":[{"given":"M. C.","family":"Newey","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"W. M.","family":"Waite","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-06950-X"},{"key":"e_1_2_1_3_2","volume-title":"Pascal","year":"1983"},{"key":"e_1_2_1_4_2","volume-title":"\u2018FORTRAN\u2019, X3.9\u20101978","year":"1978"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00265077"},{"key":"e_1_2_1_6_2","unstructured":"C. H.LindseyandS. G.van der Meulen Informal Introduction to Algol 68 North\u2010Holland Amsterdam 1977."},{"key":"e_1_2_1_7_2","volume-title":"VAXII Architecture Handbook","year":"1979"},{"key":"e_1_2_1_8_2","doi-asserted-by":"crossref","unstructured":"B. W.Lampson J. J.Horning R. L.London J. G.MitchelandG. L.Popek Report on the Programming Language Euclid February 1977.","DOI":"10.1145\/954666.971189"},{"key":"e_1_2_1_9_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF01932305"},{"key":"e_1_2_1_10_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00288652"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380150704","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380150704","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,20]],"date-time":"2023-10-20T18:56:53Z","timestamp":1697828213000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380150704"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1985,7]]},"references-count":9,"journal-issue":{"issue":"7","published-print":{"date-parts":[[1985,7]]}},"alternative-id":["10.1002\/spe.4380150704"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380150704","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1985,7]]}}}