{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,3]],"date-time":"2025-09-03T10:01:17Z","timestamp":1756893677157,"version":"3.41.0"},"reference-count":23,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[1986,8,1]],"date-time":"1986-08-01T00:00:00Z","timestamp":523238400000},"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":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[1986,8]]},"abstract":"<jats:p>The ability to generate language-based editors depends on the existence of a powerful, language-independent model of editing. A model is proposed in which programs are represented as attributed abstract-syntax trees with an associated relational database. Relations can depend on the state of the attributed tree, and attributes can depend on the values in relations, provided there are no circular dependencies.<\/jats:p>\n          <jats:p>The power and the limitations of relational operations are demonstrated with respect to the support of static-semantic checking, anomaly detection, an interrogation facility, and the ability to define alternative program displays. The advantages of the hybrid system over both the purely relational and purely attribute-based systems are presented, and new algorithms are given for query evaluation and incremental view updating motivated by the efficiency requirements of interactive editing under the defined model. A prototype implementation of an editor generator is described, and suggestions for future research are made.<\/jats:p>","DOI":"10.1145\/6465.6512","type":"journal-article","created":{"date-parts":[[2002,10,7]],"date-time":"2002-10-07T13:52:47Z","timestamp":1033998767000},"page":"577-608","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":56,"title":["Generating editing environments based on relations and attributes"],"prefix":"10.1145","volume":"8","author":[{"given":"Susan","family":"Horwitz","sequence":"first","affiliation":[{"name":"Univ. of Wisconsin-Madison, Madison"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tim","family":"Teitelbaum","sequence":"additional","affiliation":[{"name":"Cornell Univ., Ithaca, NY"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[1986,8]]},"reference":[{"key":"e_1_2_1_1_2","first-page":"110","volume-title":"Conference Record of the 6th Annual ACM Symposium on Principles of Programming Languages (San Antonio, Tex.","author":"AHO A. V.","year":"1979"},{"key":"e_1_2_1_2_2","first-page":"93","volume-title":"Proceedings of the SIGPLAN 85 Symposium on Language Issues in Programming Environments","author":"BESHERS G.","year":"1985"},{"key":"e_1_2_1_3_2","first-page":"50","volume-title":"Conference Record of the 8th Annual ACM Symposium on Principles of Programming Languages (Williamsburg, Va.","author":"CHANDRA A.K.","year":"1981"},{"volume-title":"Programming in Prolog","year":"1981","author":"CLOCKSIN W. F.","key":"e_1_2_1_4_2"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/362384.362685"},{"key":"e_1_2_1_6_2","doi-asserted-by":"crossref","first-page":"43","DOI":"10.1145\/800225.806826","volume-title":"Proceedings of the SIGPLAN 85 SymposiUm on Language Issues in Programming Environments","author":"DEMERS A.","year":"1985"},{"volume-title":"Programming environments based on structured editors","year":"1980","author":"DONZEAU-GO GE, V","key":"e_1_2_1_7_2"},{"volume-title":"Generating language-based editors","year":"1985","author":"HORWITZ S.","key":"e_1_2_1_10_2"},{"key":"e_1_2_1_12_2","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1007\/BF00288644","volume":"13","author":"KASTENS U.","year":"1980","journal-title":"Acta Inf."},{"key":"e_1_2_1_13_2","doi-asserted-by":"crossref","first-page":"2","DOI":"10.1007\/BF01692511","volume":"2","author":"KNUTH D. E.","year":"1968","journal-title":"Math. Syst. Theor."},{"key":"e_1_2_1_14_2","doi-asserted-by":"crossref","first-page":"95","DOI":"10.1007\/BF01702865","volume":"5","author":"KNUTH D.E.","journal-title":"Math. Syst. Theor."},{"key":"e_1_2_1_15_2","first-page":"306","volume-title":"Proceedings of the 7th International Conference on Very Large Data Bases","author":"KOENIG S.","year":"1981"},{"key":"e_1_2_1_16_2","first-page":"132","volume-title":"Proceedings of the ACM S{GSOFT\/SIGPLAN Software Engineering Symposium on Practical Software Development Environments","author":"LINTON M. A.","year":"1984"},{"key":"e_1_2_1_18_2","doi-asserted-by":"crossref","first-page":"473","DOI":"10.1002\/spe.4380060405","volume":"6","author":"OSTERWEIL L. J.","year":"1976","journal-title":"Softw. Pract. Exper."},{"key":"e_1_2_1_19_2","doi-asserted-by":"crossref","first-page":"2","DOI":"10.1007\/BF00288969","volume":"17","author":"RAIHA K.","year":"1982","journal-title":"Acta Inf."},{"key":"e_1_2_1_20_2","first-page":"42","volume-title":"Proceedings of the ACM SIGSOFT\/SIGPLAN Software Engineering Symposium on Practical Software Development Environments","author":"RE SS, S","year":"1984"},{"volume-title":"Generating Language-Based Environments","year":"1984","author":"REPS T.","key":"e_1_2_1_21_2"},{"key":"e_1_2_1_22_2","first-page":"42","volume-title":"T. The Synthesizer Generator. In Proceedings of the ACM SIGSOFT\/SIGPLAN Software Engineering Symposium on Practical Software Development Environments","author":"REPS T.","year":"1984"},{"key":"e_1_2_1_23_2","first-page":"1","volume-title":"Conference Record of the 13th Annual ACM Symposium on Principles of Programming Languages (St. Petersburg, Fla.","author":"REPS T.","year":"1986"},{"key":"e_1_2_1_24_2","first-page":"240","volume-title":"Proceedings ACM SIGMOD","author":"SHMUELI","year":"1984"},{"key":"e_1_2_1_25_2","first-page":"124","volume-title":"Proceedings of the ACM SIGSOFT\/SIGPLAN Software Engineering Symposium on Practical Software Development Environments","author":"SNODGRASS R.","year":"1984"},{"key":"e_1_2_1_26_2","doi-asserted-by":"publisher","DOI":"10.1145\/320473.320476"},{"volume-title":"Data Structures and Network Algorithms","author":"TARJAN R.E.","key":"e_1_2_1_27_2","doi-asserted-by":"crossref","DOI":"10.1137\/1.9781611970265"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/6465.6512","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/6465.6512","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T17:43:29Z","timestamp":1750268609000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/6465.6512"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1986,8]]},"references-count":23,"journal-issue":{"issue":"4","published-print":{"date-parts":[[1986,8]]}},"alternative-id":["10.1145\/6465.6512"],"URL":"https:\/\/doi.org\/10.1145\/6465.6512","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"type":"print","value":"0164-0925"},{"type":"electronic","value":"1558-4593"}],"subject":[],"published":{"date-parts":[[1986,8]]},"assertion":[{"value":"1986-08-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}