{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,7]],"date-time":"2026-07-07T04:02:55Z","timestamp":1783396975780,"version":"3.54.6"},"reference-count":43,"publisher":"Association for Computing Machinery (ACM)","issue":"3","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2005,5]]},"abstract":"<jats:p>This article describes CCured, a program transformation system that adds type safety guarantees to existing C programs. CCured attempts to verify statically that memory errors cannot occur, and it inserts run-time checks where static verification is insufficient.CCured extends C's type system by separating pointer types according to their usage, and it uses a surprisingly simple type inference algorithm that is able to infer the appropriate pointer kinds for existing C programs. CCured uses physical subtyping to recognize and verify a large number of type casts at compile time. Additional type casts are verified using run-time type information. CCured uses two instrumentation schemes, one that is optimized for performance and one in which metadata is stored in a separate data structure whose shape mirrors that of the original user data. This latter scheme allows instrumented programs to invoke external functions directly on the program's data without the use of a wrapper function.We have used CCured on real-world security-critical network daemons to produce instrumented versions without memory-safety vulnerabilities, and we have found several bugs in these programs. The instrumented code is efficient enough to be used in day-to-day operations.<\/jats:p>","DOI":"10.1145\/1065887.1065892","type":"journal-article","created":{"date-parts":[[2005,8,3]],"date-time":"2005-08-03T08:30:55Z","timestamp":1123057855000},"page":"477-526","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":264,"title":["CCured: type-safe retrofitting of legacy software"],"prefix":"10.1145","volume":"27","author":[{"given":"George C.","family":"Necula","sequence":"first","affiliation":[{"name":"University of California, Berkeley, Berkeley, CA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jeremy","family":"Condit","sequence":"additional","affiliation":[{"name":"University of California, Berkeley, Berkeley, CA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Matthew","family":"Harren","sequence":"additional","affiliation":[{"name":"University of California, Berkeley, Berkeley, CA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Scott","family":"McPeak","sequence":"additional","affiliation":[{"name":"University of California, Berkeley, Berkeley, CA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Westley","family":"Weimer","sequence":"additional","affiliation":[{"name":"University of California, Berkeley, Berkeley, CA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2005,5]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/103135.103138"},{"key":"e_1_2_1_2_1","volume-title":"Also in Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation. 10","author":"Austin T. M.","unstructured":"Austin , T. M. , Breach , S. E. , and Sohi , G. S . 1994. Efficient detection of all pointer and array access errors. SIGPLAN Not. 29, 6 (June), 290--301 . Also in Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation. 10 .1145\/773473.178446 Austin, T. M., Breach, S. E., and Sohi, G. S. 1994. Efficient detection of all pointer and array access errors. SIGPLAN Not. 29, 6 (June), 290--301. Also in Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation. 10.1145\/773473.178446"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380180902"},{"key":"e_1_2_1_4_1","unstructured":"Cardelli L. Donahue J. Glassman L. Jordan M. Kalsow B. and Nelson G. 1989. Modula-3 report (rev.). SRC Research rep. 52. Digital Equipment Corporation Systems Research Center Palo alto CA.  Cardelli L. Donahue J. Glassman L. Jordan M. Kalsow B. and Nelson G. 1989. Modula-3 report (rev.). SRC Research rep. 52. Digital Equipment Corporation Systems Research Center Palo alto CA."},{"key":"e_1_2_1_5_1","unstructured":"Carlisle M. C. 1996. Olden: Parallelizing programs with dynamic data structures on distributed-memory machines. Ph.D. dissertation. Princeton University Department of Computer Science Princeton NJ.   Carlisle M. C. 1996. Olden: Parallelizing programs with dynamic data structures on distributed-memory machines. Ph.D. dissertation. Princeton University Department of Computer Science Princeton NJ."},{"key":"e_1_2_1_6_1","volume-title":"Proceedings of the '91 Conference on Programming Language Design and Implementation. 278--292","author":"Cartwright R.","unstructured":"Cartwright , R. and Fagan , M . 1991. Soft typing . In Proceedings of the '91 Conference on Programming Language Design and Implementation. 278--292 . 10.1145\/113445.113469 Cartwright, R. and Fagan, M. 1991. Soft typing. In Proceedings of the '91 Conference on Programming Language Design and Implementation. 278--292. 10.1145\/113445.113469"},{"key":"e_1_2_1_7_1","unstructured":"CERT Coordination Center. 2003. CERT Advisory CA-2003-12: Buffer overflow in sendmail. Web site: http:\/\/www.cert.org\/advisories\/CA-2003-12.html.  CERT Coordination Center. 2003. CERT Advisory CA-2003-12: Buffer overflow in sendmail. Web site: http:\/\/www.cert.org\/advisories\/CA-2003-12.html."},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering. Software Engeneering Notes (SEN)","volume":"24","author":"Chandra S.","unstructured":"Chandra , S. and Reps , T . 1999. Physical type checking for C . In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering. Software Engeneering Notes (SEN) , vol. 24 .5. ACM Press, New York, NY, 66--75. 10.1145\/316158.316183 Chandra, S. and Reps, T. 1999. Physical type checking for C. In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering. Software Engeneering Notes (SEN), vol. 24.5. ACM Press, New York, NY, 66--75. 10.1145\/316158.316183"},{"key":"e_1_2_1_9_1","volume-title":"Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation. ACM","author":"Condit J.","unstructured":"Condit , J. , Harren , M. , Necula , G. C. , McPeak , S. , and Weimer , W . 2003. CCured in the real world . In Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation. ACM , Press, New York, NY, 232--244. 10.1145\/781131.781157 Condit, J., Harren, M., Necula, G. C., McPeak, S., and Weimer, W. 2003. CCured in the real world. In Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation. ACM, Press, New York, NY, 232--244. 10.1145\/781131.781157"},{"key":"e_1_2_1_10_1","volume-title":"Proceedings of the International Conference on Functional Programming. 301--312","author":"Crary K.","unstructured":"Crary , K. , Weirich , S. , and Morrisett , J. G . 1998. Intensional polymorphism in type-erasure semantics . In Proceedings of the International Conference on Functional Programming. 301--312 . 10.1145\/289423.289459 Crary, K., Weirich, S., and Morrisett, J. G. 1998. Intensional polymorphism in type-erasure semantics. In Proceedings of the International Conference on Functional Programming. 301--312. 10.1145\/289423.289459"},{"key":"e_1_2_1_11_1","volume-title":"Proceedings of the Conference on Programming Language Design and Implementation. 10","author":"Das M.","year":"2000","unstructured":"Das , M. 2000 . Unification-based pointer analysis with directional assignments . In Proceedings of the Conference on Programming Language Design and Implementation. 10 .1145\/349299.349309 Das, M. 2000. Unification-based pointer analysis with directional assignments. In Proceedings of the Conference on Programming Language Design and Implementation. 10.1145\/349299.349309"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/314602.314604"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/249069.231389"},{"key":"e_1_2_1_14_1","volume-title":"Conference Record of POPL '95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","author":"Harper R.","year":"1994","unstructured":"Harper , R. and Morrisett , G . 1995. Compiling polymorphism using intensional type analysis . In Conference Record of POPL '95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages ( San Francisco, CA). 130--141. 10.1145\/ 1994 48.199475 Harper, R. and Morrisett, G. 1995. Compiling polymorphism using intensional type analysis. In Conference Record of POPL '95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (San Francisco, CA). 130--141. 10.1145\/199448.199475"},{"key":"e_1_2_1_15_1","volume-title":"Proceedings of the Usenix","author":"Hastings R.","year":"1992","unstructured":"Hastings , R. and Joyce , B . 1991. Purify: Fast detection of memory leaks and access errors . In Proceedings of the Usenix Winter 1992 Technical Conference. Usenix Association, Berkeley, CA, 125--138. Hastings, R. and Joyce, B. 1991. Purify: Fast detection of memory leaks and access errors. In Proceedings of the Usenix Winter 1992 Technical Conference. Usenix Association, Berkeley, CA, 125--138."},{"key":"e_1_2_1_16_1","volume-title":"Proceedings of the 1992 ACM Conference on LISP and Functional Programming. 205--215","author":"Henglein F.","year":"1992","unstructured":"Henglein , F. 1992 . Global tagging optimization by type inference . In Proceedings of the 1992 ACM Conference on LISP and Functional Programming. 205--215 . 10.1145\/141471.141542 Henglein, F. 1992. Global tagging optimization by type inference. In Proceedings of the 1992 ACM Conference on LISP and Functional Programming. 205--215. 10.1145\/141471.141542"},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of the 21th Annual ACM Symposium on Principles of Programming Languages. ACM, 213--226","author":"Henglein F.","unstructured":"Henglein , F. and Jorgensen , J . 1994. Formally optimal boxing . In Proceedings of the 21th Annual ACM Symposium on Principles of Programming Languages. ACM, 213--226 . 10.1145\/174675.177874 Henglein, F. and Jorgensen, J. 1994. Formally optimal boxing. In Proceedings of the 21th Annual ACM Symposium on Principles of Programming Languages. ACM, 213--226. 10.1145\/174675.177874"},{"key":"e_1_2_1_19_1","unstructured":"ISO\/IEC. 1999. ISO\/IEC 9899:1999(E) Programming Languages---C. ISO\/IEC Geneva Switzerland. Web site: www.iso.ch.  ISO\/IEC. 1999. ISO\/IEC 9899:1999(E) Programming Languages---C. ISO\/IEC Geneva Switzerland. Web site: www.iso.ch."},{"key":"e_1_2_1_20_1","volume-title":"Proceedings of the Second International Static Analysis Symposium","volume":"983","author":"Jagannathan S.","unstructured":"Jagannathan , S. and Wright , A . 1995. Effective flow analysis for avoiding run-time checks . In Proceedings of the Second International Static Analysis Symposium , Vol. 983 . Springer-Verlag, Berlin, Germany, 207--224. Jagannathan, S. and Wright, A. 1995. Effective flow analysis for avoiding run-time checks. In Proceedings of the Second International Static Analysis Symposium, Vol. 983. Springer-Verlag, Berlin, Germany, 207--224."},{"key":"e_1_2_1_21_1","volume-title":"Proceedings of the USENIX Annual Technical Conference","author":"Jim T.","unstructured":"Jim , T. , Morrisett , G. , Grossman , D. , Hicks , M. , Cheney , J. , and Wang , Y . 2002. Cyclone: A safe dialect of C . In Proceedings of the USENIX Annual Technical Conference ( Monetery, CA). Jim, T., Morrisett, G., Grossman, D., Hicks, M., Cheney, J., and Wang, Y. 2002. Cyclone: A safe dialect of C. In Proceedings of the USENIX Annual Technical Conference (Monetery, CA)."},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of the Third International Workshop on Automatic Debugging (May). 13--26","author":"Jones R. W. M.","unstructured":"Jones , R. W. M. and Kelly , P. H. J. 1997. Backwards-compatible bounds checking for arrays and pointers in C programs . In Proceedings of the Third International Workshop on Automatic Debugging (May). 13--26 . Jones, R. W. M. and Kelly, P. H. J. 1997. Backwards-compatible bounds checking for arrays and pointers in C programs. In Proceedings of the Third International Workshop on Automatic Debugging (May). 13--26."},{"key":"e_1_2_1_23_1","volume-title":"Proceedings of the Summer Usenix Conference. 161--171","author":"Kaufer S.","unstructured":"Kaufer , S. , Lopez , R. , and Pratap , S . 1988. Saber-C: An interpreter-based programming environment for the C language . In Proceedings of the Summer Usenix Conference. 161--171 . Kaufer, S., Lopez, R., and Pratap, S. 1988. Saber-C: An interpreter-based programming environment for the C language. In Proceedings of the Summer Usenix Conference. 161--171."},{"key":"e_1_2_1_24_1","doi-asserted-by":"crossref","unstructured":"Kind A. and Friedrich H. 1993. A practical approach to type inference for EuLisp. Lisp Symbol. Computa. 6 1\/2 159--176. 10.1007\/BF01025919   Kind A. and Friedrich H. 1993. A practical approach to type inference for EuLisp. Lisp Symbol. Computa. 6 1\/2 159--176. 10.1007\/BF01025919","DOI":"10.1007\/BF01025919"},{"key":"e_1_2_1_25_1","volume-title":"A description of the Cedar language. Tech. rep. CSL-83-15","author":"Lampson B.","unstructured":"Lampson , B. 1983. A description of the Cedar language. Tech. rep. CSL-83-15 . Xerox Palo Alto Research Center, Palo Alto , CA. Lampson, B. 1983. A description of the Cedar language. Tech. rep. CSL-83-15. Xerox Palo Alto Research Center, Palo Alto, CA."},{"key":"e_1_2_1_26_1","unstructured":"Liskov B. Atkinson R. R. Bloom T. Moss E. B. Schaffert R. and Snyder A. 1981. CLU Reference Manual. Springer-Verlag Berlin Germany.   Liskov B. Atkinson R. R. Bloom T. Moss E. B. Schaffert R. and Snyder A. 1981. CLU Reference Manual. Springer-Verlag Berlin Germany."},{"key":"e_1_2_1_27_1","volume-title":"Proceedings of FASE 2001: Fundamental Approaches to Software Engineering.","author":"Loginov A.","unstructured":"Loginov , A. , Yong , S. , Horwitz , S. , and Reps , T . 2001. Debugging via run-time type checking . In Proceedings of FASE 2001: Fundamental Approaches to Software Engineering. Loginov, A., Yong, S., Horwitz, S., and Reps, T. 2001. Debugging via run-time type checking. In Proceedings of FASE 2001: Fundamental Approaches to Software Engineering."},{"key":"e_1_2_1_28_1","volume-title":"Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages. ACM","author":"Necula G. C.","unstructured":"Necula , G. C. , McPeak , S. , and Weimer , W . 2002a. CCured: Type-safe retrofitting of legacy code . In Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages. ACM , Press, New York, NY, 128--139. 10.1145\/503272.503286 Necula, G. C., McPeak, S., and Weimer, W. 2002a. CCured: Type-safe retrofitting of legacy code. In Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages. ACM, Press, New York, NY, 128--139. 10.1145\/503272.503286"},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the International Conference on Compiler Construction","author":"Necula G. C.","unstructured":"Necula , G. C. , McPeak , S. , and Weimer , W . 2002b. CIL: Intermediate language and tools for the analysis of C programs . In Proceedings of the International Conference on Compiler Construction ( Grenoble, France). 213--228. Available online from http:\/\/raw.cs.berkeley.edu\/Papers\/. Necula, G. C., McPeak, S., and Weimer, W. 2002b. CIL: Intermediate language and tools for the analysis of C programs. In Proceedings of the International Conference on Compiler Construction (Grenoble, France). 213--228. Available online from http:\/\/raw.cs.berkeley.edu\/Papers\/."},{"key":"e_1_2_1_30_1","volume-title":"Proceedings of the Conference on Automated and Algorithmic Debugging. 119--132","author":"Patil H.","unstructured":"Patil , H. and Fischer , C. N . 1995. Efficient run-time monitoring using shadow processing . In Proceedings of the Conference on Automated and Algorithmic Debugging. 119--132 . Patil, H. and Fischer, C. N. 1995. Efficient run-time monitoring using shadow processing. In Proceedings of the Conference on Automated and Algorithmic Debugging. 119--132."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1097-024X(199701)27:1%3C87::AID-SPE78%3E3.0.CO;2-P"},{"key":"e_1_2_1_32_1","volume-title":"Proceedings of the Symposium on Principles of Programming Languages. 119--132","author":"Ramalingam G.","unstructured":"Ramalingam , G. , Field , J. , and Tip , F . 1999. Aggregate structure identification and its application to program analysis . In Proceedings of the Symposium on Principles of Programming Languages. 119--132 . 10.1145\/292540.292553 Ramalingam, G., Field, J., and Tip, F. 1999. Aggregate structure identification and its application to program analysis. In Proceedings of the Symposium on Principles of Programming Languages. 119--132. 10.1145\/292540.292553"},{"key":"e_1_2_1_33_1","volume-title":"Proceedings of the Symposium on Principles of Programming Languages. 40--53","author":"Remy D.","unstructured":"Remy , D. and Vouillon , J . 1997. Objective ML: A simple object-oriented extension of ML . In Proceedings of the Symposium on Principles of Programming Languages. 40--53 . 10.1145\/263699.263707 Remy, D. and Vouillon, J. 1997. Objective ML: A simple object-oriented extension of ML. In Proceedings of the Symposium on Principles of Programming Languages. 40--53. 10.1145\/263699.263707"},{"key":"e_1_2_1_34_1","unstructured":"SecuriTeam.com. 2000. PHP3\/PHP4 format string vulnerability. Web site: http:\/\/www.securiteam.com\/securitynews\/6O00T0K03O.html.  SecuriTeam.com. 2000. PHP3\/PHP4 format string vulnerability. Web site: http:\/\/www.securiteam.com\/securitynews\/6O00T0K03O.html."},{"key":"e_1_2_1_35_1","unstructured":"Seward J. 2003. Valgrind an open-source memory debugger for x86-GNU\/Linux. Tech. rep. Available online at http:\/\/developer.kde.org\/sewardj\/.  Seward J. 2003. Valgrind an open-source memory debugger for x86-GNU\/Linux. Tech. rep. Available online at http:\/\/developer.kde.org\/sewardj\/."},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the Symposium on Principles of Programming Languages. 289--302","author":"Shields M.","unstructured":"Shields , M. , Sheard , T. , and Jones , S. L. P. 1998. Dynamic typing as staged type inference . In Proceedings of the Symposium on Principles of Programming Languages. 289--302 . 10.1145\/268946.268970 Shields, M., Sheard, T., and Jones, S. L. P. 1998. Dynamic typing as staged type inference. In Proceedings of the Symposium on Principles of Programming Languages. 289--302. 10.1145\/268946.268970"},{"key":"e_1_2_1_37_1","volume-title":"1999 ACM Foundations on Software Engineering Conference. Lecture Notes in Computer Science","volume":"1687","author":"Siff M.","unstructured":"Siff , M. , Chandra , S. , Ball , T. , Kunchithapadam , K. , and Reps , T . 1999. Coping with type casts in C . In 1999 ACM Foundations on Software Engineering Conference. Lecture Notes in Computer Science , vol. 1687 . Springer-Verlag, Berlin, Germany, ACM Press, New York, NY, 180--198. Siff, M., Chandra, S., Ball, T., Kunchithapadam, K., and Reps, T. 1999. Coping with type casts in C. In 1999 ACM Foundations on Software Engineering Conference. Lecture Notes in Computer Science, vol. 1687. Springer-Verlag, Berlin, Germany, ACM Press, New York, NY, 180--198."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-6423(97)00030-0"},{"key":"e_1_2_1_39_1","volume-title":"Standard Performance Evaluation Corporation Benchmarks. Web site: http:\/\/www.spec.org\/osg\/cpu95\/CINT95","unstructured":"SPEC. 1995. Standard Performance Evaluation Corporation Benchmarks. Web site: http:\/\/www.spec.org\/osg\/cpu95\/CINT95 . SPEC. 1995. Standard Performance Evaluation Corporation Benchmarks. Web site: http:\/\/www.spec.org\/osg\/cpu95\/CINT95."},{"key":"e_1_2_1_40_1","volume-title":"Proceedings of the Symposium on Principles of Programming Languages. 32--41","author":"Steensgaard B.","year":"1996","unstructured":"Steensgaard , B. 1996 . Points-to analysis in almost linear time . In Proceedings of the Symposium on Principles of Programming Languages. 32--41 . 10.1145\/237721.237727 Steensgaard, B. 1996. Points-to analysis in almost linear time. In Proceedings of the Symposium on Principles of Programming Languages. 32--41. 10.1145\/237721.237727"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380220403"},{"key":"e_1_2_1_42_1","volume-title":"Proceedings of the Conference record of the 17th ACM Symposium on Principles of Programming Languages (POPL). 367--381","author":"Thatte S.","year":"1990","unstructured":"Thatte , S. 1990 . Quasi-static typing . In Proceedings of the Conference record of the 17th ACM Symposium on Principles of Programming Languages (POPL). 367--381 . 10.1145\/96709.96747 Thatte, S. 1990. Quasi-static typing. In Proceedings of the Conference record of the 17th ACM Symposium on Principles of Programming Languages (POPL). 367--381. 10.1145\/96709.96747"},{"key":"e_1_2_1_43_1","volume-title":"Proceedings of the Network Distributed Systems Security Symposium. 1--15","author":"Wagner D.","unstructured":"Wagner , D. , Foster , J. , Brewer , E. , and Aiken , A . 2000. A first step toward automated detection of buffer overrun vulnerabilities . In Proceedings of the Network Distributed Systems Security Symposium. 1--15 . Wagner, D., Foster, J., Brewer, E., and Aiken, A. 2000. A first step toward automated detection of buffer overrun vulnerabilities. In Proceedings of the Network Distributed Systems Security Symposium. 1--15."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/239912.239917"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1065887.1065892","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T16:54:42Z","timestamp":1672246482000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1065887.1065892"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2005,5]]},"references-count":43,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2005,5]]}},"alternative-id":["10.1145\/1065887.1065892"],"URL":"https:\/\/doi.org\/10.1145\/1065887.1065892","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2005,5]]},"assertion":[{"value":"2005-05-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}