{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,19]],"date-time":"2023-10-19T21:12:26Z","timestamp":1697749946825},"reference-count":40,"publisher":"Wiley","issue":"10","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":8064,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1984,10]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>We wish to illustrate the potential of a thus far little explored avenue of programming language design\u2013\u2010namely the employment of types and routines as values in their own right within the framework of an Algol. In this first paper we pay particular attention to the development of highly orthogonal self\u2010initializing data structures, and to the advantageous expressive power of polymorphism when combined with routine values so as to provide abstract data structures. The emphasis is on the design phase, rather than on the implementation details or precise syntactic structure of the envisaged language. A second, companion paper\u2020 discusses the design of a high\u2010level orthogonal abstract architecture intended to support polymorphic languages in which routines are \u2018first class\u2019 values. The relationship of the abstract machine architecture to the programming language <jats:italic>vis\u2010a\u2010vis<\/jats:italic> the \u2018semantic gap\u2019 is then discussed from the viewpoint of compiling programs which are strongly typed while exploiting polymorphism. We feel that polymorphism is essential if truly general purpose programs, software tools, are to be written easily. The research reported herein is an effort towards realizing this goal.<\/jats:p>","DOI":"10.1002\/spe.4380141007","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T03:50:04Z","timestamp":1163821804000},"page":"973-997","source":"Crossref","is-referenced-by-count":0,"title":["Polymorphic programming I. Another language designed on semantic principles"],"prefix":"10.1002","volume":"14","author":[{"given":"David M.","family":"Harland","sequence":"first","affiliation":[]},{"given":"Hamish I. E.","family":"Gunn","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.1145\/366193.366201"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00265077"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00289243"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/360303.360308"},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/363744.363749"},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/362349.362364"},{"key":"e_1_2_1_8_2","volume-title":"Fundamental Concepts in Programming anguages","author":"Strachey C."},{"key":"e_1_2_1_9_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4612-6228-2"},{"key":"e_1_2_1_10_2","unstructured":"R.Morrison \u2018On the development of Algol\u2019 Ph.D. Thesis University of St. Andrews 1980."},{"key":"e_1_2_1_11_2","first-page":"19","volume-title":"Computers And Automata","author":"Scott D.","year":"1972"},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/365170.365202"},{"key":"e_1_2_1_13_2","doi-asserted-by":"crossref","unstructured":"M.Richards \u2018BCPL: a tool for compiler writing and system programming\u2019 AFIPS SJCC557\u2013566(1969).","DOI":"10.1145\/1476793.1476880"},{"key":"e_1_2_1_14_2","first-page":"36","article-title":"PL360 a programming language for the 360 computer","volume":"15","author":"Wirth N.","year":"1966","journal-title":"JACM"},{"key":"e_1_2_1_15_2","doi-asserted-by":"publisher","DOI":"10.1145\/362919.362936"},{"key":"e_1_2_1_16_2","volume-title":"Hil Reference Manual","author":"Gunn H. I. E.","year":"1980"},{"key":"e_1_2_1_17_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(79)90097-8"},{"key":"e_1_2_1_18_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00264291"},{"key":"e_1_2_1_19_2","volume-title":"LISP 1.5 Programmer's Reference Manual","author":"McCarthy J.","year":"1965"},{"key":"e_1_2_1_20_2","volume-title":"Advances in Computer Architecture","author":"Myers G. J.","year":"1978"},{"key":"e_1_2_1_21_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380141103"},{"key":"e_1_2_1_22_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(81)90147-2"},{"key":"e_1_2_1_23_2","unstructured":"R.Morrison S\u2010algol Reference Manual Department of Computational Science University of St. Andrews CS\/79\/1 1979."},{"key":"e_1_2_1_24_2","volume-title":"Structured Programming","author":"Hoare C. A. R.","year":"1972"},{"key":"e_1_2_1_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/365696.365702"},{"key":"e_1_2_1_26_2","doi-asserted-by":"crossref","unstructured":"N.Wirth \u2018What can we do about the unnecessary diversity of notation for syntactic definition?\u2019 CACM (November) (1977).","DOI":"10.1145\/359863.359883"},{"key":"e_1_2_1_27_2","volume-title":"Language Design and Programming Methodology, Lecture Notes in Computer Science","author":"Wirth N.","year":"1980"},{"key":"e_1_2_1_28_2","unstructured":"D. A.TurnerandR. W.Campbell SASL Language Reference Manual Department of Computational Science University of St. Andrews CS\/\u2010\/79 (Revised)."},{"key":"e_1_2_1_29_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/6.2.134"},{"key":"e_1_2_1_30_2","unstructured":"H. I. E.Gunn H. Reference Manual Department of Computational Science University of St. Andrews CS\/79\/4 1979."},{"key":"e_1_2_1_31_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380110209"},{"key":"e_1_2_1_32_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(75)90032-0"},{"key":"e_1_2_1_33_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380100702"},{"key":"e_1_2_1_34_2","doi-asserted-by":"publisher","DOI":"10.1145\/954666.971189"},{"key":"e_1_2_1_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/942572.807045"},{"key":"e_1_2_1_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/359763.359789"},{"key":"e_1_2_1_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/1115880.1115887"},{"key":"e_1_2_1_38_2","unstructured":"D. I.Good R. M.Cohen C. G.Hoch L. W.HunterandD. F.Hare Report on the Language Gypsy University of Texas at Austin September1978."},{"key":"e_1_2_1_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/359763.359771"},{"key":"e_1_2_1_40_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380070102"},{"key":"e_1_2_1_41_2","unstructured":"N.Wirth \u2018On the design of programming languages\u2019 IFIP\u201074 North\u2010Holland 386\u2013393(1974)."}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380141007","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380141007","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,19]],"date-time":"2023-10-19T20:55:41Z","timestamp":1697748941000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380141007"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1984,10]]},"references-count":40,"journal-issue":{"issue":"10","published-print":{"date-parts":[[1984,10]]}},"alternative-id":["10.1002\/spe.4380141007"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380141007","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1984,10]]}}}