Visual Programming Language

Similar presentations


Presentation on theme: "Visual Programming Language"— Presentation transcript:

1 Visual Programming Language
米澤研究室 清木 昌

2 Visual Programming Language (VPL) とは
定義があいまい comp.lang.visual の FAQ 2次元以上の形式でプログラミングするもの(Myers) Visual な表現を用いるもの(Burnett) グラフィック・描画・アニメーション・アイコン etc. などなど 呼称も VP ・ VL ・ VPL …

3 Visual Computing Visual Programming Computer Graphics Algorithm
Animation Scientific Visualization User Interfaces from SFT5030 End User Languages

4 VPLの種類 言語の様式 純粋な visual language text と visual の複合システム
Prograph や VIPR など アイコンや矢印などの操作のみで開発 プログラムからデバッグまで同じ環境 text と visual の複合システム グラフィカルな入力をテキストの高等言語に変換 テキスト言語のプログラミングを補助 例) テキストで書いたデータ構造に例示によって操作を定義し、それをテキストレベルで修正し・・・

5 VPLの種類 言語の目的 (1/2) 汎用 End User Programming Prograph など 従来の言語の代替物
言語表現にとらわれない本質的な開発ができる(?) End User Programming AgentSheets など ユーザが情報をわかりやすい形で整形・可視化 専門のスキルのないユーザでも直感的に構築できる 可視化が自然な形で表せる

6 VPLの種類 言語の目的 (2/2) シミュレーション 教育 芸術・娯楽 AgentSheets など 法則を入力したらすぐに結果を得られる
ToonTalk など インタラクティブ性・楽しい視覚効果 芸術・娯楽 自己言及性・閉じた世界が美しい・・・?

7 VPLの種類 プログラミングパラダイム(1/2)
例示によるプログラミング Pygmalion, ToonTalk など 実際にオブジェクトを操作することにより、各パーツのプログラミングを行う Dataflow モデル Prograph など 用意したネットワーク上をデータが流れていく 演算に必要なデータが揃うとノードが発火する 素朴なレベルではデータの流れが把握しやすい

8 VPLの種類 プログラミングパラダイム(2/2)
制約ベース 論理型言語を基礎としたもの PP など 条件判定→ルール適用 AgentSheets, 3D-Visulan など Form ベース Forms/3 など 表計算ソフトの A8 = Sum(A1:A7) のような形でセル間の関係を記述する

9 ToonTalk (1/3)

10 ToonTalk (2/3) 概要 特徴 子供向け教育用プログラミング言語 2001 全米 親が子供に与えたいソフト 金賞
アニメを多用し、子供が親しみ易く 特徴 例示によるプログラミング 内部的には Prolog 等の論理型言語に近い 並列実行 そもそも自然では同時に物事が進んでいく

11 ToonTalk (3/3) 特徴 (続き) 抽象概念の具体化 抽象概念がない子供でも 直感的に理解できる
具体化されたものを通して抽象概念を学ぶ 抽象概念 具体化 computation actor or process or object methods ロボット tuples or messages or vectors actor termination 爆弾 channel transmitter channel receiver program storage ノート

12 AgentSheets (1/3)

13 AgentSheets (2/3) 概要 特徴 シミュレーション用に特化した言語
教育用としても売り込まれているが、そもそも思考増幅器としてのコンピュータ利用が目標 やりたいことがすぐできる 特徴 縦横に並んだセル上に Agent を配置 各 Agent が条件にマッチした動作を実行 単独の Java Applet として出力が可能

14 AgentSheets (3/3) 例 ボールというエージェントに もしも下が空だったら下に行くように さもなくば自分の色を赤くするように
と設定する →ボール下に落ち、  床で赤くなるという  プログラムができる

15 Prograph (1/8)

16 Prograph (2/8) 概要 特徴 成功した商用の汎用 VPL Professional 向け
Dataflow モデル オブジェクト指向言語

17 Prograph (3/8) Dataflow モデル
Input Bar から Datalink を通って Output Bar まで、上から下へとデータが流れて行く 各 Operation は Terminal にデータが揃ったら実行

