| Item type |
Trans(1) |
| 公開日 |
2023-08-28 |
| タイトル |
|
|
タイトル |
構造体をより柔軟に扱うための新たなプログラミング言語の開発 |
| タイトル |
|
|
言語 |
en |
|
タイトル |
Development of a New Programming Language for Handling Structures More Flexibly |
| 言語 |
|
|
言語 |
jpn |
| キーワード |
|
|
主題Scheme |
Other |
|
主題 |
[発表概要, Unrefereed Presentatin Abstract] |
| 資源タイプ |
|
|
資源タイプ識別子 |
http://purl.org/coar/resource_type/c_6501 |
|
資源タイプ |
journal article |
| 著者所属 |
|
|
|
東邦大学情報科学科 |
| 著者所属 |
|
|
|
東邦大学情報科学科 |
| 著者所属(英) |
|
|
|
en |
|
|
Department of Information Science, Toho University |
| 著者所属(英) |
|
|
|
en |
|
|
Department of Information Science, Toho University |
| 著者名 |
横山, 航基
木村, 大輔
|
| 著者名(英) |
Koki, Yokoyama
Daisuke, Kimura
|
| 論文抄録 |
|
|
内容記述タイプ |
Other |
|
内容記述 |
構造体は複数のデータをまとめて格納し,扱うことを可能にする基本的なデータ構造であり,C言語のstructなど様々なプログラミング言語でサポートされている.通常は型の定義時にフィールド名とその個数は固定され,途中で変更されることがない.このような構造体の設計を前提とすることで,プログラマは構造体の内容を把握しやすくなるなどの利点がある.その一方で,既存の構造体に新たなフィールドを追加する必要が発生したときは,その構造体が関わっているすべての箇所を変更する必要があるなど,修正に手間がかかることもある.そこで,構造体の処理をより柔軟にするための新たなプログラミング言語Qsitory(シトリー)を提案する.特徴としては,関数型言語がベースで高階関数や再帰関数が扱えて型推論もできる.それに加えて手続き型言語の特徴も持ち,for文などが扱える.具体的な特徴としては,「基本的なコレクション(リスト,タプルなど)の操作が演算子で可能」,「Javaの拡張for文,Pythonのfor文,Haskellのzipwithを拡張し,n個のリストから1つずつ要素を取ってくり返しを行うようにした(多次元拡張for文)」,「構造体メンバ参照,メンバ代入の際にフィールド名を文字列として使用できる」,「構造体に動的にフィールドを追加することが可能」などがある.本発表では提案内容を実現するための評価アルゴリズム・型推論アルゴリズムを与え,これらに基づくインタープリタのOCaml上でのプロトタイプ実装を紹介する. |
| 論文抄録(英) |
|
|
内容記述タイプ |
Other |
|
内容記述 |
Structures are basic data structures that enables to store and handle multiple pieces of data altogether, and are supported by various programming languages such as the structs in C. Normally, field names of members of a struct and the number of them are fixed in a definition of the struct and remains unchanged during an execution of a program. In designing a programming language, this convention of structs has advantages such as making it easier for the programmer to grasp the contents of the structure. However, when a programmer wants to add a new field to an existing structure, he has to update all the parts related to the structure. We propose a new programming language, Qsitory, which enables to handle structures more flexible. Qsitory has features of functional languages such as higher-order functions, recursive functions, and type inference. It equips basic collections like lists and tuples, multi-dimensional extended-for-statement, which is a further extension of the extended-for in Java and Python, field names as independent string data, and dynamically extendable structs. In this presentation, we give our evaluation algorithms and type inference algorithms to develop Qsitory, and introduce a prototype implementation of a Qsitory interpreter written in OCaml. |
| 書誌レコードID |
|
|
収録物識別子タイプ |
NCID |
|
収録物識別子 |
AA11464814 |
| 書誌情報 |
情報処理学会論文誌プログラミング(PRO)
巻 16,
号 3,
p. 34-34,
発行日 2023-08-28
|
| ISSN |
|
|
収録物識別子タイプ |
ISSN |
|
収録物識別子 |
1882-7802 |
| 出版者 |
|
|
言語 |
ja |
|
出版者 |
情報処理学会 |