{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,9,28]],"date-time":"2023-09-28T05:10:22Z","timestamp":1695877822686},"reference-count":14,"publisher":"Wiley","issue":"1","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":6511,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1989,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Abstract machine modelling is a popular technique for developing portable compilers. A compiler can be quickly realized by translating the abstract machine operations to target machine operations. The problem with these compilers is that they trade execution efficiency for portability. Typically, the code emitted by these compilers runs two to three times slower than the code generated by compilers that employ sophisticated code generators. This paper describes a C compiler that uses abstract machine modelling to achieve portability. The emitted target machine code is improved by a simple, classical rule\u2010directed peephole optimizer. Our experiments with this compiler on four machines show that a small number of very general handwritten patterns (under 40) yields code that is comparable to the code from compilers that use more sophisticated code generators. As an added bonus, compilation time on some machines is reduced by 10 to 20 per cent.<\/jats:p>","DOI":"10.1002\/spe.4380190108","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T20:54:12Z","timestamp":1163796852000},"page":"79-97","source":"Crossref","is-referenced-by-count":15,"title":["Quick compilers using peephole optimization"],"prefix":"10.1002","volume":"19","author":[{"given":"Jack W.","family":"Davidson","sequence":"first","affiliation":[]},{"given":"David B.","family":"Whalley","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380020203"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380080510"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/358172.358182"},{"key":"e_1_2_1_5_2","unstructured":"J. S.Watts \u2018Construction of a retargetable C language front\u2010end\u2019 Masters Thesis University of Virginia Charlottesville VA 1986."},{"key":"e_1_2_1_6_2","volume-title":"The C Programming Language","author":"Kernighan B. W.","year":"1978"},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/2465.214917"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/1780.1783"},{"key":"e_1_2_1_9_2","volume-title":"A code generator for the AT&T 3B computers","author":"Steele J.","year":"1986"},{"key":"e_1_2_1_10_2","unstructured":"S. C.Johnson \u2018.A tour through the portable C compiler\u2019 Unix Programmer's Manual 7th Edition 2B Section 33 January1979."},{"key":"e_1_2_1_11_2","doi-asserted-by":"crossref","unstructured":"S. C.Johnson \u2018.A portable compiler: theory and practice\u2019 Proceedings of the Fifth Annual Symposium on Principles of Programming Languages Tucson AZ January1978 pp.97\u2013104.","DOI":"10.1145\/512760.512771"},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1147\/sj.241.0037"},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380110608"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380171104"},{"key":"e_1_2_1_15_2","doi-asserted-by":"publisher","DOI":"10.1016\/0096-0551(86)90004-4"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380190108","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380190108","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,9,27]],"date-time":"2023-09-27T08:23:27Z","timestamp":1695803007000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380190108"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1989,1]]},"references-count":14,"journal-issue":{"issue":"1","published-print":{"date-parts":[[1989,1]]}},"alternative-id":["10.1002\/spe.4380190108"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380190108","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1989,1]]}}}