{"updated":"2025-01-21T18:31:41.235472+00:00","metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00083511","sets":["934:935:6750:6847"]},"path":["6847"],"owner":"11","recid":"83511","title":["SEAN: Support Tool for Detecting Rule Violations in JNI Coding"],"pubdate":{"attribute_name":"公開日","attribute_value":"2012-08-20"},"_buckets":{"deposit":"e1fca8c6-dc44-4125-a440-e6c953ba41c2"},"_deposit":{"id":"83511","pid":{"type":"depid","value":"83511","revision_id":0},"owners":[11],"status":"published","created_by":11},"item_title":"SEAN: Support Tool for Detecting Rule Violations in JNI Coding","author_link":["0","0"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"SEAN: Support Tool for Detecting Rule Violations in JNI Coding"},{"subitem_title":"SEAN: Support Tool for Detecting Rule Violations in JNI Coding","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"[通常論文] program verification tool, escape analysis, JNI, Android, experience","subitem_subject_scheme":"Other"}]},"item_type_id":"3","publish_date":"2012-08-20","item_3_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"Graduate School of Informatics, Kyoto University"},{"subitem_text_value":"Graduate School of Informatics and Engineering, The University of Electro-Communications"},{"subitem_text_value":"Graduate School of Informatics, Kyoto University"},{"subitem_text_value":"Department of Artificial Intelligence, Kyushu Institute of Technology"},{"subitem_text_value":"Graduate School of Informatics, Kyoto University"}]},"item_3_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Graduate School of Informatics, Kyoto University","subitem_text_language":"en"},{"subitem_text_value":"Graduate School of Informatics and Engineering, The University of Electro-Communications","subitem_text_language":"en"},{"subitem_text_value":"Graduate School of Informatics, Kyoto University","subitem_text_language":"en"},{"subitem_text_value":"Department of Artificial Intelligence, Kyushu Institute of Technology","subitem_text_language":"en"},{"subitem_text_value":"Graduate School of Informatics, Kyoto University","subitem_text_language":"en"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"eng"}]},"item_publisher":{"attribute_name":"出版者","attribute_value_mlt":[{"subitem_publisher":"情報処理学会","subitem_publisher_language":"ja"}]},"publish_status":"0","weko_shared_id":-1,"item_file_price":{"attribute_name":"Billing file","attribute_type":"file","attribute_value_mlt":[{"url":{"url":"https://ipsj.ixsq.nii.ac.jp/record/83511/files/IPSJ-TPRO0503003.pdf"},"date":[{"dateType":"Available","dateValue":"2014-08-20"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-TPRO0503003.pdf","filesize":[{"value":"181.6 kB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"660","billingrole":"5"},{"tax":["include_tax"],"price":"330","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"15"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"32f3aa43-02c3-40dc-b30e-baacd42b0eab","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2012 by the Information Processing Society of Japan"}]},"item_3_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Haruna, Nishiwaki"},{"creatorName":"Tomoharu, Ugawa"},{"creatorName":"Seiji, Umatani"},{"creatorName":"Masahiro, Yasugi"},{"creatorName":"Taiichi, Yuasa"}],"nameIdentifiers":[{}]}]},"item_3_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Haruna, Nishiwaki","creatorNameLang":"en"},{"creatorName":"Tomoharu, Ugawa","creatorNameLang":"en"},{"creatorName":"Seiji, Umatani","creatorNameLang":"en"},{"creatorName":"Masahiro, Yasugi","creatorNameLang":"en"},{"creatorName":"Taiichi, Yuasa","creatorNameLang":"en"}],"nameIdentifiers":[{}]}]},"item_3_source_id_9":{"attribute_name":"書誌レコードID","attribute_value_mlt":[{"subitem_source_identifier":"AA11464814","subitem_source_identifier_type":"NCID"}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourceuri":"http://purl.org/coar/resource_type/c_6501","resourcetype":"journal article"}]},"item_3_source_id_11":{"attribute_name":"ISSN","attribute_value_mlt":[{"subitem_source_identifier":"1882-7802","subitem_source_identifier_type":"ISSN"}]},"item_3_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"A static analysis tool has been developed for finding common mistakes in programs that use the Java Native Interface (JNI). Specific rules in JNI are not caught by C++ and other compilers, and this tool is aimed at rules about references to Java objects, which are passed to native methods as local references. Local references become invalid when the native method returns. To keep them valid after the return, the programmer should convert them into global references. If they are not converted, the garbage collector may malfunction and may, for example, fail to mark referenced objects. The developed static analysis tool finds assignments of local references to locations other than local variables such as global variables and structure fields. The tool was implemented as a plug-in for Clang, a compiler front-end for the LLVM. Application of this tool to native Android code demonstrated its effectiveness.","subitem_description_type":"Other"}]},"item_3_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"A static analysis tool has been developed for finding common mistakes in programs that use the Java Native Interface (JNI). Specific rules in JNI are not caught by C++ and other compilers, and this tool is aimed at rules about references to Java objects, which are passed to native methods as local references. Local references become invalid when the native method returns. To keep them valid after the return, the programmer should convert them into global references. If they are not converted, the garbage collector may malfunction and may, for example, fail to mark referenced objects. The developed static analysis tool finds assignments of local references to locations other than local variables such as global variables and structure fields. The tool was implemented as a plug-in for Clang, a compiler front-end for the LLVM. Application of this tool to native Android code demonstrated its effectiveness.","subitem_description_type":"Other"}]},"item_3_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"28","bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌プログラミング(PRO)"}],"bibliographicPageStart":"23","bibliographicIssueDates":{"bibliographicIssueDate":"2012-08-20","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"3","bibliographicVolumeNumber":"5"}]},"relation_version_is_last":true,"weko_creator_id":"11"},"created":"2025-01-18T23:36:59.476801+00:00","id":83511,"links":{}}