{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,6,20]],"date-time":"2024-06-20T13:10:24Z","timestamp":1718889024291},"reference-count":22,"publisher":"MIT Press","issue":"4","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Artificial Life"],"published-print":{"date-parts":[[2016,11]]},"abstract":"<jats:p>Traditional digital computing demands perfectly reliable memory and processing, so programs can build structures once then use them forever\u2014but such deterministic execution is becoming ever more costly in large-scale systems. By contrast, living systems, viewed as computations, naturally tolerate fallible hardware by repairing and rebuilding structures even while in use\u2014and suggest ways to compute using massive amounts of unreliable, merely best-effort hardware. However, we currently know little about programming without deterministic execution, in architectures where traditional models of computation\u2014and deterministic ALife models such as the Game of Life\u2014need not apply. This expanded article presents ulam, a language designed to balance concurrency and programmability upon best-effort hardware, using lifelike strategies to achieve robust and scalable computations. The article reviews challenges for traditional architecture, introduces the active-media computational model for which ulam is designed, and then presents the language itself, touching on its nomenclature and surface appearance as well as some broader aspects of robust software engineering. Several ulam examples are presented; then the article concludes with a brief consideration of the couplings between a computational model and its physical implementation.<\/jats:p>","DOI":"10.1162\/artl_a_00212","type":"journal-article","created":{"date-parts":[[2016,11,8]],"date-time":"2016-11-08T21:05:21Z","timestamp":1478639121000},"page":"431-450","source":"Crossref","is-referenced-by-count":2,"title":["The<i>ulam<\/i>Programming Language for Artificial Life"],"prefix":"10.1162","volume":"22","author":[{"given":"David H.","family":"Ackley","sequence":"first","affiliation":[{"name":"University of New Mexico"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Elena S.","family":"Ackley","sequence":"additional","affiliation":[{"name":"Ackleyshack LLC"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"281","reference":[{"key":"R2","doi-asserted-by":"publisher","DOI":"10.1162\/ARTL_a_00117"},{"key":"R3","doi-asserted-by":"publisher","DOI":"10.1145\/2505340"},{"key":"R4","unstructured":"Ackley, D. H. (2016). Indefinite scalability for living computation. In Proceedings of the Thirtieth AAAI Conference on Artificial Intelligence (pp. 4142\u20134146). URL http:\/\/www.aaai.org\/ocs\/index.php\/AAAI\/AAAI16\/paper\/view\/11987."},{"key":"R5","doi-asserted-by":"publisher","DOI":"10.7551\/978-0-262-33027-5-ch097"},{"key":"R7","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/bxs129"},{"key":"R11","doi-asserted-by":"publisher","DOI":"10.1089\/cmb.2014.0074"},{"key":"R12","doi-asserted-by":"publisher","DOI":"10.1016\/j.tics.2003.09.012"},{"key":"R13","doi-asserted-by":"publisher","DOI":"10.1162\/ARTL_a_00125"},{"key":"R14","doi-asserted-by":"crossref","unstructured":"Bersini, H. & Detours, V. (1994). Asynchrony induces stability in cellular automata based models. In Artificial Life IV (pp. 382\u2013387).","DOI":"10.7551\/mitpress\/1428.003.0050"},{"key":"R16","doi-asserted-by":"publisher","DOI":"10.1109\/SUPERC.1988.44670"},{"key":"R18","doi-asserted-by":"publisher","DOI":"10.1038\/nbt1413"},{"key":"R19","unstructured":"Cappello, F., Geist, A., Gropp, B., Kal, L. V., Kramer, B. & Snir, M. (2009). Toward exascale resilience. IJHPCA, 23(4), 374\u2013388. URL http:\/\/dblp.uni-trier.de\/db\/journals\/ijhpca\/ijhpca23.html#CappelloGGKKS09."},{"key":"R22","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevLett.55.2527"},{"key":"R24","unstructured":"IEEE (1988). 1003.1-1988 INT\/1992 edition, IEEE standard interpretations of IEEE standard portable operating system interface for computer environments (IEEE Std 1003.1-1988)."},{"key":"R26","doi-asserted-by":"publisher","DOI":"10.1016\/0166-218X(91)90086-C"},{"key":"R27","doi-asserted-by":"publisher","DOI":"10.1109\/MDT.2007.166"},{"key":"R29","doi-asserted-by":"publisher","DOI":"10.1126\/science.1254642"},{"key":"R30","doi-asserted-by":"publisher","DOI":"10.1145\/2465787.2465790"},{"key":"R33","doi-asserted-by":"publisher","DOI":"10.1145\/37402.37406"},{"key":"R34","doi-asserted-by":"publisher","DOI":"10.1038\/nbt862"},{"key":"R35","unstructured":"Taylor, T. J. (1999). From artificial evolution to artificial life. Ph.D. thesis University of Edinburgh. www.tim-taylor.com\/papers\/thesis\/html\/main.html."},{"key":"R37","unstructured":"Ulam, S. (1950). Random processes and transformations. Proceedings of the International Congress on Mathematics, 2, 264\u2013275."}],"container-title":["Artificial Life"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mitpressjournals.org\/doi\/pdf\/10.1162\/ARTL_a_00212","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,6,20]],"date-time":"2024-06-20T12:53:51Z","timestamp":1718888031000},"score":1,"resource":{"primary":{"URL":"https:\/\/direct.mit.edu\/artl\/article\/22\/4\/431-450\/2851"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,11]]},"references-count":22,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2016,11]]}},"alternative-id":["10.1162\/ARTL_a_00212"],"URL":"https:\/\/doi.org\/10.1162\/artl_a_00212","relation":{},"ISSN":["1064-5462","1530-9185"],"issn-type":[{"value":"1064-5462","type":"print"},{"value":"1530-9185","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,11]]}}}