{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,29]],"date-time":"2025-10-29T03:23:49Z","timestamp":1761708229854,"version":"3.41.0"},"reference-count":57,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2008,5,1]],"date-time":"2008-05-01T00:00:00Z","timestamp":1209600000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CCR-0238328CCR-0208601CCR-0347289"],"award-info":[{"award-number":["CCR-0238328CCR-0208601CCR-0347289"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100005076","name":"ARDA","doi-asserted-by":"crossref","award":["NBCHC030106"],"award-info":[{"award-number":["NBCHC030106"]}],"id":[{"id":"10.13039\/501100005076","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2008,5]]},"abstract":"<jats:p>This article defines AspectML, a typed functional, aspect-oriented programming language. The main contribution of AspectML is the seamless integration of polymorphism, run-time type analysis and aspect-oriented programming language features. In particular, AspectML allows programmers to define type-safe polymorphic advice using pointcuts constructed from a collection of polymorphic join points. AspectML also comes equipped with a type inference algorithm that conservatively extends Hindley--Milner type inference. To support first-class polymorphic point-cut designators, a crucial feature for developing aspect-oriented profiling or logging libraries, the algorithm blends the conventional Hindley--Milner type inference algorithm with a simple form of local type inference.<\/jats:p>\n          <jats:p>We give our language operational meaning via a type-directed translation into an expressive type-safe intermediate language. Many complexities of the source language are eliminated in this translation, leading to a modular specification of its semantics. One of the novelties of the intermediate language is the definition of polymorphic labels for marking control-flow points. When a set of labels is assembled as a pointcut, the type of each label is an instance of the type of the pointcut.<\/jats:p>","DOI":"10.1145\/1353445.1353448","type":"journal-article","created":{"date-parts":[[2008,5,20]],"date-time":"2008-05-20T12:41:26Z","timestamp":1211287286000},"page":"1-60","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":31,"title":["AspectML"],"prefix":"10.1145","volume":"30","author":[{"given":"Daniel S.","family":"Dantas","sequence":"first","affiliation":[{"name":"Princeton University, Princeton, NJ"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"David","family":"Walker","sequence":"additional","affiliation":[{"name":"Princeton University, Princeton, NJ"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Geoffrey","family":"Washburn","sequence":"additional","affiliation":[{"name":"University of Pennsylvania, Philadelphia, PA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Stephanie","family":"Weirich","sequence":"additional","affiliation":[{"name":"University of Pennsylvania, Philadelphia, PA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2008,5,21]]},"reference":[{"volume-title":"Proceedings of the 10th Symposium on Network and Distributed System Security","author":"Abadi M.","key":"e_1_2_1_1_1","unstructured":"Abadi , M. and Fournet , C . 2003. Access control based on execution history . In Proceedings of the 10th Symposium on Network and Distributed System Security ( San Diego, CA). Internet Society, Reston, VA, 107--121. Abadi, M. and Fournet, C. 2003. Access control based on execution history. In Proceedings of the 10th Symposium on Network and Distributed System Security (San Diego, CA). Internet Society, Reston, VA, 107--121."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.5555\/1177220"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/11531142_7"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190221"},{"key":"e_1_2_1_5_1","unstructured":"Barendregt H. 1985. The Lambda Calculus: Its Syntax and Semantics. Number 103 in Studies in Logic. North Holland.  Barendregt H. 1985. The Lambda Calculus: Its Syntax and Semantics. Number 103 in Studies in Logic. North Holland."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065047"},{"key":"e_1_2_1_7_1","volume-title":"Proceedings of the 15th International Conference on Concurrency Theory","volume":"3170","author":"Bruns G.","unstructured":"Bruns , G. , Jagadeesan , R. , Jeffrey , A. , and Riely , J . 2004. muABC: A minimal aspect calculus . In Proceedings of the 15th International Conference on Concurrency Theory ( London, UK), P. Gardner and N. Yoshida, Eds. Lecture Notes in Computer Science , vol. 3170 . Springer, Berlin, Germany, 209--224. Bruns, G., Jagadeesan, R., Jeffrey, A., and Riely, J. 2004. muABC: A minimal aspect calculus. In Proceedings of the 15th International Conference on Concurrency Theory (London, UK), P. Gardner and N. Yoshida, Eds. Lecture Notes in Computer Science, vol. 3170. Springer, Berlin, Germany, 209--224."},{"volume-title":"Proceedings of the 2002 Workshop on Foundations of Aspect-Oriented Languages","author":"Clifton C.","key":"e_1_2_1_8_1","unstructured":"Clifton , C. and Leavens , G. T . 2002. Observers and assistants: A proposal for modular aspect-oriented reasoning . In Proceedings of the 2002 Workshop on Foundations of Aspect-Oriented Languages ( Enschede, The Netherlands). 33--44. Clifton, C. and Leavens, G. T. 2002. Observers and assistants: A proposal for modular aspect-oriented reasoning. In Proceedings of the 2002 Workshop on Foundations of Aspect-Oriented Languages (Enschede, The Netherlands). 33--44."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/325694.325703"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/976270.976279"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/582153.582176"},{"key":"e_1_2_1_12_1","volume-title":"Tech. Rep. TR-696-04","author":"Dantas D. S.","year":"2003","unstructured":"Dantas , D. S. and Walker , D . 2003 . Aspects , information hiding and modularity. Tech. Rep. TR-696-04 , Princeton University . Nov. Dantas, D. S. and Walker, D. 2003. Aspects, information hiding and modularity. Tech. Rep. TR-696-04, Princeton University. Nov."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111071"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086365.1086404"},{"key":"e_1_2_1_15_1","volume-title":"Tech. Rep. MS-CIS-05-07","author":"Dantas D. S.","year":"2005","unstructured":"Dantas , D. S. , Walker , D. , Washburn , G. , and Weirich , S . 2005 b. PolyAML : A polymorphic aspect-oriented functional programmming language (extended version). Tech. Rep. MS-CIS-05-07 , University of Pennsylvania . May. Dantas, D. S., Walker, D., Washburn, G., and Weirich, S. 2005b. PolyAML: A polymorphic aspect-oriented functional programmming language (extended version). Tech. Rep. MS-CIS-05-07, University of Pennsylvania. May."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/976270.976288"},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns","volume":"2192","author":"Douence R.","unstructured":"Douence , R. , Motelet , O. , and S\u00fcdholt , M . 2001. A formal definition of crosscuts . In Proceedings of 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns ( Kyoto, Japan), A. Yonezawa and S. Matsuoka, Eds. Lecture Notes in Computer Science , vol. 2192 . Springer-Verlag, Berlin, Germany, 170--186. Douence, R., Motelet, O., and S\u00fcdholt, M. 2001. A formal definition of crosscuts. In Proceedings of 3rd International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (Kyoto, Japan), A. Yonezawa and S. Matsuoka, Eds. Lecture Notes in Computer Science, vol. 2192. Springer-Verlag, Berlin, Germany, 170--186."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/335169.335201"},{"volume-title":"Proceedings of the 2000 IEEE Symposium on Security and Privacy","author":"Erlingsson","key":"e_1_2_1_19_1","unstructured":"Erlingsson , \u00dc. and Schneider, F. B . 2000. IRM enforcement of Java stack inspection . In Proceedings of the 2000 IEEE Symposium on Security and Privacy ( Oakland, CA). IEEE Computer Society, Washington, DC, 246--255. Erlingsson, \u00dc. and Schneider, F. B. 2000. IRM enforcement of Java stack inspection. In Proceedings of the 2000 IEEE Symposium on Security and Privacy (Oakland, CA). IEEE Computer Society, Washington, DC, 246--255."},{"volume-title":"Proceedings of the 1999 IEEE Symposium on Security and Privacy","author":"Evans D.","key":"e_1_2_1_20_1","unstructured":"Evans , D. and Twyman , A . 1999. Flexible policy-directed code safety . In Proceedings of the 1999 IEEE Symposium on Security and Privacy ( Oakland, CA). IEEE Computer Society, Washington, DC, 32--45. Evans, D. and Twyman, A. 1999. Flexible policy-directed code safety. In Proceedings of the 1999 IEEE Symposium on Security and Privacy (Oakland, CA). IEEE Computer Society, Washington, DC, 32--45."},{"key":"e_1_2_1_21_1","unstructured":"Filman R. E. and Friedman D. P. 2005. Aspect-Oriented Software Development. Addison-Wesley Boston MA Chapter Aspect-Oriented Programming is Quantification and Obliviousness 21--35.  Filman R. E. and Friedman D. P. 2005. Aspect-Oriented Software Development. Addison-Wesley Boston MA Chapter Aspect-Oriented Programming is Quantification and Obliviousness 21--35."},{"volume-title":"Proceedings of the 10th Workshop on Hot Topics in Operating Systems","author":"Fiuczynski M.","key":"e_1_2_1_22_1","unstructured":"Fiuczynski , M. , Cody , Y. , Grimm , R. , and Walker , D . 2005. Patch(1) considered harmful . In Proceedings of the 10th Workshop on Hot Topics in Operating Systems ( Santa Fe, NM). USENIX, 91--96. Fiuczynski, M., Cody, Y., Grimm, R., and Walker, D. 2005. Patch(1) considered harmful. In Proceedings of the 10th Workshop on Hot Topics in Operating Systems (Santa Fe, NM). USENIX, 91--96."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/641909.641912"},{"key":"e_1_2_1_24_1","unstructured":"Harper R. and Stone C. 1998. A type-theoretic interpretation of Standard ML. In Proof Language and Interaction: Essays in Honour of Robin Milner. The MIT Press Cambridge MA.   Harper R. and Stone C. 1998. A type-theoretic interpretation of Standard ML. In Proof Language and Interaction: Essays in Honour of Robin Milner. The MIT Press Cambridge MA."},{"key":"e_1_2_1_25_1","volume-title":"Programming Languages: Theory and Practice. In preparation, a draft can be obtained from http:\/\/www.cs.cmu.edu\/_rwh\/plbook\/.","author":"Harper R. W.","year":"2005","unstructured":"Harper , R. W. 2005 . Programming Languages: Theory and Practice. In preparation, a draft can be obtained from http:\/\/www.cs.cmu.edu\/_rwh\/plbook\/. Harper, R. W. 2005. Programming Languages: Theory and Practice. In preparation, a draft can be obtained from http:\/\/www.cs.cmu.edu\/_rwh\/plbook\/."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1007\/11737414_3"},{"volume-title":"Proceedings of the 17th European Conference on Object-Oriented Programming","author":"Jagadeesan R.","key":"e_1_2_1_27_1","unstructured":"Jagadeesan , R. , Jeffrey , A. , and Riely , J . 2003. A calculus of untyped aspect-oriented programs . In Proceedings of the 17th European Conference on Object-Oriented Programming ( Darmstadt, Germany). Springer-Verlag, Berlin, Germany, 415--427. Jagadeesan, R., Jeffrey, A., and Riely, J. 2003. A calculus of untyped aspect-oriented programs. In Proceedings of the 17th European Conference on Object-Oriented Programming (Darmstadt, Germany). Springer-Verlag, Berlin, Germany, 415--427."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2006.02.008"},{"volume-title":"Proceedings of the 15th European Conference on Object-Oriented Programming","author":"Kiczales G.","key":"e_1_2_1_29_1","unstructured":"Kiczales , G. , Hilsdale , E. , Hugunin , J. , Kersten , M. , Palm , J. , and Griswold , W . 2001. An overview of AspectJ . In Proceedings of the 15th European Conference on Object-Oriented Programming ( Budapest, Hungary). Springer-Verlag, 327--353. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. 2001. An overview of AspectJ. In Proceedings of the 15th European Conference on Object-Oriented Programming (Budapest, Hungary). Springer-Verlag, 327--353."},{"volume-title":"Proceedings of the 11th Euromicro Conference on Real-Time Systems","author":"Kim M.","key":"e_1_2_1_30_1","unstructured":"Kim , M. , Viswanathan , M. , Ben-Abdallah , H. , Kannan , S. , Lee , I. , and Sokolsky , O . 1999. Formally specified monitoring of temporal properties . In Proceedings of the 11th Euromicro Conference on Real-Time Systems ( York, UK). 114--121. Kim, M., Viswanathan, M., Ben-Abdallah, H., Kannan, S., Lee, I., and Sokolsky, O. 1999. Formally specified monitoring of temporal properties. In Proceedings of the 11th Euromicro Conference on Real-Time Systems (York, UK). 114--121."},{"volume-title":"Proceedings of the SIGPLAN Workshop on ML and its Applications","author":"Lufer K.","key":"e_1_2_1_31_1","unstructured":"Lufer , K. and Odersky , M . 1992. An extension of ML with first-class abstract types . In Proceedings of the SIGPLAN Workshop on ML and its Applications ( San Fransisco, California). 78--91. Lufer, K. and Odersky, M. 1992. An extension of ML with first-class abstract types. In Proceedings of the SIGPLAN Workshop on ML and its Applications (San Fransisco, California). 78--91."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190245"},{"volume-title":"Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications","author":"Lee I.","key":"e_1_2_1_33_1","unstructured":"Lee , I. , Kannan , S. , Kim , M. , Sokolsky , O. , and Viswanathan , M . 1999. Run-time assurance based on formal specifications . In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications ( Las Vegas, NV). Lee, I., Kannan, S., Kim, M., Sokolsky, O., and Viswanathan, M. 1999. Run-time assurance based on formal specifications. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (Las Vegas, NV)."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/46.5.542"},{"volume-title":"Proceedings of the Workshop on Foundations of Aspect-Oriented Languages","author":"Masuhara H.","key":"e_1_2_1_35_1","unstructured":"Masuhara , H. , Kiczales , G. , and Dutchyn , C . 2002. Compilation semantics of aspect-oriented programs . In Proceedings of the Workshop on Foundations of Aspect-Oriented Languages ( Lancaster, UK), G. T. Leavens and R. Cytron, Eds. 17--25. Masuhara, H., Kiczales, G., and Dutchyn, C. 2002. Compilation semantics of aspect-oriented programs. In Proceedings of the Workshop on Foundations of Aspect-Oriented Languages (Lancaster, UK), G. T. Leavens and R. Cytron, Eds. 17--25."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086365.1086405"},{"key":"e_1_2_1_37_1","unstructured":"Matthews D. 2005. Poly\/ML. http:\/\/www.polyml.org\/.  Matthews D. 2005. Poly\/ML. http:\/\/www.polyml.org\/."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1016\/0022-0000(78)90014-4"},{"key":"e_1_2_1_39_1","doi-asserted-by":"crossref","unstructured":"Milner R. Tofte M. Harper R. and MacQueen D. 1997. The Definition of Standard ML (Revised). MIT Press Cambridge MA.   Milner R. Tofte M. Harper R. and MacQueen D. 1997. The Definition of Standard ML (Revised). MIT Press Cambridge MA.","DOI":"10.7551\/mitpress\/2319.001.0001"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/1159803.1159811"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796806006034"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/268946.268967"},{"volume-title":"Machine Intelligence.","author":"Plotkin G. D.","key":"e_1_2_1_43_1","unstructured":"Plotkin , G. D. 1970. A note on inductive generalization . In Machine Intelligence. Vol. 5 . Edinburgh University Press , 153--163. Plotkin, G. D. 1970. A note on inductive generalization. In Machine Intelligence. Vol. 5. Edinburgh University Press, 153--163."},{"volume-title":"Machine Intelligence.","author":"Plotkin G. D.","key":"e_1_2_1_44_1","unstructured":"Plotkin , G. D. 1971. A further note on inductive generalization . In Machine Intelligence. Vol. 6 . Edinburgh University Press , 101--124. Plotkin, G. D. 1971. A further note on inductive generalization. In Machine Intelligence. Vol. 6. Edinburgh University Press, 101--124."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111058"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/353323.353382"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1088348.1088356"},{"key":"e_1_2_1_48_1","unstructured":"Shields M. and Peyton Jones S. 2002. Lexically scoped type variables. Microsoft Research. Available at http:\/\/research.microsoft.com\/Users\/simonpj\/papers\/scoped-tyvars.  Shields M. and Peyton Jones S. 2002. Lexically scoped type variables. Microsoft Research. Available at http:\/\/research.microsoft.com\/Users\/simonpj\/papers\/scoped-tyvars."},{"key":"e_1_2_1_49_1","volume-title":"Tech. Rep. Research Report 5462, INRIA. Jan.","author":"Simonet V.","year":"2005","unstructured":"Simonet , V. and Pottier , F . 2005 . Constraint-based type inference for guarded algebraic data types. Tech. Rep. Research Report 5462, INRIA. Jan. Simonet, V. and Pottier, F. 2005. Constraint-based type inference for guarded algebraic data types. Tech. Rep. Research Report 5462, INRIA. Jan."},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1081706.1081734"},{"key":"e_1_2_1_51_1","unstructured":"Sulzmann M. Schrijvers T. and Stuckey P. J. 2006. Type inference for GADTS via herbrand constraint abduction. http\/\/www.comp.nus.edu.sg\/~sulzmann\/manuscript\/gadtshort.ps.  Sulzmann M. Schrijvers T. and Stuckey P. J. 2006. Type inference for GADTS via herbrand constraint abduction. http\/\/www.comp.nus.edu.sg\/~sulzmann\/manuscript\/gadtshort.ps."},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/643603.643620"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/1159803.1159838"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/944705.944718"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/1018203.1018208"},{"volume-title":"Proceedings of the 5th Workshop on Foundations of Aspect-Oriented Languages","author":"Wang M.","key":"e_1_2_1_56_1","unstructured":"Wang , M. , Chen , K. , and Khoo , S . -C. 2006. On the pursuit of staticness and coherence . In Proceedings of the 5th Workshop on Foundations of Aspect-Oriented Languages ( Bonn, Germany). Wang, M., Chen, K., and Khoo, S.-C. 2006. On the pursuit of staticness and coherence. In Proceedings of the 5th Workshop on Foundations of Aspect-Oriented Languages (Bonn, Germany)."},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.2005.20"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1353445.1353448","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1353445.1353448","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T13:56:13Z","timestamp":1750254973000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1353445.1353448"}},"subtitle":["A polymorphic aspect-oriented functional programming language"],"short-title":[],"issued":{"date-parts":[[2008,5]]},"references-count":57,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2008,5]]}},"alternative-id":["10.1145\/1353445.1353448"],"URL":"https:\/\/doi.org\/10.1145\/1353445.1353448","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"type":"print","value":"0164-0925"},{"type":"electronic","value":"1558-4593"}],"subject":[],"published":{"date-parts":[[2008,5]]},"assertion":[{"value":"2006-03-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2007-03-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2008-05-21","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}