{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,11,13]],"date-time":"2023-11-13T00:06:48Z","timestamp":1699834008027},"reference-count":19,"publisher":"Wiley","issue":"4","license":[{"start":{"date-parts":[[2006,10,27]],"date-time":"2006-10-27T00:00:00Z","timestamp":1161907200000},"content-version":"vor","delay-in-days":9705,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1980,4]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>The <jats:italic>Model<\/jats:italic> Programming Language implements a form of data abstraction that has been used in a large programming project, the Demos Operating System. The use of the abstraction mechanism suggests a particular programming style that has evolved over an extensive period of gaining experience with the language. The programming style and Model's approach to data abstraction are both documented here using an example designed to illustrate several of the more important issues. The goal of the paper is to demonstrate a programming style and an approach to data abstraction in a programming language that has proved useful in a significant systems programming application.<\/jats:p>","DOI":"10.1002\/spe.4380100402","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T00:12:26Z","timestamp":1163808746000},"page":"249-263","source":"Crossref","is-referenced-by-count":5,"title":["Programming by successive refinement of data abstractions"],"prefix":"10.1002","volume":"10","author":[{"given":"James B.","family":"Morris","sequence":"first","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,27]]},"reference":[{"key":"e_1_2_1_2_2","first-page":"535","article-title":"Dataless programming","volume":"31","author":"Balzer R. M.","year":"1967","journal-title":"Proceedings of the AFIPS 1967 FJCC"},{"key":"e_1_2_1_3_2","first-page":"3","volume-title":"Task communication in Demos","author":"Baskett F. B.","year":"1977"},{"key":"e_1_2_1_4_2","first-page":"2","article-title":"The programming language concurrent Pascal","volume":"1","author":"Hansen P. Brinch","year":"1975","journal-title":"IEEE Transactions on Software Engineering"},{"key":"e_1_2_1_5_2","unstructured":"O.\u2010J.Dahl B.MyhrhaugandK.Nygaard \u2018The Simula 67 Common Base Language\u2019 Publication S\u201022 Norwegian Computing Center Oslo (1970)."},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/365230.365252"},{"key":"e_1_2_1_7_2","doi-asserted-by":"crossref","unstructured":"C.Geschke J. H.MorrisandE.Satterthwaite \u2018Early experience with Mesa\u2019 Proceedings of the ACM Conference on Language Design for Reliable Software Raleigh 138\u2013152(1977).","DOI":"10.1145\/800022.808320"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00288652"},{"key":"e_1_2_1_9_2","doi-asserted-by":"crossref","unstructured":"R. T.JohnsonandJ. B.Morris \u2018Abstract data types in the Model programming language\u2019 Proceedings of the Sigplan\/Sigmod Conference on Data: Abstraction Definition and Structure Salt Lake City 36\u201346(1976).","DOI":"10.1145\/800237.807116"},{"key":"e_1_2_1_10_2","doi-asserted-by":"crossref","unstructured":"B.Liskov A.Snyder R.AtkinsonandC.Schaffert \u2018Abstraction mechanisms in Clu\u2019 Proceedings of the ACM Conference on Language Design for Reliable Software Raleigh 166\u2013178(1977).","DOI":"10.1145\/800022.808322"},{"key":"e_1_2_1_11_2","doi-asserted-by":"crossref","unstructured":"J. B.Morris \u2018Data abstraction: a static implementation strategy\u2019 Proceedings of the Sigplan Conference on Compiler Construction Denver 1\u20137(1979).","DOI":"10.1145\/872732.806948"},{"key":"e_1_2_1_12_2","unstructured":"J.Palme \u2018Protected program modules in Simula 67\u2019 National Defense Research Institute Stockholm (1973)."},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/800214.806545"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/359810.359830"},{"key":"e_1_2_1_15_2","doi-asserted-by":"publisher","DOI":"10.1145\/359657.359667"},{"key":"e_1_2_1_16_2","doi-asserted-by":"crossref","unstructured":"M. B.WellsandF. L.Cornwell \u2018A data type encapsulation scheme utilizing base language operators\u2019 Proceedings of the Sigplan\/Sigmod Conference on Data: Abstraction Definition and Structure Salt Lake City 170\u2013178(1976).","DOI":"10.1145\/942574.807135"},{"key":"e_1_2_1_17_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380070604"},{"key":"e_1_2_1_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/362575.362577"},{"key":"e_1_2_1_19_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380070102"},{"key":"e_1_2_1_20_2","volume-title":"Alphard: toward a language to support structured programs","author":"Wulf W. A.","year":"1974"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380100402","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380100402","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,11,12]],"date-time":"2023-11-12T10:26:43Z","timestamp":1699784803000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380100402"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1980,4]]},"references-count":19,"journal-issue":{"issue":"4","published-print":{"date-parts":[[1980,4]]}},"alternative-id":["10.1002\/spe.4380100402"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380100402","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,4]]}}}