{"created":"2025-01-19T00:31:30.758265+00:00","updated":"2025-01-20T13:17:20.145559+00:00","metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00157629","sets":["934:935:8438:8439"]},"path":["8439"],"owner":"11","recid":"157629","title":["Packrat Parsingの表引きによる高速化"],"pubdate":{"attribute_name":"公開日","attribute_value":"2016-02-26"},"_buckets":{"deposit":"355e709d-3604-4d75-b33c-4bf154791520"},"_deposit":{"id":"157629","pid":{"type":"depid","value":"157629","revision_id":0},"owners":[11],"status":"published","created_by":11},"item_title":"Packrat Parsingの表引きによる高速化","author_link":["298416","298421","298420","298417","298419","298418"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"Packrat Parsingの表引きによる高速化"},{"subitem_title":"Speed Improvement of Packrat Parsing Using Table Look-Up","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"[発表概要] ","subitem_subject_scheme":"Other"}]},"item_type_id":"3","publish_date":"2016-02-26","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":"University of Tsukuba","subitem_text_language":"en"},{"subitem_text_value":"University of Tsukuba","subitem_text_language":"en"},{"subitem_text_value":"University of Tsukuba","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/157629/files/IPSJ-TPRO0901009.pdf","label":"IPSJ-TPRO0901009.pdf"},"date":[{"dateType":"Available","dateValue":"2018-02-26"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-TPRO0901009.pdf","filesize":[{"value":"95.9 kB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"0","billingrole":"5"},{"tax":["include_tax"],"price":"0","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"15"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"3f3847e9-ffcd-4614-8654-d6c39fdbb6aa","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2016 by the Information Processing Society of Japan"}]},"item_3_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"矢口, 拓実"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"池袋, 教誉"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"前田, 敦司"}],"nameIdentifiers":[{}]}]},"item_3_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Takumi, Yaguchi","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Kanata, Ikebukuro","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Atusi, Maeda","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":"Packrat Parsingは,広範囲な構文規則を解析できる構文解析手法である.この手法では,解析が成功するまで構文を探索するバックトラックを用い,一度解析した解析対象文字列の位置と結果を保存するメモ化と呼ばれる手法によって解析時間を線形時間に保っている.既存の多くのPackrat Parsing実装は,PEG(Parsing Expression Grammer)で記述された文法規則を,再帰呼び出しによるバックトラックとメモ化表を用いるプログラムに変換するが,このような処理系の実行速度は,正規表現に基づいて表引きを用いた字句解析器と,同じく表引きとスタックを用いて処理を進めるLALR(1)などのパーサアルゴリズムの組み合わせと比較すると,一般的に劣っている.本発表では,Packrat Parsingの高速化のため,解析の意味が変化しない範囲で表引きによって構文解析を進める手法を検討する.本発表では,Packrat Parsingの処理の中に可能な限り表引きをとり入れることで,実行速度を向上させる手法を提案する.また,基本的な実行方式としてはMedeirosらの提案した仮想マシン方式を改良したものを採用している.既存の手法と比較した性能評価の結果を示す.","subitem_description_type":"Other"}]},"item_3_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"Packrat Parsing is a parsing technique which is applicable to wide range of grammars. In this method, the parser tries to find a match in grammar rules and backtracks when necessary. The algorithm is guaranteed to run in linear time with a technique called memoization, which records every position in input string it tried to parse and result of parsing procedure for that position. Many of existing packrat parser implementation translates grammar rules described in PEG (Parsing Expression Grammar) to recursive programs which performs backtracking and memoization. Throughput of resulting parser generally tends to be slower than conventional parser implementation which combines a lexical analyzer, which uses table-based automata generated from regular expressions, and a parser, which also uses tables and stacks based on non-backtracking algorithms e.g. LALR(1). In this paper, we propose an implementation method for Packrat Parsing which relies on extensive use of table look-up. In our implementation, we have tried to use table look-up operation as far as possible to enhance throughput. It is based on a variant of PEG abstract machine proposed by Medeiros and Ierusalimschy. We also present performance measurement result in comparison with other existing implementations.","subitem_description_type":"Other"}]},"item_3_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"14","bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌プログラミング(PRO)"}],"bibliographicPageStart":"14","bibliographicIssueDates":{"bibliographicIssueDate":"2016-02-26","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"1","bibliographicVolumeNumber":"9"}]},"relation_version_is_last":true,"weko_creator_id":"11"},"id":157629,"links":{}}