エラー生成クイズはプログラミング学習教材の1つで,学習者に問題としてエラーのないコードとエラーメッセージを与え,指定されたエラーを発生するコードを作らせる.このクイズの作問過程では,問題で使用するコードを得るために発生するエラーメッセージを予想しながらコードを細かく修正する作業が生じる.本論文はこの作業を効率化するための支援手法を提案する.具体的にはエラーを維持したコード縮小手法,構文主導型トークン列生成による別解探索の効率化の2つである.またこれらの手法を実現したプログラムを,授業で使用した問題セットに適用し,その有効性を検討した.
本論文では,静的Webサイトを生成するプログラムをJavaScriptで書き切るための言語拡張Minissgを紹介し,その設計と実装を報告する.現代のJavaScript生態系が有する,汎用かつ高水準なコンテンツ記述体系としての側面を応用し,Minissgでは,静的Webサイトの生成に必要なあらゆる手続きとWebページのコンテンツの両方を,単一のJavaScriptプログラムとして記述する.Minissgはそれをビルドし実行することで静的Webサイトを生成する.この設計により,Minissgは,JavaScriptが提供する最新の機能や開発者体験をWebサイトのオーサリングにもそのまま適用可能にする.Minissgは約1,100行のViteプラグインとして実現されており,その簡潔性は汎用プログラミング言語開発の観点からの設計選択により達成されている.本論文ではさらに,Minissgの設計選択により達成された記述力を示唆する一例として,Astroで構築した約8,700行のWebサイトを,Minissgを用いてほぼ同規模のコードベースで再構築した事例を紹介する.
小規模組込みシステム向けFRP言語XStorm では,状態遷移モデルに基づいて時変値間の関係を動的に変更でき,状態依存動作を簡潔に記述できる.しかし,例えば消費電力削減のため,状態に応じて使用する周辺装置を切り替えるといった際に,C言語で書かれた周辺装置のドライバコード内で切替処理を書く必要があった.その結果,XStormプログラムとドライバコードの間のロジックの不整合が検出できない.本研究では,XStormの状態遷移モデルを発展させ,状態ごとに周辺装置の電源等の状態(モード)を宣言できるようにすることで,FRP言語内での周辺装置のモードの切替えも含めたロジックの記述を可能にした.これにより前述の問題を解決したほか,ランタイムによるモードの自動管理を行えるようになった.
近年,開発者の不具合修正における負担を減らすために,自動プログラム修正(APR)技術に関する研究が盛んにおこなわれている.APR技術によって生成されたパッチの品質は,テストケースに合格することでそのパッチが正しいかどうかを検証しているが,パッチを適用した後のコーディング規約については考慮されていない可能性がある.そこで本論文では,自動生成されたパッチ(APRパッチ)がコーディング規約違反に与える影響についての分析をおこなう.3つのOSSプロジェクト(Lang,Math,Time)を対象に分析をおこなった結果,APRツールは規約の種類によらず約4割程度のパッチが規約違反数を増加させていた(RQ1).また,APRツールが発生させる規約はほとんどが軽微なものであるが,可読性に影響のある規約が約9%~10% 程度含まれていた(RQ2).他にも,パッチを同様の手法で生成するAPRツール間に発生する規約違反の傾向があるツールが存在することが分かった(RQ3).
近年,プログラミング学習に対するニーズの高まりに伴って,オンラインジャッジシステムのように自主学習に利用できるシステムが注目されている.一般にオンラインジャッジシステムでは,プログラムの正誤を自動判定するために多数のテストデータを必要とするが,それらを人手で用意することは決して容易な作業ではない.この問題に対し,記号実行技術を用いてテストデータを自動生成するという方法があるが,記号実行はあくまでも与えられたプログラム内での実行経路を網羅するようなテストデータの生成に留まっており,さまざまなプログラムの正誤判定に必要な多様なテストデータを生成できるわけではない.そこで本論文では,記号実行技術とともにミューテーション技術を活用することで多様なテストデータを自動生成することを考え,高精度かつ効率的な正誤判定に向けた提案を行っている.そして,Codeforces に投稿された 21,240 個のプログラムを対象とした評価実験を行い,提案手法の有効性を確認している.
本論文では,音楽動画に対するYouTubeコメントを可視化しながら,ユーザの状況や感情に合った音楽推薦(プレイリスト自動生成)と音楽鑑賞を実現するインタフェースMusicCommentVisualizerを提案する.従来,ユーザの状況や感情に合った曲を聴くための音楽推薦やインタラクティブシステムに関する研究はあったが,音楽動画へのコメントをもとに状況と感情の両方を考慮した研究はなかった.ユーザの状況と感情は,音楽鑑賞時におけるユーザの音楽の好みへ影響を与えるため,これら両方を同時に考慮できることは,多様な音楽推薦・鑑賞を実現するうえで重要である.MusicCommentVisualizerは音楽動画へのコメントから,状況と感情に関する単語を自動的に抽出して分類し,インタラクティブに状況および感情の選択に利用できるクリッカブルな出現頻度分布として可視化する.さらに,その分布からユーザによって選択された状況と感情に基づいて,音楽プレイリストを生成したり,それらの楽曲が推薦された理由となるコメントを表示したりできる.
本論文では百人一首かるたにおける新しいゲームスキル差の調整方法について検討する.我々は百人一首かるたの一般的なルールセットである「ちらし取り」と「競技かるた」をVR空間内で体験できるシステムを実装した.さらに百人一首かるたゲームおける,札を取るプロセスの一部がいわゆるポインティングタスクとみなせることから,被験者実験によって得られたデータについてFittsの法則を用いた数理モデル解析を行った.その結果,札までの距離,手の大きさ,札の大きさをVR空間内で変更することが札を取る所要時間に与える影響を,精度良く予測することができた.また,その際の各種パラメータ変更に対してプレイヤが適切だと感じられる範囲を抽出した.これらの結果から,VR空間内で札までの距離,手の大きさ,札の大きさを適切な範囲で変更することにより,札を取る所要時間を制御し,プレイヤ間のスキル差を調整する手法の有効性が示唆された.またこのような変更がプレイヤ自身や対戦相手の知覚に与える影響について考察した.