• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 前のページに戻る

バージョンを言語要素に持つプログラミング言語の開発

研究課題

研究課題/領域番号 22KJ1313
補助金の研究課題番号 22J14382 (2022)
研究種目

特別研究員奨励費

配分区分基金 (2023)
補助金 (2022)
応募区分国内
審査区分 小区分60050:ソフトウェア関連
研究機関東京工業大学

研究代表者

田辺 裕大  東京工業大学, 情報理工学院, 特別研究員(DC2) (30985198)

研究期間 (年度) 2023-03-08 – 2024-03-31
研究課題ステータス 採択後辞退 (2023年度)
配分額 *注記
1,400千円 (直接経費: 1,400千円)
2023年度: 700千円 (直接経費: 700千円)
2022年度: 700千円 (直接経費: 700千円)
キーワードプログラミング言語 / 型システム / 型推論 / バージョン管理システム / コエフェクト / 先進的モジュールシステム
研究開始時の研究の概要

現代のソフトウェア開発は多数のパッケージを組み合わせて行うことが主流である。プログラムの振る舞いは使用するパッケージの特定の実装に依存するため、パッケージのバージョンの指定が必要となる。しかし現存の手法では開発規模が大きくなるにつれてパッケージの追加・更新が困難になる事が知られている。
本研究の目的は、ソフトウェアパッケージの異なるバージョンを自由に組み合わせ、制御する為の基盤を確立することである。そのために関数型言語をベースとした、言語要素としてバージョンの概念を持つプログラミング言語の設計・実装を行う。

研究実績の概要

交付申請書で挙げた3つの項目について以下の成果を得た。
項目Ⅰ「コア言語の設計」コア言語λVLの体系を変更し、型安全性の言明を洗練させた。本成果は萌芽的な研究アイデアと共に<Programming>2023で発表した。
項目Ⅱ「現代的言語機能の提案言語への導入」(オブジェクト指向言語)提案機能を持つオブジェクト指向言語BatakJavaを設計した。BatakJavaではバージョニングの対象はクラス定義である。型検査機は各クラスの持つバージョン情報を収集し、特定のバージョン向けのJavaクラスへとコンパイルする。BatakJava言語処理系を拡張可能JavaコンパイラExtendJを用いて実装し、事例研究を行った。本成果はSLE2023で発表された。また、BatakJavaの柔軟性を向上させるためのアイデア・応じたコンパイル手法の拡張のアイデアをPPL2023で発表した。(関数型言語)Haskellのサブセットを提案機能で拡張した言語VLを設計した。VLではバージョニングの対象はモジュールである。各式の外部モジュールへの依存性はインターフェースに集約され、モジュール外に提供される。また検討を行った結果、当初の計画とは異なり、提案機能とパターンマッチに相互作用があることが明らかになった。本成果はVL言語処理系として実装され、現在執筆中の論文に纏め2023年末の国際会議に投稿予定である。
項目Ⅲ「既存言語のプログラミングと提案手法の接続」既存の関数型言語プログラムから式レベルの依存性情報を含むインターフェースを自動生成する手法Bundlingを提案した。Bundlingは各バージョンのトップレベル式の持つバージョン情報を集約する。本成果はCOP2023で発表しVL言語の言語処理系の一部として実装された。本成果は現在執筆中の論文に纏め、2023年末の国際会議に投稿予定である。

現在までの達成度 (段落)

翌年度、交付申請を辞退するため、記入しない。

今後の研究の推進方策

翌年度、交付申請を辞退するため、記入しない。

報告書

(1件)
  • 2022 実績報告書
  • 研究成果

    (5件)

すべて 2023 2022

すべて 雑誌論文 (2件) (うち査読あり 2件、 オープンアクセス 1件) 学会発表 (3件) (うち国際学会 2件)

  • [雑誌論文] A Step toward Programming with Versions in Real-World Functional Languages2022

    • 著者名/発表者名
      Tanabe Yudai、Lubis Luthfun Anshar、Aotani Tomoyuki、Masuhara Hidehiko
    • 雑誌名

      Proceedings of the 14th International Workshop on Context-Oriented Programming: Advanced Modularity for Run-time Composition

      巻: 1 ページ: 44-51

    • DOI

      10.1145/3570353.3570359

    • 関連する報告書
      2022 実績報告書
    • 査読あり / オープンアクセス
  • [雑誌論文] BatakJava: an Object-Oriented Programming Language with Versions2022

    • 著者名/発表者名
      Lubis Luthfan Anshar, Yudai Tanabe, Tomoyuki Aotani, Hidehiko Masuhara
    • 雑誌名

      Proceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering

      巻: - ページ: 222-234

    • DOI

      10.1145/3567512.3567531

    • 関連する報告書
      2022 実績報告書
    • 査読あり
  • [学会発表] A Functional Programming Language with Versions2023

    • 著者名/発表者名
      Yudai Tanabe, Luthfan Anshar Lubis, Tomoyuki Aotani, Hidehiko Masuhara
    • 学会等名
      The 7th International Conference on the Art, Science, and Engineering of Programming
    • 関連する報告書
      2022 実績報告書
    • 国際学会
  • [学会発表] Toward Parameterized Versions in Object-oriented Version Programming2023

    • 著者名/発表者名
      Luthfan Anshar Lubis, Yudai Tanabe, Tomoyuki Aotani, Hidehiko Masuhara
    • 学会等名
      第25回プログラミングおよびプログラミング言語ワークショップ(PPL 2023)
    • 関連する報告書
      2022 実績報告書
  • [学会発表] BatakJava: An Object-Oriented Programming Language with Versions2022

    • 著者名/発表者名
      Luthfan Anshar Lubis, Yudai Tanabe, Tomoyuki Aotani, Hidehiko Masuhara
    • 学会等名
      The 15th ACM SIGPLAN International Conference on Software Language Engineering
    • 関連する報告書
      2022 実績報告書
    • 国際学会

URL: 

公開日: 2022-04-28   更新日: 2025-04-10  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi