| Item type |
Trans(1) |
| 公開日 |
2025-05-30 |
| タイトル |
|
|
言語 |
ja |
|
タイトル |
プログラミング言語処理系を実装するためのRust上の環境 |
| タイトル |
|
|
言語 |
en |
|
タイトル |
A Compiler Generation Environment on Rust |
| 言語 |
|
|
言語 |
jpn |
| キーワード |
|
|
主題Scheme |
Other |
|
主題 |
[発表概要, Unrefereed Presentatin Abstract] |
| 資源タイプ |
|
|
資源タイプ識別子 |
http://purl.org/coar/resource_type/c_6501 |
|
資源タイプ |
journal article |
| 著者所属 |
|
|
|
筑波大学理工情報生命学術院システム情報工学研究群 |
| 著者所属 |
|
|
|
筑波大学図書館情報メディア系 |
| 著者所属 |
|
|
|
筑波大学システム情報系 |
| 著者所属(英) |
|
|
|
en |
|
|
Graduate School of Science and Technology, Degree Programs in Systems and Information Engineering, University of Tsukuba |
| 著者所属(英) |
|
|
|
en |
|
|
Institute of Library, Information and Media Science, University of Tsukuba |
| 著者所属(英) |
|
|
|
en |
|
|
Institute of Systems and Information Engineering, University of Tsukuba |
| 著者名 |
中神,悠太
中井,央
三宮,秀次
|
| 著者名(英) |
Yuta Nakagami
Hisashi Nakai
Shuji Sannomiya
|
| 論文抄録 |
|
|
内容記述タイプ |
Other |
|
内容記述 |
言語処理系の研究者には,研究の過程で字句や構文解析器の一部を自由に変更したいという欲求がある.このためには従来では既存の処理系(コンパイラもしくは生成系)に対する改変など,研究の本質ではないコストがかかる.これに対して我々は,プログラミング言語Rustが持つ機能を活用することで「言語処理系の実装のための環境」としてCopagerを設計,実装した.Rustは,手続き的にコードを生成できるマクロシステムや,ジェネリクスやトレイトを持つ型システムといった,メタプログラミングの場面において強力な機能を備える.Copagerが標準で提供する実装を用いることで,従来のパーサジェネレータのように字句や構文の定義をRustプログラムの一部として記述してパーサを得ることができる一方,生成するパーサの構造はメタプログラミング機能により組み替えを容易に行うことができるため,たとえば構文解析法やエラー処理方法などを独自のものに変えることも容易に行える.開発者は,純粋なRustプログラムとして字句,構文解析器を含む言語処理系のすべてを含めることが可能となる.このような特長によって,Copagerは単体で,言語処理系の開発者および研究者に対して貢献する.本研究では,Rustの特徴を活かしたパーサの構成方法およびそれに基づいた実装環境としてのCopagerの設計および実装について述べる. |
| 論文抄録(英) |
|
|
内容記述タイプ |
Other |
|
内容記述 |
Researchers in language processing systems often wish to freely modify parts of lexical and syntactic parsers during their studies. However, doing so with traditional systems requires modifications to existing compilers or generators, incurring costs that are not central to the research itself. To address this, we have designed and implemented Copager as an “environment for implementing language processing systems,” leveraging the capabilities of the Rust programming language. Rust provides powerful metaprogramming features, such as a procedural macro system and a type system with generics and traits. By using Copager's default implementation, developers can define lexical and syntactic rules within a Rust program, similar to conventional parser generators. At the same time, Copager allows the structure of the generated parsers to be easily reconfigured through metaprogramming. This makes it simple to customize elements like parsing methods or error handling. As a result, developers can incorporate a complete language processing system, including both lexical and syntactic parsers, within a pure Rust program. These features make Copager a valuable tool for both developers and researchers in language processing systems. In this study, we describe the design and implementation of Copager, a parser generation environment that takes full advantage of Rust's features. |
| 書誌レコードID |
|
|
収録物識別子タイプ |
NCID |
|
収録物識別子 |
AA11464814 |
| 書誌情報 |
情報処理学会論文誌プログラミング(PRO)
巻 18,
号 2,
p. 3-3,
発行日 2025-05-30
|
| ISSN |
|
|
収録物識別子タイプ |
ISSN |
|
収録物識別子 |
1882-7802 |
| 出版者 |
|
|
言語 |
ja |
|
出版者 |
情報処理学会 |