• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to previous page

プログラミング言語への意味的バージョンの導入による更新支援技術の研究

Research Project

Project/Area Number 23K19961
Research Category

Grant-in-Aid for Research Activity Start-up

Allocation TypeMulti-year Fund
Review Section 1001:Information science, computer engineering, and related fields
Research InstitutionKyoto University

Principal Investigator

田邉 裕大  京都大学, 情報学研究科, 特定研究員 (30985198)

Project Period (FY) 2023-08-31 – 2025-03-31
Project Status Granted (Fiscal Year 2023)
Budget Amount *help
¥2,860,000 (Direct Cost: ¥2,200,000、Indirect Cost: ¥660,000)
Fiscal Year 2024: ¥1,430,000 (Direct Cost: ¥1,100,000、Indirect Cost: ¥330,000)
Fiscal Year 2023: ¥1,430,000 (Direct Cost: ¥1,100,000、Indirect Cost: ¥330,000)
Keywordsプログラミング言語 / ソフトウェア更新支援 / ソフトウェア互換性 / バージョン
Outline of Research at the Start

本研究はソフトウェアの更新を支援する手法の確立を目的とし、意味的バージョンを介して互換性を検査・保証するプログラミング言語の研究を行う。ソフトウェアの更新は多大な実装コストを伴うが更新の支援技術は不足しており、開発の硬直化が問題となっている。本研究は意味的バージョンをプログラミング言語に導入し(1)意味的バージョン計算機:ユニットテストや型検査を用いた新旧の実装の互換性の分類法(2)漸進的プログラム更新:更新で破綻したプログラムの式単位での新バージョンへの移行法を開発する。本研究は更新エラーの原因や修正法の指示を可能にし、更新で破綻したプログラムを自動で特定・修復する技術への展開が期待される。

Outline of Annual Research Achievements

研究項目Ⅰ「意味的バージョン計算機の開発」現在、当初の目的であった意味的バージョンを利用した言語機構の開発からさらに粒度高く非互換性を制御することを目的とし、非互換性による変更の影響を言語意味論内で直接制御・吸収する機構の開発に向けて新たな言語機構を設計している。

研究項目Ⅱ「漸進的プログラム更新手法の開発」(1)複数のバージョンの実装を安全に使うための関数型言語VLの開発・実装・コンパイル手法の定式化・安全性の証明を行った。VLは先行研究の関数型コア言語Lambda VLの表面言語である。VLはLambda VLの持つ複数のバージョンを安全に利用可能というメリットを損なうことなく、プログラムに対して外部的に定義されたバージョン情報を利用することで、Lamvda VLの持つ難解な構文やプログラムの振る舞いの予測の困難さといったprogrammabilityの問題を解決している。本成果は国際会議APLAS2023に採択・発表された。また、国内会議PPL2024にて、既発表論文として口頭発表を行った。(2)オブジェクト指向言語に対する本研究の適用の可用性を高めるため、先行研究であるBatakJavaの理論的拡張・実装を行った。本成果は現在、夏の論文誌採択に向け論文執筆中である。(3)本研究の機構を動的型付言語にも導入可能であることを示すため、Pythonの拡張であるVythonの予備的な実装を行った。Vythonの特徴は動的バージョン検査:一貫しない仕様に基づくプログラムの実行をプログラムの実行中に検知・エラー原因をフィードバックする機構を特徴としている。本成果は2024年春の国内会議PPL2024でポスター発表を行った。

Current Status of Research Progress
Current Status of Research Progress

2: Research has progressed on the whole more than it was originally planned.

Reason

研究項目Iについては、非互換性を符号化されたバージョン情報に希釈することなく、言語意味論の中で直接的に扱う方針へと転換した。どの程度本方針が機能するかは未知数であるが、転換後の手法は直接的に非互換性を扱うことができるため、転換前の手法と比較して完成した際の可用性は高いと考えている。
項目IIについては、現実的なプログラミング言語が持つ多くの言語機構との相互作用の調査が順調に進展しており、(1)(3)について少なくとも一つ以上の発表の成果((2)は投稿準備中)を得た。限定的な言語の範囲ではあるものの、(1)(2)(3)のいずれにおいても漸進的更新のためのフィードバック機能を備えた機能する実装が得られており、半年という短い期間の中では当初の目的以上に進捗していると言える。

Strategy for Future Research Activity

研究項目Iについては、引き続き言語意味論の中で非互換性を扱うための言語機構の開発を続ける。現在までの予備的な調査では、すべての非互換性に対して完全に自動化された更新や非互換性の吸収を行うことは不可能だという直感を得ており、提案機構でどこまで現実的な更新の手間が軽減可能かを評価する予定である。
研究項目IIについては、開発者の更新の手間を削減するためのフィードバック機能の強化を行う予定である。このための予備的なアイディアの実装は既に(3)にて実装されており、本手法を発展させる予定である。

Report

(1 results)
  • 2023 Research-status Report
  • Research Products

    (4 results)

All 2024 2023

All Journal Article (1 results) (of which Peer Reviewed: 1 results,  Open Access: 1 results) Presentation (3 results) (of which Int'l Joint Research: 1 results)

  • [Journal Article] Compilation Semantics for a Programming Language with Versions2023

    • Author(s)
      Tanabe Yudai, Lubis Luthfan Anshar, Aotani Tomoyuki, Masuhara Hidehiko
    • Journal Title

      Lecture Notes in Computer Science

      Volume: 14405 Pages: 3-23

    • DOI

      10.1007/978-981-99-8311-7_1

    • ISBN
      9789819983100, 9789819983117
    • Related Report
      2023 Research-status Report
    • Peer Reviewed / Open Access
  • [Presentation] Compilation Semantics for a Programming Language with Versions2024

    • Author(s)
      Yudai Tanabe, Luthfan Anshar Lubis, Tomoyuki Aotani, and Hidehiko Masuhara
    • Organizer
      The 26th JSSST Workshop on Programming and Programming Languages (PPL 2024)
    • Related Report
      2023 Research-status Report
  • [Presentation] 複数バージョンのクラス定義を使用できる動的型付け言語の設計とその互換性機構の提案2024

    • Author(s)
      Satsuki Kasuya, Hidehiko Masuhara, Tomoyuki Aotani, Yudai Tanabe, Luthfan Anshar Lubis
    • Organizer
      The 26th JSSST Workshop on Programming and Programming Languages (PPL 2024)
    • Related Report
      2023 Research-status Report
  • [Presentation] Compilation Semantics for a Programming Language with Versions2023

    • Author(s)
      Yudai Tanabe, Luthfan Anshar Lubis, Tomoyuki Aotani, and Hidehiko Masuhara
    • Organizer
      The 21st Asian Symposium on Programming Languages and Systems (APLAS2023)
    • Related Report
      2023 Research-status Report
    • Int'l Joint Research

URL: 

Published: 2023-09-11   Modified: 2024-12-25  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi