(邦訳:実世界入出力を伴うプログラムの画像表現を用いた開発支援手法)
加藤 淳 産業技術総合研究所 情報技術研究部門 研究員 |
[背景]大量のデータを扱う実世界指向プログラムの増加
[問題]既存の統合開発環境(IDE)は文字表現に特化
[貢献]画像表現を用いるIDEでプログラミング体験向上
[問題]既存の統合開発環境(IDE)は文字表現に特化
[貢献]画像表現を用いるIDEでプログラミング体験向上
近年,プログラムが処理する入出力データの種類が豊富になってきている.マウス,キーボード,ディスプレイという従来型入出力に加え,カメラや深度センサから得られる映像情報や人の姿勢情報,アクチュエータの出力を制御するためのロボットの姿勢情報など,実世界入出力を伴うプログラムが一般的になりつつある.
現在主流の統合開発環境(Integrated Development Environment, IDE)は,従来型入出力を伴うプログラム開発のために設計されている.従来型入出力ではデータの取りうる値はあらかじめ定数で定義されており,データのやり取りはキーの打鍵などの度に断続的に生じる.このような情報は文字や記号で分かりやすく表現でき,IDEは,文字や記号ベースのユーザインタフェースを提供することでプログラム開発を効果的に支援してきた.
一方,実世界入出力では,実世界にある情報をサンプリングしてコンピュータで扱うため,複雑な構造のデータが連続的にやり取りされる.このような情報は文字や記号では直感的に提示できない.プログラマが既存のIDEを用いて実世界入出力を伴うプログラムを開発する際には,実世界のことがらを文字や記号といった非直感的な表現で書き下し,プログラムの実行状態を非直感的な表現を通して理解するような苦行を強いられる.
この表現の溝をなくす試みとして,例示をもとにシステムがプログラムを推論,実行してくれる例示プログラミング(Programming by Example, PbE)が提案されている.PbEは,実世界のことがらを実世界で提示でき,何が起きるかその場で確認できるために前出のような問題は生じない.しかし,ロジックを精密に設計することが難しい欠点がある.
本論文では,文字列表現を用いたプログラミングにおいて,PbEのようにシステムに例示した実世界入出力のデータを活用するワークフローをProgramming with Example(PwE)と定義した.そして,PwEを支援するために,実世界由来の例示データを画像表現で表してIDEに統合する手法を提案した.これは,精密なロジックを設計できる文字ベースのプログラミングと,実世界の直感的な表現を利用するPbEの「いいとこ取り」を目指した手法である.具体的には,実世界入出力を伴うプログラムをout = f (in, c)というモデルで表し,その構成要素を画像(c),動画(in, out),インタラクティブに操作可能な動画像(f)という3種類の画像表現で表す手法を提案した.各々Picode, DejaVu, VisionSketchというIDEのプロトタイプを実装し,ワークショップ開催やプロによる試用などを通して,プログラミング体験の向上を確認した.詳細についてはhttp://ide.digitalmuseum.jp/jaを参照されたい.
本論文では実世界入出力のなかでも視覚的な情報を扱ったが,音や触感,匂いや味などを利用するアプリケーションも同様に重要である.このような実世界入出力を伴うプログラムの開発では例示データを活用する必要があるため,私は,本研究の知見がそのようなプログラムの開発支援手法における重要な基盤を担うと信じている.
現在主流の統合開発環境(Integrated Development Environment, IDE)は,従来型入出力を伴うプログラム開発のために設計されている.従来型入出力ではデータの取りうる値はあらかじめ定数で定義されており,データのやり取りはキーの打鍵などの度に断続的に生じる.このような情報は文字や記号で分かりやすく表現でき,IDEは,文字や記号ベースのユーザインタフェースを提供することでプログラム開発を効果的に支援してきた.
一方,実世界入出力では,実世界にある情報をサンプリングしてコンピュータで扱うため,複雑な構造のデータが連続的にやり取りされる.このような情報は文字や記号では直感的に提示できない.プログラマが既存のIDEを用いて実世界入出力を伴うプログラムを開発する際には,実世界のことがらを文字や記号といった非直感的な表現で書き下し,プログラムの実行状態を非直感的な表現を通して理解するような苦行を強いられる.
この表現の溝をなくす試みとして,例示をもとにシステムがプログラムを推論,実行してくれる例示プログラミング(Programming by Example, PbE)が提案されている.PbEは,実世界のことがらを実世界で提示でき,何が起きるかその場で確認できるために前出のような問題は生じない.しかし,ロジックを精密に設計することが難しい欠点がある.
本論文では,文字列表現を用いたプログラミングにおいて,PbEのようにシステムに例示した実世界入出力のデータを活用するワークフローをProgramming with Example(PwE)と定義した.そして,PwEを支援するために,実世界由来の例示データを画像表現で表してIDEに統合する手法を提案した.これは,精密なロジックを設計できる文字ベースのプログラミングと,実世界の直感的な表現を利用するPbEの「いいとこ取り」を目指した手法である.具体的には,実世界入出力を伴うプログラムをout = f (in, c)というモデルで表し,その構成要素を画像(c),動画(in, out),インタラクティブに操作可能な動画像(f)という3種類の画像表現で表す手法を提案した.各々Picode, DejaVu, VisionSketchというIDEのプロトタイプを実装し,ワークショップ開催やプロによる試用などを通して,プログラミング体験の向上を確認した.詳細についてはhttp://ide.digitalmuseum.jp/jaを参照されたい.
本論文では実世界入出力のなかでも視覚的な情報を扱ったが,音や触感,匂いや味などを利用するアプリケーションも同様に重要である.このような実世界入出力を伴うプログラムの開発では例示データを活用する必要があるため,私は,本研究の知見がそのようなプログラムの開発支援手法における重要な基盤を担うと信じている.

(2014年6月10日受付)