{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,9]],"date-time":"2026-01-09T00:01:30Z","timestamp":1767916890856,"version":"3.49.0"},"reference-count":33,"publisher":"Wiley","issue":"6","license":[{"start":{"date-parts":[[2006,10,27]],"date-time":"2006-10-27T00:00:00Z","timestamp":1161907200000},"content-version":"vor","delay-in-days":9279,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1981,6]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>The programming language LISP is usually implemented via an interpreter, and a compiler is added later as a LISP program. However, all such production compilers known to the authors produce explicit instructions for the given computer being used. This paper describes the development of a portable LISP compiler in the sense that only Standard LISP functions are used in its definition and the output is a sequence of abstract machine codes, easily mapped to instruction sequences on current computers. The resulting code is quite efficient, demonstrating once again the maxim that most compiler optimization is largely machine independent.<\/jats:p>","DOI":"10.1002\/spe.4380110603","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T12:10:32Z","timestamp":1163765432000},"page":"541-605","source":"Crossref","is-referenced-by-count":39,"title":["A portable lisp compiler"],"prefix":"10.1002","volume":"11","author":[{"given":"Martin L.","family":"Griss","sequence":"first","affiliation":[]},{"given":"Anthony C.","family":"Hearn","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,27]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/367177.367199"},{"key":"e_1_2_1_3_2","volume-title":"Anatomy of LISP","author":"Allen J. R.","year":"1978"},{"key":"e_1_2_1_4_2","first-page":"220","volume-title":"The Programming Language LISP: Its Operation and Applications","author":"Saunders R. A.","year":"1964"},{"key":"e_1_2_1_5_2","doi-asserted-by":"crossref","unstructured":"R.London \u2018Correctness of Two Compilers for a LISP Subset\u2019 Stanford AI Project Memo No. AIM\u2010151 (1971).","DOI":"10.1145\/800235.807080"},{"key":"e_1_2_1_6_2","unstructured":"F.Blair \u2018The structure of the LISP compiler\u2019 Unpublished paper IBM Research Yorktown Heights 1971."},{"key":"e_1_2_1_7_2","unstructured":"B. S.Greenberg \u2018The Multics Maclisp compiler\u2014The basic hackery\u2019 Unpublished paper Honeywell Information Systems Cambridge Mass 1977."},{"key":"e_1_2_1_8_2","unstructured":"G. L.Steele Jr. \u2018Fast arithmetic in Maclisp\u2019 Proc. 1977 Macsyma Users' Conference NASA Report No. CP\u20102012 215\u2010224 1977."},{"key":"e_1_2_1_9_2","unstructured":"F.Motoyoshi \u2018A portable LISP compiler for a hypothetical LISP machine\u2019 Tech. Rep. 76\u201005 Dept. of Info. Sc. Univ. of Tokyo 1976."},{"key":"e_1_2_1_10_2","unstructured":"J.Urmi \u2018A Machine independent LISP compiler and its implications for ideal hardware\u2019 Dissertation No. 22 Linkoping Sweden 1978."},{"key":"e_1_2_1_11_2","volume-title":"Bibliography on program optimization","author":"Allen F. E.","year":"1975"},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/16.4.322"},{"key":"e_1_2_1_13_2","doi-asserted-by":"crossref","unstructured":"J.Martiet al. \u2018Standard LISP Report\u2019 SIGPLAN Notices ACM New York 14 (10) 48\u201368(1979).","DOI":"10.1145\/953997.953999"},{"key":"e_1_2_1_14_2","unstructured":"A. C.Hearn \u2018REDUCE symbolic mode primer\u2019 Utah Symbolic Computation Group Operating Note No. 5 1973."},{"key":"e_1_2_1_15_2","unstructured":"M. L.GrissandR. R.Kessler \u2018A Micro\u2010programmed implementation of standard LISP and REDUCE on the Burroughs B1700\/B1800 computer\u2019 Utah Symbolic Computation Group Report No. UCP\u201070 1979. (Submitted toIEEE\u2010TC)."},{"key":"e_1_2_1_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/359545.359566"},{"key":"e_1_2_1_17_2","unstructured":"T.Risch \u2018REMREC a program for automatic recursion removal in LISP\u2019 Datalog. Report No. DLU 73:24 Uppsala Sweden 1973."},{"key":"e_1_2_1_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/321119.321121"},{"key":"e_1_2_1_19_2","volume-title":"A Mathematical Theory of Global Program Optimization","author":"Schaefer M.","year":"1973"},{"key":"e_1_2_1_20_2","volume-title":"The Theory of Parsing, Translation, and Compiling, V2","author":"Aho A. V.","year":"1973"},{"key":"e_1_2_1_21_2","unstructured":"M. L.Griss \u2018Enhanced pattern matching in REDUCE\u2019 Utah Symbolic Computation Group Operating Note No. 22 1978."},{"key":"e_1_2_1_22_2","unstructured":"R. R.Kessler \u2018PMETA\u2014pattern matching META\/REDUCE\u2019 Utah Symbolic Computation Group Operating Note No. 40 1979."},{"key":"e_1_2_1_23_2","doi-asserted-by":"crossref","unstructured":"C. W.Frazer \u2018A compact machine\u2010independent peephole optimizer\u2019 Proceedings of the Sixth Annual ACM Symposium on Principals of Programming Languages ACM 1 1979.","DOI":"10.1145\/567752.567753"},{"key":"e_1_2_1_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/364995.365000"},{"key":"e_1_2_1_25_2","volume-title":"The Design of An Optimizing Compiler","author":"Wulf W. A.","year":"1975"},{"key":"e_1_2_1_26_2","first-page":"722","volume-title":"A mode analyzing algebraic manipulation program","author":"Hearn A. C.","year":"1974"},{"key":"e_1_2_1_27_2","first-page":"53","volume-title":"The definition and use of data structures in REDUCE","author":"Griss M. L.","year":"1976"},{"key":"e_1_2_1_28_2","first-page":"137","volume-title":"CACM","author":"Allen F. E.","year":"1976"},{"key":"e_1_2_1_29_2","unstructured":"I. B.Frick \u2018A Portable loader and fast loader for Standard LISP\u2019 (in preparation)."},{"key":"e_1_2_1_30_2","first-page":"50","volume-title":"A one\u2010pass prettyprinter","author":"Hearn A. C.","year":"1979"},{"key":"e_1_2_1_31_2","unstructured":"A. C.Hearn \u2018REDUCE 2 users manual\u2019 Utah Computational Physics Group Report No. UCP\u2010191973."},{"key":"e_1_2_1_32_2","first-page":"130","volume-title":"REDUCE\/1700: a micro\u2010coded algebra system","author":"Griss M. L.","year":"1978"},{"key":"e_1_2_1_33_2","unstructured":"J. P.Fitch \u2018Manual for Standard LISP on IBM System 360 and 370\u2019 Utah Symbolic Computation Group Tech. Rep. No. TR\u20106 1978."},{"key":"e_1_2_1_34_2","unstructured":"I. B.Frick \u2018Manual for Standard LISP on DECsystem 10 and 20\u2019 Utah Symbolic Computation Group Tech. Rep. No. TR\u20102 1978."}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380110603","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380110603","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,11,12]],"date-time":"2023-11-12T13:35:08Z","timestamp":1699796108000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380110603"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1981,6]]},"references-count":33,"journal-issue":{"issue":"6","published-print":{"date-parts":[[1981,6]]}},"alternative-id":["10.1002\/spe.4380110603"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380110603","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1981,6]]}}}