{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:42:19Z","timestamp":1750308139045,"version":"3.41.0"},"reference-count":0,"publisher":"Association for Computing Machinery (ACM)","issue":"8","license":[{"start":{"date-parts":[[1969,8,1]],"date-time":"1969-08-01T00:00:00Z","timestamp":-13219200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGPLAN Not."],"published-print":{"date-parts":[[1969,8]]},"abstract":"<jats:p>One of the most important things, it seems to me, in extending a language, is somehow to have the extension smooth with respect to the base. Smoothness is an aesthetic requirement, and I can't be too precise about it; but it is also a very strong requirement, and one that is very hard to live up to when you actually come down to try to write an extension. For example, in extending a language by introducing a new data type, one should allow that new data type to appear in all contexts of the language or as many as possible. Not only in expressions, which we seem to know how to do, but also in places like input\/output. If the language has parametric data types (for example, declarable precisions) and has corresponding polymorphic operators defined over all of them, then extension should likewise have comparable capabilities for parameterization and polymorphism. This is not possible in Algol 68, for instance. (I will make frequent reference to Algol 68 in this talk for the reason that Algol 68 is defined and available, has been thought about very carefully, and therefore, is much easier to shoot at since it is a reasonably stable target.)<\/jats:p>","DOI":"10.1145\/1115858.1115870","type":"journal-article","created":{"date-parts":[[2006,5,8]],"date-time":"2006-05-08T22:51:53Z","timestamp":1147128713000},"page":"50-52","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Alternatives to extensible languages"],"prefix":"10.1145","volume":"4","author":[{"given":"M. D.","family":"McIlroy","sequence":"first","affiliation":[{"name":"Bell Telephone Laboratories, Murray Hill, New Jersey"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[1969,8]]},"container-title":["ACM SIGPLAN Notices"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1115858.1115870","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1115858.1115870","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T16:08:38Z","timestamp":1750262918000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1115858.1115870"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1969,8]]},"references-count":0,"journal-issue":{"issue":"8","published-print":{"date-parts":[[1969,8]]}},"alternative-id":["10.1145\/1115858.1115870"],"URL":"https:\/\/doi.org\/10.1145\/1115858.1115870","relation":{},"ISSN":["0362-1340","1558-1160"],"issn-type":[{"type":"print","value":"0362-1340"},{"type":"electronic","value":"1558-1160"}],"subject":[],"published":{"date-parts":[[1969,8]]},"assertion":[{"value":"1969-08-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}