{"id":81616,"metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00081616","sets":["934:935:6750:6756"]},"path":["6756"],"owner":"11","recid":"81616","title":["Glasgow Haskell Compilerにおける再帰的データ構造のための遅延オブジェクトの再利用"],"pubdate":{"attribute_name":"公開日","attribute_value":"2012-03-30"},"_buckets":{"deposit":"7bae1fd2-d0f4-456b-9f0a-899b1b577212"},"_deposit":{"id":"81616","pid":{"type":"depid","value":"81616","revision_id":0},"owners":[11],"status":"published","created_by":11},"item_title":"Glasgow Haskell Compilerにおける再帰的データ構造のための遅延オブジェクトの再利用","author_link":["0","0"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"Glasgow Haskell Compilerにおける再帰的データ構造のための遅延オブジェクトの再利用"},{"subitem_title":"Reusing Thunks for Recursive Data Structures in Glasgow Haskell Compiler","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"通常論文","subitem_subject_scheme":"Other"}]},"item_type_id":"3","publish_date":"2012-03-30","item_3_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"株式会社コマ・システムズ"},{"subitem_text_value":"電気通信大学大学院情報理工学研究科"},{"subitem_text_value":"電気通信大学大学院情報理工学研究科"}]},"item_3_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Coma-Systems Co., Ltd.","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 and Engineering, The University of Electro-Communications","subitem_text_language":"en"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"jpn"}]},"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/81616/files/IPSJ-TPRO0502006.pdf"},"date":[{"dateType":"Available","dateValue":"2014-03-30"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-TPRO0502006.pdf","filesize":[{"value":"925.7 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":"1984fe9f-cacd-4520-ae78-d15e05e1129f","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":"高野, 保真"},{"creatorName":"岩崎, 英哉"},{"creatorName":"鵜川, 始陽"}],"nameIdentifiers":[{}]}]},"item_3_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Yasunao, Takano","creatorNameLang":"en"},{"creatorName":"Hideya, Iwasaki","creatorNameLang":"en"},{"creatorName":"Tomoharu, Ugawa","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":"遅延評価は,プログラムの簡潔な記述を可能にするため,純関数型言語などで採用されている.特にリストなどの再帰的データ構造を扱う際には,必要に応じて評価を進めることが可能となり,遅延評価により得られる記述性の向上は大きい.一方,計算を遅延するために必要なオブジェクト(遅延オブジェクト)の生成は,プログラム実行時のオーバヘッドとなってしまうため,効率の良い遅延評価機構を実装するには,遅延オブジェクトの削減が必要である.本論文は,リストのような線形に再帰的に定義される代数データ構造に注目し,必要となる遅延オブジェクトを再利用する手法を提案する.提案手法は,すでに割り当てられている遅延オブジェクトの保持している値を更新して再利用する.このような再利用を可能とするために,提案手法は,コンパイル時にプログラム変換を行い,再利用対象とする遅延オブジェクトへの参照を単一にする.提案手法を,純関数型言語Haskellの処理系であるGlasgow Haskell Compiler上に実装し,実験を行った.その結果,オーバヘッドはあるものの,総メモリ割当て量を削減できることが分かった.","subitem_description_type":"Other"}]},"item_3_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"Lazy evaluation helps programmers write clear programs. However, it has significant run-time overheads for building many as-yet unevaluated expressions, or thunks. Because thunk allocation is a space-consuming task, it is important to reduce the number of thunks in order to improve the performance of a lazy functional program. We propose static analysis algorithms that achieve the thunk reuse technique. Thunk generation is suppressed by reusing an already allocated thunk at the tail of a list, on the condition that the thunk is singly referred, i.e., pointed to only from the tail field of a cons cell. This method guarantees that reused thunks definitely satisfy this singly referred condition on the basis of a static analysis with program transformations. We have implemented our method in the Glasgow Haskell Compiler and measured total memory allocations and execution times for some programs.","subitem_description_type":"Other"}]},"item_3_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"78","bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌プログラミング(PRO)"}],"bibliographicPageStart":"67","bibliographicIssueDates":{"bibliographicIssueDate":"2012-03-30","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"2","bibliographicVolumeNumber":"5"}]},"relation_version_is_last":true,"weko_creator_id":"11"},"updated":"2025-01-21T19:18:00.336956+00:00","created":"2025-01-18T23:35:46.154068+00:00","links":{}}