{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T20:15:33Z","timestamp":1784232933569,"version":"3.55.0"},"reference-count":48,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2022,1,12]],"date-time":"2022-01-12T00:00:00Z","timestamp":1641945600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2022,3,31]]},"abstract":"<jats:p>Effect systems have been a subject of active research for nearly four decades, with the most notable practical example being checked exceptions in programming languages such as Java. While many exception systems support abstraction, aggregation, and hierarchy (e.g., via class declaration and subclassing mechanisms), it is rare to see such expressive power in more generic effect systems. We designed an effect system around the idea of protecting system resources and incorporated our effect system into the Wyvern programming language. Similar to type members, a Wyvern object can have effect members that can abstract lower-level effects, allow for aggregation, and have both lower and upper bounds, providing for a granular effect hierarchy. We argue that Wyvern\u2019s effects capture the right balance of expressiveness and power from the programming language design perspective. We present a full formalization of our effect-system design, showing that it allows reasoning about authority and attenuation. Our approach is evaluated through a security-related case study.<\/jats:p>","DOI":"10.1145\/3492427","type":"journal-article","created":{"date-parts":[[2022,1,12]],"date-time":"2022-01-12T14:34:35Z","timestamp":1641998075000},"page":"1-48","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Bounded Abstract Effects"],"prefix":"10.1145","volume":"44","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3166-4777","authenticated-orcid":false,"given":"Darya","family":"Melicher","sequence":"first","affiliation":[{"name":"School of Computer Science, Carnegie Mellon University, Pittsburgh, PA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2263-7339","authenticated-orcid":false,"given":"Anlun","family":"Xu","sequence":"additional","affiliation":[{"name":"School of Computer Science, Carnegie Mellon University, Pittsburgh, PA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Valerie","family":"Zhao","sequence":"additional","affiliation":[{"name":"University of Chicago, Chicago, IL, United States"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Alex","family":"Potanin","sequence":"additional","affiliation":[{"name":"School of Engineering and Computer Science, Victoria University of Wellington, Wellington, New Zealand"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0631-5591","authenticated-orcid":false,"given":"Jonathan","family":"Aldrich","sequence":"additional","affiliation":[{"name":"School of Computer Science, Carnegie Mellon University, Pittsburgh, PA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2022,1,12]]},"reference":[{"key":"e_1_3_3_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/2714064.2660216"},{"key":"e_1_3_3_3_2","article-title":"Abusing text editors with third-party plugins","author":"Azouri Dor","year":"2018","unstructured":"Dor Azouri. 2018. Abusing text editors with third-party plugins. Retrieved November 17, 2021 from https:\/\/go.safebreach.com\/rs\/535-IXZ-934\/images\/Abusing_Text_Editors.pdf.","journal-title":"https:\/\/go.safebreach.com\/rs\/535-IXZ-934\/images\/Abusing_Text_Editors.pdf"},{"key":"e_1_3_3_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/3290319"},{"key":"e_1_3_3_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/3371116"},{"key":"e_1_3_3_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640097"},{"key":"e_1_3_3_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/3428194"},{"key":"e_1_3_3_8_2","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796820000027"},{"key":"e_1_3_3_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/3236762"},{"key":"e_1_3_3_10_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-02450-5_14"},{"key":"e_1_3_3_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/356678.356680"},{"key":"e_1_3_3_12_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-89719-6_6"},{"key":"e_1_3_3_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/640128.604151"},{"key":"e_1_3_3_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/2955811.2955821"},{"key":"e_1_3_3_15_2","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(91)90036-W"},{"key":"e_1_3_3_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/1707801.1706354"},{"key":"e_1_3_3_17_2","doi-asserted-by":"publisher","DOI":"10.1145\/3426428.3426913"},{"key":"e_1_3_3_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/3022670.2951939"},{"key":"e_1_3_3_19_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_8"},{"key":"e_1_3_3_20_2","doi-asserted-by":"publisher","DOI":"10.5555\/646156.679836"},{"key":"e_1_3_3_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/3276954.3276955"},{"key":"e_1_3_3_22_2","doi-asserted-by":"publisher","DOI":"10.5555\/2124243.2124264"},{"key":"e_1_3_3_23_2","doi-asserted-by":"crossref","unstructured":"Daan Leijen. 2014. Koka: Programming with Row Polymorphic Effect Types. In Electronic Proceedings in Theoretical Computer Science vol. 153. 10.4204\/EPTCS.153.8","DOI":"10.4204\/EPTCS.153.8"},{"key":"e_1_3_3_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/543552.512559"},{"key":"e_1_3_3_25_2","article-title":"Specifying Attenuation","author":"Loh Shu-Peng","year":"2017","unstructured":"Shu-Peng Loh and Sophia Drossopoulou. 2017. Specifying Attenuation. Retrieved November 17, 2021 from https:\/\/2017.splashcon.org\/event\/ocap-2017-specifying-attenuation.","journal-title":"https:\/\/2017.splashcon.org\/event\/ocap-2017-specifying-attenuation"},{"key":"e_1_3_3_26_2","first-page":"346","volume-title":"29th European Conference on Object-Oriented Programming, ECOOP 2015, July 5\u201310, 2015, Prague, Czech Republic (LIPIcs)","volume":"37","author":"Long Yuheng","year":"2015","unstructured":"Yuheng Long, Yu David Liu, and Hridesh Rajan. 2015. Intensional effect polymorphism. In 29th European Conference on Object-Oriented Programming, ECOOP 2015, July 5\u201310, 2015, Prague, Czech Republic (LIPIcs), John Tang Boyland (Ed.), Vol. 37. Schloss Dagstuhl - Leibniz-Zentrum f\u00fcr Informatik, 346\u2013370. https:\/\/doi.org\/10.4230\/LIPIcs.ECOOP.2015.346"},{"key":"e_1_3_3_27_2","volume-title":"Types and Effects towards the Integration of Functional and Imperative Programming","author":"Lucassen John M.","year":"1987","unstructured":"John M. Lucassen. 1987. Types and Effects towards the Integration of Functional and Imperative Programming. Ph.D. Dissertation. Massachusetts Institute of Technology. Retrieved from https:\/\/www.proquest.com\/dissertations-theses\/types-effects-towards-integration-functional\/docview\/303629227\/se-2?accountid=9902."},{"key":"e_1_3_3_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/73560.73564"},{"key":"e_1_3_3_29_2","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2010.16"},{"key":"e_1_3_3_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/1481861.1481868"},{"key":"e_1_3_3_31_2","volume-title":"Controlling Module Authority Using Programming Language Design","author":"Melicher Darya","year":"2020","unstructured":"Darya Melicher. 2020. Controlling Module Authority Using Programming Language Design. Ph.D. Dissertation. Carnegie Mellon University."},{"key":"e_1_3_3_32_2","unstructured":"Darya Melicher Yangqingwei Shi Alex Potanin and Jonathan Aldrich. 2017. A capability-based module system for authority control. In 31st European Conference on Object-Oriented Programming (ECOOP\u201917) Peter M\u00fcller Vol. 74. Schloss Dagstuhl - Leibniz-Zentrum f\u00fcr Informatik 20:1\u201320:27. DOI:10.4230\/LIPIcs.ECOOP.2017.20"},{"key":"e_1_3_3_33_2","volume-title":"Network and Distributed System Security Symposium","author":"Mettler Adrian","year":"2010","unstructured":"Adrian Mettler, David Wagner, and Tyler Close. 2010. Joe-E: A security-oriented subset of Java. In Network and Distributed System Security Symposium."},{"key":"e_1_3_3_34_2","doi-asserted-by":"publisher","DOI":"10.5555\/1269618"},{"key":"e_1_3_3_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/44501.45065"},{"key":"e_1_3_3_36_2","volume-title":"Joint Workshop on Foundations of Computer Security, Automated Reasoning for Security Protocol Analysis and Issues in the Theory of Security","author":"Murray Toby","year":"2008","unstructured":"Toby Murray. 2008. Analysing object-capability security. In Joint Workshop on Foundations of Computer Security, Automated Reasoning for Security Protocol Analysis and Issues in the Theory of Security."},{"key":"e_1_3_3_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/1103845.1094815"},{"key":"e_1_3_3_38_2","first-page":"339","article-title":"Information distribution aspects of design methodology","volume":"71","author":"Parnas David L.","year":"1971","unstructured":"David L. Parnas. 1971. Information distribution aspects of design methodology. IFIPS Congress 71, 339\u2013344.","journal-title":"IFIPS Congress"},{"key":"e_1_3_3_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/361598.361623"},{"key":"e_1_3_3_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/2692915.2628160"},{"key":"e_1_3_3_41_2","doi-asserted-by":"publisher","DOI":"10.1023\/A:1023064908962"},{"key":"e_1_3_3_42_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00590-9_7"},{"key":"e_1_3_3_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/3360571"},{"key":"e_1_3_3_44_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_13"},{"key":"e_1_3_3_45_2","doi-asserted-by":"publisher","DOI":"10.5555\/645393.651891"},{"key":"e_1_3_3_46_2","doi-asserted-by":"publisher","DOI":"10.5555\/1481323"},{"key":"e_1_3_3_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/1103845.1094847"},{"key":"e_1_3_3_48_2","volume-title":"Extending Abstract Effects with Bounds and Algebraic Handlers","author":"Xu Anlun","year":"2020","unstructured":"Anlun Xu. 2020. Extending Abstract Effects with Bounds and Algebraic Handlers. Master\u2019s Thesis. Carnegie Mellon University."},{"key":"e_1_3_3_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/3290318"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3492427","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3492427","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:31:09Z","timestamp":1750188669000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3492427"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,1,12]]},"references-count":48,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2022,3,31]]}},"alternative-id":["10.1145\/3492427"],"URL":"https:\/\/doi.org\/10.1145\/3492427","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,1,12]]},"assertion":[{"value":"2020-11-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-10-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-01-12","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}