{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,19]],"date-time":"2023-10-19T23:40:41Z","timestamp":1697758841612},"reference-count":8,"publisher":"Wiley","issue":"8","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":8125,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1984,8]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Aliasing of variables occurs when two or more identifiers accessible in the same scope refer to the same storage location. When aliasing is present, the meaning of assignments becomes obscure because assignment to one variable identifier may change the value of others. Some of the more obscure kinds of variable aliasing can be the cause of particularly insidious bugs in computer programs. Axiomatic proof systems, such as that used for the Euclid language, assume that no aliasing is present so that the meaning of assignment is clear. For this reason, Euclid requires that no aliasing be present in Euclid programs and requires the compiler to implement checks to ensure this. This paper discusses the features of Euclid that aid in the detection of aliasing. It enumerates the kinds of aliasing that can be present in Euclid programs and gives efficient one\u2010pass algorithms for compile\u2010time detection of potential aliases. Aliasing is related to interference between concurrent processes, and a similar algorithm for detection of inter\u2010process interference in Concurrent Euclid programs is presented.<\/jats:p>","DOI":"10.1002\/spe.4380140805","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T03:27:34Z","timestamp":1163820454000},"page":"755-768","source":"Crossref","is-referenced-by-count":2,"title":["Compile\u2014time detection of aliasing in euclid programs"],"prefix":"10.1002","volume":"14","author":[{"given":"James R.","family":"Cordy","sequence":"first","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00260921"},{"key":"e_1_2_1_3_2","unstructured":"D. B.WortmanandJ. R.Cordy \u2018Early experiences with Euclid\u2019 Proc. 5th International Conference on Software Engineering 1981."},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/954666.971189"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380040405"},{"key":"e_1_2_1_6_2","unstructured":"P. A.Matthews \u2018Concurrent Euclid: proof rules and verification condition generator\u2019 M.Sc. Thesis Department of Computer Science University of Toronto 1982."},{"issue":"4","key":"e_1_2_1_7_2","doi-asserted-by":"crossref","DOI":"10.1109\/TSE.1979.234203","article-title":"On legality assertions in Euclid","volume":"5","author":"Wortman D. B.","year":"1979","journal-title":"IEEE Transactions on Software Engineering"},{"key":"e_1_2_1_8_2","doi-asserted-by":"crossref","unstructured":"J. P.Banning \u2018An efficient way to find the side effects of procedure calls and the aliases of variables\u2019 Proc. 6th ACM Symposium on Principles of Programming Languages 1979.","DOI":"10.1145\/567752.567756"},{"key":"e_1_2_1_9_2","unstructured":"J. R.CordyandR. C.Holt \u2018Specification of Concurrent Euclid (version 1)\u2019 Technical Report CSRG\u2010133 Computer Systems Research Group University of Toronto August1981."}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380140805","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380140805","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,19]],"date-time":"2023-10-19T22:59:25Z","timestamp":1697756365000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380140805"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1984,8]]},"references-count":8,"journal-issue":{"issue":"8","published-print":{"date-parts":[[1984,8]]}},"alternative-id":["10.1002\/spe.4380140805"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380140805","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,8]]}}}