{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,7,20]],"date-time":"2025-07-20T03:36:16Z","timestamp":1752982576737,"version":"3.41.0"},"reference-count":25,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2005,9,1]],"date-time":"2005-09-01T00:00:00Z","timestamp":1125532800000},"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":[[2005,9]]},"abstract":"<jats:p>\n            The ML module system provides powerful parameterization facilities, but lacks the ability to split mutually recursive definitions across modules and provides insufficient support for incremental programming. A promising approach to solve these issues is Ancona and Zucca's mixin module calculus\n            <jats:italic>CMS<\/jats:italic>\n            . However, the straightforward way to adapt it to ML fails, because it allows arbitrary recursive definitions to appear at any time, which ML does not otherwise support. In this article, we enrich\n            <jats:italic>CMS<\/jats:italic>\n            with a refined type system that controls recursive definitions through the use of dependency graphs. We then develop and prove sound a separate compilation scheme, directed by dependency graphs, that translates mixin modules down to a call-by-value \u03bb-calculus extended with a nonstandard let rec construct.\n          <\/jats:p>","DOI":"10.1145\/1086642.1086644","type":"journal-article","created":{"date-parts":[[2005,11,7]],"date-time":"2005-11-07T16:00:45Z","timestamp":1131379245000},"page":"857-881","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":12,"title":["Mixin modules in a call-by-value setting"],"prefix":"10.1145","volume":"27","author":[{"given":"Tom","family":"Hirschowitz","sequence":"first","affiliation":[{"name":"ENS Lyon, Lyon Cedex, France"}]},{"given":"Xavier","family":"Leroy","sequence":"additional","affiliation":[{"name":"INRIA Rocquencourt, Le Chesnay, France"}]}],"member":"320","published-online":{"date-parts":[[2005,9]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"crossref","unstructured":"Abadi M. and Cardelli L. 1996. A Theory of Objects. Springer-Verlag Berlin Germany.]]   Abadi M. and Cardelli L. 1996. A Theory of Objects. Springer-Verlag Berlin Germany.]]","DOI":"10.1007\/978-1-4419-8598-9"},{"key":"e_1_2_2_3_1","volume-title":"Proceedings of the International Conference on Principles and Practice of Declarative Programming (PPDP'99)","volume":"1702","author":"Ancona D.","unstructured":"Ancona , D. and Zucca , E . 1999. A primitive calculus for module systems . In Proceedings of the International Conference on Principles and Practice of Declarative Programming (PPDP'99) . Lecture Notes in Computer Science , vol. 1702 . Springer-Verlag, Berlin, Germany, 62--79.]] Ancona, D. and Zucca, E. 1999. A primitive calculus for module systems. In Proceedings of the International Conference on Principles and Practice of Declarative Programming (PPDP'99). Lecture Notes in Computer Science, vol. 1702. Springer-Verlag, Berlin, Germany, 62--79.]]"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796801004257"},{"key":"e_1_2_2_5_1","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1016\/S0168-0072(01)00104-X","article-title":"Skew confluence and the lambda calculus with letrec","volume":"117","author":"Ariola Z. M.","year":"2002","unstructured":"Ariola , Z. M. and Blom , S. 2002 . Skew confluence and the lambda calculus with letrec . Ann. Pure Appl. Logic 117 , 1 -- 3 , 95--178.]] Ariola, Z. M. and Blom, S. 2002. Skew confluence and the lambda calculus with letrec. Ann. Pure Appl. Logic 117, 1--3, 95--178.]]","journal-title":"Ann. Pure Appl. Logic"},{"key":"e_1_2_2_6_1","volume-title":"Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications","author":"Black A. P.","year":"2003","unstructured":"Black , A. P. , Sch\u00e4rli , N. , and Ducasse , S . 2003. Applying traits to the Smalltalk collection classes . In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications 2003 . ACM Press, New York, 47--64.]] 10.1145\/949305.949311 Black, A. P., Sch\u00e4rli, N., and Ducasse, S. 2003. Applying traits to the Smalltalk collection classes. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications 2003. ACM Press, New York, 47--64.]] 10.1145\/949305.949311"},{"key":"e_1_2_2_7_1","first-page":"325","article-title":"Subtyping for extensible, incomplete objects","volume":"38","author":"Bono V.","year":"1999","unstructured":"Bono , V. , Bugliesi , M. , Dezani-Ciancaglini , M. , and Liquori , L. 1999 . Subtyping for extensible, incomplete objects . Fund. Info. 38 , 4, 325 -- 364 .]] Bono, V., Bugliesi, M., Dezani-Ciancaglini, M., and Liquori, L. 1999. Subtyping for extensible, incomplete objects. Fund. Info. 38, 4, 325--364.]]","journal-title":"Fund. Info."},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796803004775"},{"key":"e_1_2_2_10_1","volume-title":"Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications","author":"Bracha G.","year":"1990","unstructured":"Bracha , G. and Cook , W . 1990. Mixin-based inheritance . In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications 1990 . SIGPLAN Notices, 25, 10. ACM, New York, 303--311.]] 10.1145\/97946.97982 Bracha, G. and Cook, W. 1990. Mixin-based inheritance. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications 1990. SIGPLAN Notices, 25, 10. ACM, New York, 303--311.]] 10.1145\/97946.97982"},{"key":"e_1_2_2_11_1","volume-title":"Proceedings of the 24th Symposium Principles of Programming Languages. ACM","author":"Cardelli L.","year":"1997","unstructured":"Cardelli , L. 1997 . Program fragments, linking, and modularization . In Proceedings of the 24th Symposium Principles of Programming Languages. ACM , New York, 266--277.]] 10.1145\/263699.263735 Cardelli, L. 1997. Program fragments, linking, and modularization. In Proceedings of the 24th Symposium Principles of Programming Languages. ACM, New York, 266--277.]] 10.1145\/263699.263735"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(87)90020-7"},{"key":"e_1_2_2_14_1","volume-title":"Proceedings of the Symposium on Programming Language Design and Implementation","author":"Crary K.","year":"1999","unstructured":"Crary , K. , Harper , R. , and Puri , S . 1999. What is a recursive module? In Proceedings of the Symposium on Programming Language Design and Implementation 1999 . ACM, New York, 50--63.]] 10.1145\/301618.301641 Crary, K., Harper, R., and Puri, S. 1999. What is a recursive module? In Proceedings of the Symposium on Programming Language Design and Implementation 1999. ACM, New York, 50--63.]] 10.1145\/301618.301641"},{"key":"e_1_2_2_15_1","volume-title":"Proceedings of the 31st Symposium Principles of Programming Languages. ACM","author":"Dreyer D.","year":"2004","unstructured":"Dreyer , D. 2004 . A type system for well founded recursion . In Proceedings of the 31st Symposium Principles of Programming Languages. ACM , New York, 293--305.]] 10.1145\/964001.964026 Dreyer, D. 2004. A type system for well founded recursion. In Proceedings of the 31st Symposium Principles of Programming Languages. ACM, New York, 293--305.]] 10.1145\/964001.964026"},{"key":"e_1_2_2_16_1","volume-title":"Tech. Rep. CMU-CS-01-112","author":"Dreyer D. R.","year":"2001","unstructured":"Dreyer , D. R. , Crary , K. , and Harper , R . 2001 . Toward a practical type theory for recursive modules. Tech. Rep. CMU-CS-01-112 , Carnegie Mellon University .]] Dreyer, D. R., Crary, K., and Harper, R. 2001. Toward a practical type theory for recursive modules. Tech. Rep. CMU-CS-01-112, Carnegie Mellon University.]]"},{"key":"e_1_2_2_17_1","volume-title":"Tech. Rep. CMU-CS-03-163","author":"Dreyer D.","year":"2003","unstructured":"Dreyer , D. , Harper , R. , and Crary, K. 2003 . A type system for well founded recursion. Tech. Rep. CMU-CS-03-163 , Carnegie Mellon University .]] Dreyer, D., Harper, R., and Crary, K. 2003. A type system for well founded recursion. Tech. Rep. CMU-CS-03-163, Carnegie Mellon University.]]"},{"key":"e_1_2_2_18_1","volume-title":"Proceedings of the International Conference on Functional Programming","author":"Duggan D.","year":"1996","unstructured":"Duggan , D. and Sourelis , C . 1996. Mixin modules . In Proceedings of the International Conference on Functional Programming 1996 . ACM, New York, 262--273.]] 10.1145\/232627.232654 Duggan, D. and Sourelis, C. 1996. Mixin modules. In Proceedings of the International Conference on Functional Programming 1996. ACM, New York, 262--273.]] 10.1145\/232627.232654"},{"key":"e_1_2_2_19_1","volume-title":"Proceedings of the International Conference on Functional Programming","author":"Findler R. B.","year":"1998","unstructured":"Findler , R. B. and Flatt , M . 1998. Modular object-oriented programming with units and mixins . In Proceedings of the International Conference on Functional Programming 1998 . ACM, New York, 94--104.]] 10.1145\/289423.289432 Findler, R. B. and Flatt, M. 1998. Modular object-oriented programming with units and mixins. In Proceedings of the International Conference on Functional Programming 1998. ACM, New York, 94--104.]] 10.1145\/289423.289432"},{"volume-title":"Proceedings of the Symposium on Programming Language Design and Implementation. ACM","author":"Flatt M.","key":"e_1_2_2_20_1","unstructured":"Flatt , M. and Felleisen , M . 1998. Units: cool modules for HOT languages . In Proceedings of the Symposium on Programming Language Design and Implementation. ACM , New York, 236--248.]] 10.1145\/277650.277730 Flatt, M. and Felleisen, M. 1998. Units: cool modules for HOT languages. In Proceedings of the Symposium on Programming Language Design and Implementation. ACM, New York, 236--248.]] 10.1145\/277650.277730"},{"volume-title":"Proceedings of the 25th Symposium Principles of Programming Languages. ACM","author":"Flatt M.","key":"e_1_2_2_21_1","unstructured":"Flatt , M. , Krishnamurthi , S. , and Felleisen , M . 1998. Classes and mixins . In Proceedings of the 25th Symposium Principles of Programming Languages. ACM , New York, 171--183.]] 10.1145\/268946.268961 Flatt, M., Krishnamurthi, S., and Felleisen, M. 1998. Classes and mixins. In Proceedings of the 25th Symposium Principles of Programming Languages. ACM, New York, 171--183.]] 10.1145\/268946.268961"},{"volume-title":"Proceedings of the 21st Symposium Principles of Programming Languages. ACM","author":"Harper R.","key":"e_1_2_2_22_1","unstructured":"Harper , R. and Lillibridge , M . 1994. A type-theoretic approach to higher-order modules with sharing . In Proceedings of the 21st Symposium Principles of Programming Languages. ACM , New York, 123--137.]] 10.1145\/174675.176927 Harper, R. and Lillibridge, M. 1994. A type-theoretic approach to higher-order modules with sharing. In Proceedings of the 21st Symposium Principles of Programming Languages. ACM, New York, 123--137.]] 10.1145\/174675.176927"},{"key":"e_1_2_2_24_1","volume-title":"Proceedings of the International Conference on Principles and Practice of Declarative Programming","author":"Hirschowitz T.","year":"2003","unstructured":"Hirschowitz , T. , Leroy , X. , and Wells , J. B . 2003. Compilation of extended recursion in call-by-value functional languages . In Proceedings of the International Conference on Principles and Practice of Declarative Programming 2003 . ACM, New York, 160--171.]] 10.1145\/888251.888267 Hirschowitz, T., Leroy, X., and Wells, J. B. 2003. Compilation of extended recursion in call-by-value functional languages. In Proceedings of the International Conference on Principles and Practice of Declarative Programming 2003. ACM, New York, 160--171.]] 10.1145\/888251.888267"},{"key":"e_1_2_2_25_1","volume-title":"Proceedings of the Programming Languages and Systems, 13th European Symposium on Programming, ESOP 2004. Lecture Notes in Computer Science","volume":"2986","author":"Hirschowitz T.","unstructured":"Hirschowitz , T. , Leroy , X. , and Wells , J. B . 2004. Call-by-value mixin modules: Reduction semantics, side effects, types . In Proceedings of the Programming Languages and Systems, 13th European Symposium on Programming, ESOP 2004. Lecture Notes in Computer Science , vol. 2986 . Springer-Verlag, Berlin, Germany, 64--78.]] Hirschowitz, T., Leroy, X., and Wells, J. B. 2004. Call-by-value mixin modules: Reduction semantics, side effects, types. In Proceedings of the Programming Languages and Systems, 13th European Symposium on Programming, ESOP 2004. Lecture Notes in Computer Science, vol. 2986. Springer-Verlag, Berlin, Germany, 64--78.]]"},{"key":"e_1_2_2_26_1","volume-title":"Proceedings of the 21st Symposium Principles of Programming Languages. ACM","author":"Leroy X.","year":"1994","unstructured":"Leroy , X. 1994 . Manifest types, modules, and separate compilation . In Proceedings of the 21st Symposium Principles of Programming Languages. ACM , New York, 109--122.]] 10.1145\/174675.176926 Leroy, X. 1994. Manifest types, modules, and separate compilation. In Proceedings of the 21st Symposium Principles of Programming Languages. ACM, New York, 109--122.]] 10.1145\/174675.176926"},{"key":"e_1_2_2_28_1","volume-title":"Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications","author":"Moon D. A.","year":"1986","unstructured":"Moon , D. A. 1986 . Object-oriented programming with Flavors . In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications 1986. SIGPLAN Notices, 21, 11, ACM, New York, 1--8.]] 10.1145\/28697.28698 Moon, D. A. 1986. Object-oriented programming with Flavors. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications 1986. SIGPLAN Notices, 21, 11, ACM, New York, 1--8.]] 10.1145\/28697.28698"},{"key":"e_1_2_2_29_1","volume-title":"Proceedings of the International Conference on Functional Programming","author":"Russo C.","year":"2001","unstructured":"Russo , C. 2001 . Recursive structures for Standard ML . In Proceedings of the International Conference on Functional Programming 2001. ACM, New York, 50--61.]] 10.1145\/507635.507644 Russo, C. 2001. Recursive structures for Standard ML. In Proceedings of the International Conference on Functional Programming 2001. ACM, New York, 50--61.]] 10.1145\/507635.507644"},{"key":"e_1_2_2_30_1","volume-title":"Proceedings of the Programming Languages and Systems, 9th European Symposium on Programming, ESOP","volume":"1782","author":"Wells J. B.","year":"2000","unstructured":"Wells , J. B. and Vestergaard , R . 2000. Equational reasoning for linking with first-class primitive modules . In Proceedings of the Programming Languages and Systems, 9th European Symposium on Programming, ESOP 2000 . Lecture Notes in Computer Science , vol. 1782 . Springer-Verlag, Berlin, Germany, 412--428.]] Wells, J. B. and Vestergaard, R. 2000. Equational reasoning for linking with first-class primitive modules. In Proceedings of the Programming Languages and Systems, 9th European Symposium on Programming, ESOP 2000. Lecture Notes in Computer Science, vol. 1782. Springer-Verlag, Berlin, Germany, 412--428.]]"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1086642.1086644","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1086642.1086644","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T16:08:12Z","timestamp":1750262892000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1086642.1086644"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2005,9]]},"references-count":25,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2005,9]]}},"alternative-id":["10.1145\/1086642.1086644"],"URL":"https:\/\/doi.org\/10.1145\/1086642.1086644","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"type":"print","value":"0164-0925"},{"type":"electronic","value":"1558-4593"}],"subject":[],"published":{"date-parts":[[2005,9]]},"assertion":[{"value":"2005-09-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}