{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,3,14]],"date-time":"2024-03-14T06:03:17Z","timestamp":1710396197262},"reference-count":15,"publisher":"Wiley","issue":"7","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":8156,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1984,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Adam is a high\u2010level language for parallel processing. It is intended for programming resource scheduling applications, in particular supervisory packages for run\u2010time scheduling of multiprocessing systems. An important design goal was to provide support for implementation of Ada and its run\u2010time environment. Adam has been used to implement Ada task supervision and also as a high\u2010level target language for compilation of Ada tasking.<\/jats:p><jats:p>Adam provides facilities corresponding to the Ada sequential constructs (including subprograms, packages, exceptions, generics). In addition, it provides specialized module constructs for implementation of packages that may be shared between parallel processes, and new predefined types for scheduling. The parallel processing constructs of Adam are more primitive than Ada tasking. Strong restrictions are enforced on the ways in which parallel processes can interact.<\/jats:p><jats:p>A compiler for Adam has been implemented in MacLisp on DEC PDP\u201010 computers. Runtime support packages in Adam for scheduling (on a single CPU) and I\/O are also provided. The compiler contains a library manipulation facility for separate compilation.<\/jats:p><jats:p>The Adam compiler has been used to build an Ada compiler for most of the July 1980 Ada, including task types and rendezvous constructs. This was achieved by implementing the translation of Ada tasking into Adam parallel processing as a preprocessor to the Adam compiler. This present Ada compiler, which has been operational since December 1980, uses a procedure call implementation of tasking. It can be easily modified to other implementations. Compilation of Ada tasking into a high\u2010level target language such as Adam facilitates studying questions of correctness and efficiency of various compilation algorithms, and code optimizations specific to tasking, e.g. elimination of unnecessary threads of control.<\/jats:p><jats:p>This paper gives an overview of Adam and examples of its use. Emphasis is placed on the differences from Ada. Experience using Adam to build the experimental Ada system is evaluated. Design of a run\u2010time supervisor in Adam is discussed in detail.<\/jats:p>","DOI":"10.1002\/spe.4380140702","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T03:27:15Z","timestamp":1163820435000},"page":"605-642","source":"Crossref","is-referenced-by-count":1,"title":["Adam: An Ada\u2010based language for multiprocessing"],"prefix":"10.1002","volume":"14","author":[{"given":"D. C.","family":"Luckham","sequence":"first","affiliation":[]},{"given":"F. W.","family":"Von Henke","sequence":"additional","affiliation":[]},{"given":"H. J.","family":"Larsen","sequence":"additional","affiliation":[]},{"given":"D. R.","family":"Stevenson","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"crossref","DOI":"10.21236\/ADA090709","volume-title":"Reference Manual for the Ada Programming Language: Proposed Standard Document","author":"Ichbiah J. D.","year":"1980"},{"key":"e_1_2_1_3_2","volume-title":"Ada Programming Language","author":"Ichbiah J. D.","year":"1983"},{"key":"e_1_2_1_4_2","volume-title":"The Architecture of Concurrent Programs","author":"Brinch\u2010Hansen P.","year":"1977"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380070102"},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380100802"},{"key":"e_1_2_1_7_2","unstructured":"P.Brinch\u2010Hansen The Design of Edison CSD Report University of Southern California September1980."},{"key":"e_1_2_1_8_2","doi-asserted-by":"crossref","unstructured":"K\u2010P.Lohr \u2018Beyond Concurrent Pascal\u2019 Proceedings Sixth ACM Symposium on Operating System Principles ACM SIGPLAN November1977 pp.173\u2013180.","DOI":"10.1145\/1067625.806561"},{"key":"e_1_2_1_9_2","unstructured":"A. N.HabermannandI. R.Nassi Efficient Implementation of Ada Tasks Technical Report CMU\u2010CS\u201080\u2013103 Carnegie\u2010Mellon University January1980."},{"issue":"11","key":"e_1_2_1_10_2","first-page":"166","article-title":"Algorithms for translating Ada multitasking","volume":"15","author":"Stevenson D. R.","year":"1980","journal-title":"Proceedings of the ACM SIGPLAN Symposium on the Ada Programming Language, ACM SIGPLAN Notices"},{"key":"e_1_2_1_11_2","unstructured":"D. I.Good Gypsy Manual University of Texas Report University of Texas 1980."},{"key":"e_1_2_1_12_2","unstructured":"D. C.Luckham F. W.von Henke H. J.LarsenandD. R.Stevenson ADAM\u2014An Ada\u2010based Language for Multi\u2010processing Technical Report CSL\u2010TR\u201083\u2013240 Stanford University May1983."},{"key":"e_1_2_1_13_2","doi-asserted-by":"crossref","first-page":"10","DOI":"10.1145\/3304133.3304136","volume-title":"Proceedings of the Ada Tec Conference on Ada","author":"German S. M.","year":"1982"},{"key":"e_1_2_1_14_2","doi-asserted-by":"crossref","unstructured":"D. P.HelmboldandD. C.Luckham \u2018Techniques for runtime detection of deadness errors in Ada tasking\u2019 Report in preparation 1983.","DOI":"10.21236\/ADA142239"},{"key":"e_1_2_1_15_2","unstructured":"D. C.LuckhamandE. P.Falis \u2018The Adam compiler\u2019 To be published as a Program Verification Group Report 1983."},{"key":"e_1_2_1_16_2","first-page":"1","volume-title":"Proceedings of the Ada Tec Conference on Ada","author":"Falis E. P.","year":"1982"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380140702","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380140702","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,20]],"date-time":"2023-10-20T01:13:09Z","timestamp":1697764389000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380140702"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1984,7]]},"references-count":15,"journal-issue":{"issue":"7","published-print":{"date-parts":[[1984,7]]}},"alternative-id":["10.1002\/spe.4380140702"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380140702","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,7]]}}}