{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,23]],"date-time":"2023-10-23T00:40:44Z","timestamp":1698021644005},"reference-count":40,"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":5781,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1991,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Emerald is a <jats:italic>general\u2010purpose<\/jats:italic> language with aspects of traditional object\u2010oriented languages, such as Smalltalk, and abstract data type languages, such as Modula\u20102 and Ada. It is strongly typed with a non\u2010traditional object model and type system that emphasize abstract types, allow separation of typing and implementation, and provide the flexibility of polymorphism and subtyping with compile\u2010time checking. This paper describes the Emerald language and its programming methodology. We give examples that demonstrate Emerald's features, and compare and contrast the Emerald approach to programming with the approaches used in other similar languages.<\/jats:p>","DOI":"10.1002\/spe.4380210107","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T01:05:30Z","timestamp":1163811930000},"page":"91-118","source":"Crossref","is-referenced-by-count":54,"title":["Emerald: A general\u2010purpose programming language"],"prefix":"10.1002","volume":"21","author":[{"given":"Rajendra K.","family":"Raj","sequence":"first","affiliation":[]},{"given":"Ewan","family":"Tempero","sequence":"additional","affiliation":[]},{"given":"Henry M.","family":"Levy","sequence":"additional","affiliation":[]},{"given":"Andrew P.","family":"Black","sequence":"additional","affiliation":[]},{"given":"Norman C.","family":"Hutchinson","sequence":"additional","affiliation":[]},{"given":"Eric","family":"Jul","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"crossref","unstructured":"A.Black N.Hutchinson E.JulandH.Levy Object structure in the Emerald system Proceedings of the ACM Conference on Object\u2010Oriented Programming Systems Languages and Applications October1986 pp.78\u201386. In SIGPLAN Notices 21 (11) 78\u201386 (1986).","DOI":"10.1145\/960112.28706"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1987.232836"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/35037.42182"},{"key":"e_1_2_1_5_2","unstructured":"E.Jul Object mobility in a distributed object\u2010oriented system Ph. D. Thesis TR 88\u201312\u201306 Department of Computer Science University of Washington Seattle December1988."},{"key":"e_1_2_1_6_2","unstructured":"US Department of Defense Reference Manual for the Ada Programming Language MIL\u2010STD\u20101815 Washington D. C. January1983."},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-96757-3"},{"key":"e_1_2_1_8_2","volume-title":"The C++ Programming Language","author":"Stroustrup B.","year":"1986"},{"key":"e_1_2_1_9_2","volume-title":"Smalltalk\u201080: The Language and its Implementation","author":"Goldberg A.","year":"1983"},{"key":"e_1_2_1_10_2","doi-asserted-by":"crossref","unstructured":"D.UngarandR. B.Smith Self: the power of simplicity Proceedings of the Second ACM Conference on Object\u2010Oriented Programming Systems Languages and Applications October1987 pp.227\u2013241. In SIGPLAN Notices 22 (12) 227\u2013241 (1987).","DOI":"10.1145\/38807.38828"},{"key":"e_1_2_1_11_2","doi-asserted-by":"publisher","DOI":"10.1049\/piee.1973.0221"},{"key":"e_1_2_1_12_2","first-page":"7","volume-title":"Research Directions in Object\u2010Oriented Programming","author":"Kristensen B. B.","year":"1987"},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380210106"},{"issue":"12","key":"e_1_2_1_14_2","doi-asserted-by":"crossref","first-page":"1053","DOI":"10.1145\/361598.361623","article-title":"On the criteria to be used in decompositing systems into modules","volume":"5","author":"Parnas D. L.","year":"1972","journal-title":"Communications of the ACM"},{"key":"e_1_2_1_15_2","volume-title":"Object\u2010Oriented Software Construction","author":"Meyer B.","year":"1988"},{"key":"e_1_2_1_16_2","unstructured":"A. H.Borning Classes versus prototypes in object\u2010oriented languages ACM\/IEEE Fall Joint Computer Conference November1986."},{"key":"e_1_2_1_17_2","doi-asserted-by":"crossref","unstructured":"A. H.BorningandT.O'Shea Deltatalk: an empirically and aesthetically motivated simplification of the Smalltalk language Proceedings of the European Conference on Object\u2010oriented Programming June1987. InLecture Notes in Computer Science Vol. 276 Springer\u2010Verlag Berlin 1987.","DOI":"10.1007\/3-540-47891-4_1"},{"key":"e_1_2_1_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/6041.6042"},{"key":"e_1_2_1_19_2","unstructured":"N. C.Hutchinson Emerald: an object\u2010based language for distributed programming Ph. D. Thesis TR 87\u201301\u201301 Department of Computer Science University of Washington Seattle January1987."},{"key":"e_1_2_1_20_2","unstructured":"L.Cardelli J.Donahue L.Glassman M.Jordan B.KalsowandG.Nelson Modula\u20103 report (revised) Technical Report #52 Systems Research Center Digital Equipment Corporation Palo Alto California November1989."},{"key":"e_1_2_1_21_2","unstructured":"L.Cardelli Typeful programming Technical Report #45 Systems Research Center Digital Equipment Corporation Palo Alto California May1989."},{"key":"e_1_2_1_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/62058.62060"},{"key":"e_1_2_1_23_2","unstructured":"B.Meyer Static typing for Eiffel part 2 (rationale for the Eiffel rules) Article on Usenet Newsgroupcomp. language. eiffel (message\u2010id: 177@eiffel. UUCP) July1989."},{"key":"e_1_2_1_24_2","doi-asserted-by":"crossref","unstructured":"C.Schaffert T.Cooper B.Billis M. F.KilianandC.Wilpolt An introduction to Trellis\/Owl Proceedings of the ACM Conference on Object\u2010Oriented Programming Systems Languages and Applications Portland Oregon September1986 pp.9\u201316. In SIGPLAN Notices 21 (11) 9\u201316 (1986).","DOI":"10.1145\/960112.28699"},{"key":"e_1_2_1_25_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/32.4.305"},{"key":"e_1_2_1_26_2","first-page":"165","volume-title":"Research Directions in Object\u2010Oriented Programming","author":"Snyder A.","year":"1987"},{"key":"e_1_2_1_27_2","doi-asserted-by":"crossref","unstructured":"B.Liskov Data abstraction and hierarchy OOPSLA 87 Addendum to the Proceedings October1987 pp.17\u201334. In SIGPLAN Notices 23 (5) 17\u201334(1988).","DOI":"10.1145\/62139.62141"},{"key":"e_1_2_1_28_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/32.4.312"},{"key":"e_1_2_1_29_2","unstructured":"R. K.Raj Composition and reuse in object\u2010oriented languages Ph. D. Thesis University of Washington Seattle 1990."},{"key":"e_1_2_1_30_2","doi-asserted-by":"publisher","DOI":"10.1016\/0022-0000(78)90014-4"},{"key":"e_1_2_1_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/3916.3987"},{"key":"e_1_2_1_32_2","doi-asserted-by":"crossref","unstructured":"P.Rovner R.LevinandJ.Wick On extending Modula\u20102 for building large integrated systems Technical Report #3 Systems Research Center Digital Equipment Corporation Palo Alto California January1985.","DOI":"10.1109\/MS.1986.229476"},{"key":"e_1_2_1_33_2","volume-title":"Programming Languages","author":"Dijkstra E. W.","year":"1968"},{"key":"e_1_2_1_34_2","first-page":"37","volume-title":"Object\u2010Oriented Concurrent Programming","author":"Agha G.","year":"1987"},{"key":"e_1_2_1_35_2","unstructured":"A. P.Black The Eden programming language Technical Report 85\u201309\u201301 Department of Computer Science University of Washington Seattle September1985."},{"key":"e_1_2_1_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/355620.361161"},{"key":"e_1_2_1_37_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1975.6312840"},{"key":"e_1_2_1_38_2","volume-title":"Concurrent Euclid, The Unix System and Tunis","author":"Holt R. C.","year":"1983"},{"key":"e_1_2_1_39_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380110808"},{"key":"e_1_2_1_40_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380120410"},{"key":"e_1_2_1_41_2","first-page":"113","volume-title":"Research Directions in Object\u2010Oriented Programming","author":"Madsen O. L.","year":"1987"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380210107","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380210107","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,23]],"date-time":"2023-10-23T00:11:00Z","timestamp":1698019860000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380210107"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1991,1]]},"references-count":40,"journal-issue":{"issue":"1","published-print":{"date-parts":[[1991,1]]}},"alternative-id":["10.1002\/spe.4380210107"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380210107","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1991,1]]}}}