{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,1]],"date-time":"2025-10-01T15:19:05Z","timestamp":1759331945414,"version":"3.41.0"},"reference-count":78,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2017,10,12]],"date-time":"2017-10-12T00:00:00Z","timestamp":1507766400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Hewlett Packard Labs"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2017,10,12]]},"abstract":"<jats:p>Direct sharing and storing of memory objects allows high-performance and low-overhead collaboration between parallel processes or application workflows with loosely coupled programs. However, sharing of objects is hindered by the inability to use subtype polymorphism which is common in object-oriented programming languages. That is because implementations of subtype polymorphism in modern compilers rely on using virtual tables stored at process-specific locations, which makes objects unusable in processes other than the creating process.<\/jats:p>\n          <jats:p>In this paper, we present SAVI Objects, objects with Sharing and Virtuality Incorporated. SAVI Objects support subtype polymorphism but can still be shared across processes and stored in persistent data structures. We propose two different techniques to implement SAVI Objects and evaluate the tradeoffs between them. The first technique is virtual table duplication which adheres to the virtual-table-based implementation of subtype polymorphism, but duplicates virtual tables for shared objects to fixed memory addresses associated with each shared memory region. The second technique is hashing-based dynamic dispatch which re-implements subtype polymorphism using hashing-based look-ups to a global virtual table.<\/jats:p>\n          <jats:p>Our results show that SAVI Objects enable direct sharing and storing of memory objects that use subtype polymorphism by adding modest overhead costs to object construction and dynamic dispatch time. SAVI Objects thus enable faster inter-process communication, improving the overall performance of production applications that share polymorphic objects.<\/jats:p>","DOI":"10.1145\/3133869","type":"journal-article","created":{"date-parts":[[2017,10,13]],"date-time":"2017-10-13T15:15:45Z","timestamp":1507907745000},"page":"1-24","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["SAVI objects: sharing and virtuality incorporated"],"prefix":"10.1145","volume":"1","author":[{"given":"Izzat","family":"El Hajj","sequence":"first","affiliation":[{"name":"University of Illinois at Urbana-Champaign, USA \/ Hewlett Packard Labs, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Thomas B.","family":"Jablin","sequence":"additional","affiliation":[{"name":"University of Illinois at Urbana-Champaign, USA \/ Multicoreware, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Dejan","family":"Milojicic","sequence":"additional","affiliation":[{"name":"Hewlett Packard Labs, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Wen-mei","family":"Hwu","sequence":"additional","affiliation":[{"name":"University of Illinois at Urbana-Champaign, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,10,12]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0053060"},{"key":"e_1_2_1_2_1","volume-title":"https:\/\/avro.apache.org","author":"Avro Apache","year":"2012","unstructured":"Apache Avro . 2012. Apache Avro . ( 2012 ). https:\/\/avro.apache.org Apache Avro. 2012. Apache Avro. (2012). https:\/\/avro.apache.org"},{"key":"e_1_2_1_3_1","volume-title":"Proceedings of the 12th USENIX Conference on File and Storage Technologies (FAST\u00e2\u0102\u017914)","author":"Asanovic Krste","year":"2014","unstructured":"Krste Asanovic . 2014 . FireBox: A Hardware Building Block for 2020 Warehouse-Scale Computers . In Proceedings of the 12th USENIX Conference on File and Storage Technologies (FAST\u00e2\u0102\u017914) . USENIX Association, Santa Clara, CA, USA. https:\/\/www.usenix.org\/conference\/fast14\/technical-sessions\/presentation\/keynote Krste Asanovic. 2014. FireBox: A Hardware Building Block for 2020 Warehouse-Scale Computers. In Proceedings of the 12th USENIX Conference on File and Storage Technologies (FAST\u00e2\u0102\u017914). USENIX Association, Santa Clara, CA, USA. https:\/\/www.usenix.org\/conference\/fast14\/technical-sessions\/presentation\/keynote"},{"volume-title":"Fast and effective optimization of statically typed object-oriented languages","author":"Bacon David Francis","key":"e_1_2_1_4_1","unstructured":"David Francis Bacon . 1997. Fast and effective optimization of statically typed object-oriented languages . University of California , Berkeley. David Francis Bacon. 1997. Fast and effective optimization of statically typed object-oriented languages. University of California, Berkeley."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/236337.236371"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2544137.2544165"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984019"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380231202"},{"key":"e_1_2_1_10_1","unstructured":"Boost C++ Libraries. 2015a. Managed Memory Segments. (2015). http:\/\/www.boost.org\/doc\/libs\/1_61_0\/doc\/html\/ interprocess\/managed_memory_segments.html  Boost C++ Libraries. 2015a. Managed Memory Segments. (2015). http:\/\/www.boost.org\/doc\/libs\/1_61_0\/doc\/html\/ interprocess\/managed_memory_segments.html"},{"key":"e_1_2_1_11_1","unstructured":"Boost C++ Libraries. 2015b. Sharing memory between processes \u2013 Virtuality Forbidden. (2015). http:\/\/www.boost.org\/doc\/ libs\/1_47_0\/doc\/html\/interprocess\/sharedmemorybetweenprocesses.html  Boost C++ Libraries. 2015b. Sharing memory between processes \u2013 Virtuality Forbidden. (2015). http:\/\/www.boost.org\/doc\/ libs\/1_47_0\/doc\/html\/interprocess\/sharedmemorybetweenprocesses.html"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2883591.2883600"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.14722\/ndss.2016.23421"},{"key":"e_1_2_1_14_1","volume-title":"Extensible markup language (XML)","author":"Bray Tim","year":"1998","unstructured":"Tim Bray , Jean Paoli , C Michael Sperberg-McQueen , Eve Maler , and Fran\u00e7ois Yergeau . 1998. Extensible markup language (XML) . World Wide Web Consortium Recommendation REC-xml- 1998 0210. http:\/\/www. w3. org\/TR\/1998\/REC-xml-19980210 16 (1998), 16. Tim Bray, Jean Paoli, C Michael Sperberg-McQueen, Eve Maler, and Fran\u00e7ois Yergeau. 1998. Extensible markup language (XML). World Wide Web Consortium Recommendation REC-xml-19980210. http:\/\/www. w3. org\/TR\/1998\/REC-xml-19980210 16 (1998), 16."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2015.368"},{"key":"e_1_2_1_16_1","volume-title":"Method and system for accessing c++ objects in shared memory. (Feb. 6","author":"Burshteyn B.","year":"2014","unstructured":"B. Burshteyn . 2014. Method and system for accessing c++ objects in shared memory. (Feb. 6 2014 ). https:\/\/www.google. com\/patents\/US20140040566 US Patent App . 13\/956,595. B. Burshteyn. 2014. Method and system for accessing c++ objects in shared memory. (Feb. 6 2014). https:\/\/www.google. com\/patents\/US20140040566 US Patent App. 13\/956,595."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/174675.177973"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2660193.2660224"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/3030207.3030244"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3079856.3080237"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950380"},{"key":"e_1_2_1_22_1","doi-asserted-by":"crossref","unstructured":"Douglas Crockford. 2006. The application\/json media type for javascript object notation (json). (2006).  Douglas Crockford. 2006. The application\/json media type for javascript object notation (json). (2006).","DOI":"10.17487\/rfc4627"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-49538-X_5"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-48743-3_12"},{"key":"e_1_2_1_25_1","volume-title":"Network and Distributed System Security Symposium (NDSS).","author":"Dewey David","year":"2012","unstructured":"David Dewey and Jonathon T Giffin . 2012 . Static detection of C++ vtable escape vulnerabilities in binary code .. In Network and Distributed System Security Symposium (NDSS). David Dewey and Jonathon T Giffin. 2012. Static detection of C++ vtable escape vulnerabilities in binary code.. In Network and Distributed System Security Symposium (NDSS)."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984013"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2017.7863745"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/236337.236369"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-49538-X_13"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2872362.2872366"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3052973.3052976"},{"volume-title":"Simple and effective link-time optimization of Modula-3 programs","author":"Fernandez Mary F","key":"e_1_2_1_32_1","unstructured":"Mary F Fernandez . 1995. Simple and effective link-time optimization of Modula-3 programs . Vol. 30 . ACM. Mary F Fernandez. 1995. Simple and effective link-time optimization of Modula-3 programs. Vol. 30. ACM."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2664243.2664249"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISPASS.2017.7975269"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/217838.217848"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2818000.2818025"},{"volume-title":"Adaptive optimization for SELF: reconciling high performance with exploratory programming. Number 1520. Department of Computer Science","author":"Holzle Urs","key":"e_1_2_1_37_1","unstructured":"Urs Holzle and David M Ungar . 1994. Adaptive optimization for SELF: reconciling high performance with exploratory programming. Number 1520. Department of Computer Science , Stanford University . Urs Holzle and David M Ungar. 1994. Adaptive optimization for SELF: reconciling high performance with exploratory programming. Number 1520. Department of Computer Science, Stanford University."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.5555\/782185.782214"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2015.46"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353191"},{"key":"e_1_2_1_41_1","doi-asserted-by":"crossref","unstructured":"Dongseok Jang Zachary Tatlock and Sorin Lerner. 2014. SafeDispatch: Securing C++ Virtual Calls from Memory Corruption Attacks.. In NDSS.  Dongseok Jang Zachary Tatlock and Sorin Lerner. 2014. SafeDispatch: Securing C++ Virtual Calls from Memory Corruption Attacks.. In NDSS.","DOI":"10.14722\/ndss.2014.23287"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2017.7863736"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2017.7863733"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3037697.3037726"},{"key":"e_1_2_1_45_1","volume-title":"Yale N Patt, and Robert Cohn.","author":"Kim Hyesoon","year":"2007","unstructured":"Hyesoon Kim , Jos\u00e9 A Joao , Onur Mutlu , Chang Joo Lee , Yale N Patt, and Robert Cohn. 2007 . VPC prediction: reducing the cost of indirect branches via hardware-based dynamic devirtualization. In ACM SIGARCH Computer Architecture News, Vol. 35 . ACM , 424\u2013435. Hyesoon Kim, Jos\u00e9 A Joao, Onur Mutlu, Chang Joo Lee, Yale N Patt, and Robert Cohn. 2007. VPC prediction: reducing the cost of indirect branches via hardware-based dynamic devirtualization. In ACM SIGARCH Computer Architecture News, Vol. 35. ACM, 424\u2013435."},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2004.1281665"},{"volume-title":"Inside the C++ object model","author":"Lippman Stanley B","key":"e_1_2_1_47_1","unstructured":"Stanley B Lippman . 1996. Inside the C++ object model . Vol. 242 . Addison-Wesley Reading . Stanley B Lippman. 1996. Inside the C++ object model. Vol. 242. Addison-Wesley Reading."},{"key":"e_1_2_1_48_1","volume-title":"Proceedings of OSDI\u00e2\u0102\u017916: 12th USENIX Symposium on Operating Systems Design and Implementation. 49","author":"Litton James","year":"2016","unstructured":"James Litton , Anjo Vahldiek-Oberwagner , Eslam Elnikety , Deepak Garg , Bobby Bhattacharjee , and Peter Druschel . 2016 . Light-weight contexts: an OS abstraction for safety and performance . In Proceedings of OSDI\u00e2\u0102\u017916: 12th USENIX Symposium on Operating Systems Design and Implementation. 49 . James Litton, Anjo Vahldiek-Oberwagner, Eslam Elnikety, Deepak Garg, Bobby Bhattacharjee, and Peter Druschel. 2016. Light-weight contexts: an OS abstraction for safety and performance. In Proceedings of OSDI\u00e2\u0102\u017916: 12th USENIX Symposium on Operating Systems Design and Implementation. 49."},{"key":"e_1_2_1_49_1","first-page":"683","article-title":"Using virtual table protections to prevent the exploitation of object corruption vulnerabilities. (March 25 2014)","volume":"8","author":"Miller Matthew R","year":"2014","unstructured":"Matthew R Miller , Kenneth D Johnson , and Timothy William Burrell . 2014 . Using virtual table protections to prevent the exploitation of object corruption vulnerabilities. (March 25 2014) . US Patent 8 , 683 ,583. Matthew R Miller, Kenneth D Johnson, and Timothy William Burrell. 2014. Using virtual table protections to prevent the exploitation of object corruption vulnerabilities. (March 25 2014). US Patent 8,683,583.","journal-title":"US Patent"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/2150976.2151018"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-61739-6_45"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/2834899.2834906"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2983991"},{"key":"e_1_2_1_54_1","volume-title":"Metadata in. NET-Avoiding DLL Hell: Introducing Application Metadata in the Microsoft. NET Framework. MSDN Magazine","author":"Pietrek Matt","year":"2000","unstructured":"Matt Pietrek . 2000. Metadata in. NET-Avoiding DLL Hell: Introducing Application Metadata in the Microsoft. NET Framework. MSDN Magazine ( 2000 ), 42\u201355. Matt Pietrek. 2000. Metadata in. NET-Avoiding DLL Hell: Introducing Application Metadata in the Microsoft. NET Framework. MSDN Magazine (2000), 42\u201355."},{"key":"e_1_2_1_55_1","volume-title":"Proceedings of the 2nd Conference on Object-Oriented Technologies and Systems.","author":"Porat Sara","year":"1996","unstructured":"Sara Porat , , David Bernstein , , Yaroslav Fedorov , , Joseph Rodrigue , , and Eran Yahav . 1996 . Compiler Optimization of C++ Virtual Function Calls . In Proceedings of the 2nd Conference on Object-Oriented Technologies and Systems. Sara Porat, , David Bernstein, , Yaroslav Fedorov, , Joseph Rodrigue, , and Eran Yahav. 1996. Compiler Optimization of C++ Virtual Function Calls. In Proceedings of the 2nd Conference on Object-Oriented Technologies and Systems."},{"key":"e_1_2_1_56_1","doi-asserted-by":"crossref","unstructured":"Aravind Prakash Xunchao Hu and Heng Yin. 2015. vfGuard: Strict Protection for Virtual Function Calls in COTS C++ Binaries.. In NDSS.  Aravind Prakash Xunchao Hu and Heng Yin. 2015. vfGuard: Strict Protection for Virtual Function Calls in COTS C++ Binaries.. In NDSS.","DOI":"10.14722\/ndss.2015.23297"},{"key":"e_1_2_1_57_1","volume-title":"2012 IEEE 14th International Conference on. IEEE, 375\u2013380","author":"Pratt-Szeliga Philip C","year":"2012","unstructured":"Philip C Pratt-Szeliga , James W Fawcett , and Roy D Welch . 2012 . Rootbeer: Seamlessly using gpus from java. In High Performance Computing and Communication &amp; 2012 IEEE 9th International Conference on Embedded Software and Systems (HPCC-ICESS) , 2012 IEEE 14th International Conference on. IEEE, 375\u2013380 . Philip C Pratt-Szeliga, James W Fawcett, and Roy D Welch. 2012. Rootbeer: Seamlessly using gpus from java. In High Performance Computing and Communication &amp; 2012 IEEE 9th International Conference on Embedded Software and Systems (HPCC-ICESS), 2012 IEEE 14th International Conference on. IEEE, 375\u2013380."},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.5555\/79538.79539"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/305138.305213"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/2991079.2991121"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.5555\/3049832.3049857"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2016.7581262"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353189"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062360"},{"key":"e_1_2_1_65_1","volume-title":"https:\/\/xalan.apache.org\/old\/xalan-c\/usagepatterns. html","author":"Project The Apache XML","year":"2004","unstructured":"The Apache XML Project . 2004a. Xalan-C++ Basic usage patterns. ( 2004 ). https:\/\/xalan.apache.org\/old\/xalan-c\/usagepatterns. html The Apache XML Project. 2004a. Xalan-C++ Basic usage patterns. (2004). https:\/\/xalan.apache.org\/old\/xalan-c\/usagepatterns. html"},{"key":"e_1_2_1_66_1","unstructured":"The Apache XML Project. 2004b. Xalan-C++ version 1.10. (2004). http:\/\/xml.apache.org\/xalan-c\/  The Apache XML Project. 2004b. Xalan-C++ version 1.10. (2004). http:\/\/xml.apache.org\/xalan-c\/"},{"key":"e_1_2_1_67_1","volume-title":"23rd USENIX Security Symposium (USENIX Security 14)","author":"Tice Caroline","year":"2014","unstructured":"Caroline Tice , Tom Roeder , Peter Collingbourne , Stephen Checkoway , \u00dalfar Erlingsson , Luis Lozano , and Geoff Pike . 2014 . Enforcing forward-edge control-flow integrity in GCC &amp; LLVM . In 23rd USENIX Security Symposium (USENIX Security 14) . 941\u2013955. Caroline Tice, Tom Roeder, Peter Collingbourne, Stephen Checkoway, \u00dalfar Erlingsson, Luis Lozano, and Geoff Pike. 2014. Enforcing forward-edge control-flow integrity in GCC &amp; LLVM. In 23rd USENIX Security Symposium (USENIX Security 14). 941\u2013955."},{"key":"e_1_2_1_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353190"},{"key":"e_1_2_1_69_1","unstructured":"Kenton Varda. 2008. Protocol buffers: Google\u2019s data interchange format. (2008). https:\/\/opensource.googleblog.com\/2008\/ 07\/protocol-buffers-googles-data.html  Kenton Varda. 2008. Protocol buffers: Google\u2019s data interchange format. (2008). https:\/\/opensource.googleblog.com\/2008\/ 07\/protocol-buffers-googles-data.html"},{"key":"e_1_2_1_70_1","unstructured":"Roberto Agostino Vitillo. 2013. Sharing C++ objects in Linux. (2013). http:\/\/www.slideshare.net\/RobertoAgostinoVitil\/ sharing-objects2011  Roberto Agostino Vitillo. 2013. Sharing C++ objects in Linux. (2013). http:\/\/www.slideshare.net\/RobertoAgostinoVitil\/ sharing-objects2011"},{"key":"e_1_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950379"},{"key":"e_1_2_1_72_1","first-page":"31","article-title":"Runtime Code Generation in Cloudera Impala","volume":"37","author":"Wanderman-Milne Skye","year":"2014","unstructured":"Skye Wanderman-Milne and Nong Li . 2014 . Runtime Code Generation in Cloudera Impala . IEEE Data Eng. Bull. 37 , 1 (2014), 31 \u2013 37 . Skye Wanderman-Milne and Nong Li. 2014. Runtime Code Generation in Cloudera Impala. IEEE Data Eng. Bull. 37, 1 (2014), 31\u201337.","journal-title":"IEEE Data Eng. Bull."},{"key":"e_1_2_1_73_1","unstructured":"Wikipedia. 2017. Birthday attack. (2017). https:\/\/en.wikipedia.org\/wiki\/Birthday_attack  Wikipedia. 2017. Birthday attack. (2017). https:\/\/en.wikipedia.org\/wiki\/Birthday_attack"},{"key":"e_1_2_1_74_1","first-page":"997","article-title":"Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform. (March 31 2015)","volume":"8","author":"Yan Shoumeng","year":"2015","unstructured":"Shoumeng Yan , Sai Luo , Xiaocheng Zhou , Ying Gao , Hu Chen , and Bratin Saha . 2015 . Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform. (March 31 2015) . US Patent 8 , 997 ,113. Shoumeng Yan, Sai Luo, Xiaocheng Zhou, Ying Gao, Hu Chen, and Bratin Saha. 2015. Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform. (March 31 2015). US Patent 8,997,113.","journal-title":"US Patent"},{"key":"e_1_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.1145\/263698.263728"},{"key":"e_1_2_1_76_1","volume-title":"Symposium on Network and Distributed System Security (NDSS). 8\u201311","author":"Zhang Chao","year":"2015","unstructured":"Chao Zhang , Chengyu Song , Kevin Zhijie Chen , Zhaofeng Chen , and Dawn Song . 2015 . VTint: Defending virtual function tables\u00e2\u0102\u0179 integrity . In Symposium on Network and Distributed System Security (NDSS). 8\u201311 . Chao Zhang, Chengyu Song, Kevin Zhijie Chen, Zhaofeng Chen, and Dawn Song. 2015. VTint: Defending virtual function tables\u00e2\u0102\u0179 integrity. In Symposium on Network and Distributed System Security (NDSS). 8\u201311."},{"key":"e_1_2_1_77_1","doi-asserted-by":"publisher","DOI":"10.14722\/ndss.2016.23164"},{"key":"e_1_2_1_78_1","first-page":"997","article-title":"Language level support for shared virtual memory. (March 31 2015)","volume":"8","author":"Zhou Xiaocheng","year":"2015","unstructured":"Xiaocheng Zhou , Shoumeng Yan , Ying Gao , Hu Chen , Peinan Zhang , Mohan Rajagopalan , Avi Mendelson , and Bratin Saha . 2015 . Language level support for shared virtual memory. (March 31 2015) . US Patent 8 , 997 ,114. Xiaocheng Zhou, Shoumeng Yan, Ying Gao, Hu Chen, Peinan Zhang, Mohan Rajagopalan, Avi Mendelson, and Bratin Saha. 2015. Language level support for shared virtual memory. (March 31 2015). US Patent 8,997,114.","journal-title":"US Patent"},{"key":"e_1_2_1_79_1","doi-asserted-by":"publisher","DOI":"10.14257\/ijsia.2016.10.2.24"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3133869","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3133869","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:30:34Z","timestamp":1750217434000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3133869"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,10,12]]},"references-count":78,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2017,10,12]]}},"alternative-id":["10.1145\/3133869"],"URL":"https:\/\/doi.org\/10.1145\/3133869","relation":{},"ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"subject":[],"published":{"date-parts":[[2017,10,12]]},"assertion":[{"value":"2017-10-12","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}