Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 slidesplayer.net Inc.
All rights reserved.