{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T05:55:57Z","timestamp":1770270957035,"version":"3.49.0"},"reference-count":40,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T00:00:00Z","timestamp":1540339200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100003246","name":"Nederlandse Organisatie voor Wetenschappelijk Onderzoek","doi-asserted-by":"publisher","award":["639.023.206"],"award-info":[{"award-number":["639.023.206"]}],"id":[{"id":"10.13039\/501100003246","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2018,10,24]]},"abstract":"<jats:p>Scope graphs are a promising generic framework to model the binding structures of programming languages, bridging formalization and implementation, supporting the definition of type checkers and the automation of type safety proofs. However, previous work on scope graphs has been limited to simple, nominal type systems. In this paper, we show that viewing scopes as types enables us to model the internal structure of types in a range of non-simple type systems (including structural records and generic classes) using the generic representation of scopes. Further, we show that relations between such types can be expressed in terms of generalized scope graph queries. We extend scope graphs with scoped relations and queries. We introduce Statix, a new domain-specific meta-language for the specification of static semantics, based on scope graphs and constraints. We evaluate the scopes as types approach and the Statix design in case studies of the simply-typed lambda calculus with records, System F, and Featherweight Generic Java.<\/jats:p>","DOI":"10.1145\/3276484","type":"journal-article","created":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T11:57:18Z","timestamp":1540382238000},"page":"1-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":28,"title":["Scopes as types"],"prefix":"10.1145","volume":"2","author":[{"given":"Hendrik","family":"van Antwerpen","sequence":"first","affiliation":[{"name":"Delft University of Technology, Netherlands"}]},{"given":"Casper","family":"Bach Poulsen","sequence":"additional","affiliation":[{"name":"Delft University of Technology, Netherlands"}]},{"given":"Arjen","family":"Rouvoet","sequence":"additional","affiliation":[{"name":"Delft University of Technology, Netherlands"}]},{"given":"Eelco","family":"Visser","sequence":"additional","affiliation":[{"name":"Delft University of Technology, Netherlands"}]}],"member":"320","published-online":{"date-parts":[[2018,10,24]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800000186"},{"key":"e_1_2_2_2_1","volume-title":"A List of Successes That Can Change the World - Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday (Lecture Notes in Computer Science), Sam Lindley, Conor McBride, Philip W","author":"Amin Nada"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009866"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/73560.73566"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009886"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/582153.582176"},{"key":"e_1_2_2_7_1","volume-title":"GTTSE 2005","author":"Ekman Torbj\u00f6rn","year":"2006"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297027.1297029"},{"key":"e_1_2_2_9_1","unstructured":"Charles M. Ellison III. 2008. A Rewriting Logic Approach to Defining Type Systems. Master\u2019s thesis. University of Illinois at Urbana-Champaign. http:\/\/hdl.handle.net\/2142\/18078 .  Charles M. Ellison III. 2008. A Rewriting Logic Approach to Defining Type Systems. Master\u2019s thesis. University of Illinois at Urbana-Champaign. http:\/\/hdl.handle.net\/2142\/18078 ."},{"key":"e_1_2_2_10_1","unstructured":"Matthias Felleisen Robby Findler and Matthew Flatt. 2009. Semantics Engineering with PLT Redex. MIT Press.   Matthias Felleisen Robby Findler and Matthew Flatt. 2009. Semantics Engineering with PLT Redex. MIT Press."},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2837614.2837620"},{"key":"e_1_2_2_12_1","doi-asserted-by":"crossref","unstructured":"Thom Fr\u00fchwirth. 2009. Constraint Handling Rules. Cambridge University Press.  Thom Fr\u00fchwirth. 2009. Constraint Handling Rules. Cambridge University Press.","DOI":"10.1017\/CBO9780511609886"},{"key":"e_1_2_2_14_1","unstructured":"Jean-Yves Girard. 1972. Interpr\u00e9tation fonctionnelle et \u00e9limination des coupures de l\u2019arithm\u00e9tique d\u2019ordre sup\u00e9rieur. Ph.D. Dissertation. Universit\u00e9 Paris 7.  Jean-Yves Girard. 1972. Interpr\u00e9tation fonctionnelle et \u00e9limination des coupures de l\u2019arithm\u00e9tique d\u2019ordre sup\u00e9rieur. Ph.D. Dissertation. Universit\u00e9 Paris 7."},{"key":"e_1_2_2_15_1","volume-title":"GTTSE 2009","author":"Hedin G\u00f6rel","year":"2009"},{"key":"e_1_2_2_16_1","article-title":"The Principal Type-Scheme of an Object in Combinatory","author":"Hindley Roger","year":"1969","journal-title":"Logic. Trans. Amer. Math. Soc 146"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/503502.503505"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048147.2048160"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869542.1869592"},{"key":"e_1_2_2_20_1","volume-title":"Programming Languages and Systems - 25th European Symposium on Programming, ESOP","author":"Keuchel Steven","year":"2016"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009868"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1016\/0022-0000(78)90014-4"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2628136.2628143"},{"key":"e_1_2_2_24_1","volume-title":"Programming Languages and Systems - 24th European Symposium on Programming, ESOP","author":"N\u00e9ron Pierre","year":"2015"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1096-9942(199901\/03)5:1%3C35::AID-TAPO4%3E3.0.CO;2-4"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/360204.360207"},{"key":"e_1_2_2_27_1","unstructured":"Benjamin C. Pierce. 2002. Types and Programming Languages. MIT Press Cambridge Massachusetts.   Benjamin C. Pierce. 2002. Types and Programming Languages. MIT Press Cambridge Massachusetts."},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/345099.345100"},{"key":"e_1_2_2_29_1","volume-title":"Advanced Topics in Types and Programming Languages, Benjamin C","author":"Pottier Fran\u00e7ois"},{"key":"e_1_2_2_30_1","volume-title":"Scopes Describe Frames: A Uniform Model for Memory Layout in Dynamic Semantics. In 30th European Conference on Object-Oriented Programming, ECOOP 2016","volume":"56","author":"Poulsen Casper Bach","year":"2016"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158104"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.5555\/647323.721503"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jlap.2010.03.012"},{"key":"e_1_2_2_34_1","volume-title":"ITP 2015, Nanjing, China, August 24-27, 2015, Proceedings (Lecture Notes in Computer Science), Christian Urban and Xingyuan Zhang (Eds.)","volume":"9236","author":"Sch\u00e4fer Steven","year":"2015"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796809990293"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1180475.1180476"},{"key":"e_1_2_2_37_1","doi-asserted-by":"crossref","unstructured":"Paul Stansifer. 2016. Flexible binding-safe programming. Ph.D. Dissertation. Northeastern University.  Paul Stansifer. 2016. Flexible binding-safe programming. Ph.D. Dissertation. Northeastern University.","DOI":"10.1017\/S0956796816000137"},{"key":"e_1_2_2_38_1","unstructured":"Rok Strnisa and Matthew J. Parkinson. 2011. Lightweight Java. Archive of Formal Proofs 2011 (2011).  Rok Strnisa and Matthew J. Parkinson. 2011. Lightweight Java. Archive of Formal Proofs 2011 (2011)."},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796807006569"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2847538.2847543"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796811000098"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276484","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276484","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:01:58Z","timestamp":1750208518000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276484"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,10,24]]},"references-count":40,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2018,10,24]]}},"alternative-id":["10.1145\/3276484"],"URL":"https:\/\/doi.org\/10.1145\/3276484","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,10,24]]},"assertion":[{"value":"2018-10-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}