18 Prograph (4/8) 例1:Hello World! 文字列が組み込み演算子showに渡される
基本型は 真偽値・整数・実数・文字列・リスト・null・未定義 etc. データの依存関係により実行順序が決定

19 Prograph (5/8) 例2 組み込み演算子 ask で名前を入力 同"join"で文字列を結合 名前が空だったらエラー
定数 NULL との比較 比較は優先して実行 一致したら次のケースへ control annotation で示されている control annotation

20 Prograph (6/8) greetings メソッドの2番目のケース control annotation エラーメッセージの出力

21 Prograph (7/8) 3種類のループ処理 リストをそのまま展開して並列に処理 条件成立まで method の出力を入力に代入

22 Prograph (8/8) object と attribute 一番左の引数に instance を渡していく

23 VIPR (1/3) オブジェクト指向の汎用 VPL アイコンを使わず、輪を使う

24 VIPR (2/3) 実行制御は輪の置き換えで行う 矢印の元の輪を先の輪に置き換える 条件分岐・ループ・関数呼び出し

25 VIPR (3/3) 関数を呼び出したときに、輪の内周についた輪同士も代入する 関数呼び出し時には必ず戻り先を関数に渡す 引数も同様
戻り先の代入 時に戻り値も 代入される

26 VEX (1/3) Visual Expression (VEX) VIPR のコンポーネント λ計算のビジュアル表現
輪の代入という操作 λ計算の本質の直感的理解が可能 字面では複雑でも、絵で見れば簡単 α変換・β簡約・η簡約 自由変数と束縛変数 λ計算の講義に最適(?)

27 VEX (2/3) YコンビネータのVEX表現

28 VEX (3/3) 線でつながったものは同時に代入 束縛変数はどこかの輪の内側に張り付いており 自由変数は一番外に出ている

29 3D-PP 概要 PP=Pictorial Programming 筑波大の田中研究室 並列論理型言語 GHC を VPL にしたもの
3次元物体の直接操作の方法から研究 実行環境は未公開な模様

30 3D-Visulan 3D積み木 単純な置換規則 教育用~娯楽用 実用性は低い シンプルなルールで いかに複雑なことができるか

31 近年の VPL の方向性 3D化 ネットワーク対応 大きな新パラダイムの誕生は無い 安価な3D環境の普及
多くの情報を小さなスクリーンで提供可能 ネットワーク対応 End User 同士の相互作用を狙う 大きな新パラダイムの誕生は無い

32 まとめ 一口に VPL といっても幅は広い 色物というイメージがあったが、テキストベースの言語より多様なパラダイムの言語が同居している印象がある もう少し調べて、先行技術の長所を自分の研究に取り込んでいきたい

33 References (1/2) ToonTalk AgentSheets http://www.toontalk.com/
"ToonTalk - An Animated Programming Environment for Children" [Ken Kahn 1996] AgentSheets "AgentSheets: End-User Programmable Simulations" [Alexander Repenning et al. 2000]

34 References (2/2) Prograph VIPR http://www.pictorius.com/prograph.html
"Using a Pictorial Representation to Combine Dataflow and Object-orientation in a Language Independent Programming Mechanism" [P. T. Cox and T. Pietrzykowski 1988] VIPR "Visual Object-Oriented Programming" [Wayne Citrin et al. 1994] "Programming with Visual Expressions" [W.Citrin et al. 1995]

35 References (3/3) 3D-PP 3D-Visulan
"3D-PP: Visual Programming System with Three-Dimensional Representation" [T.Oshiba and J.Tanaka 1999] 3D-Visulan "ビットマップに基づくビジュアル言語に関する研究" [Kakuya Yamamoto 1999]

36 情報源 Frequently-Asked Questions (FAQ)
Visual Programming Languages: A Survey SFT 5030 (Visual Programming) Visual Language Research Bibliography


Download ppt "Visual Programming Language"

Similar presentations


Ads by Google