ビジュアルプログラミング言語
ビジュアルプログラミング言語(ビジュアルプログラミングげんご、英: visual programming language)とは、プログラムをテキストで記述するのではなく、視覚的なオブジェクトでプログラミングするプログラミング言語である。グラフィカルプログラミング言語とも言う[※ 1]。
なお、これは総称であり、プログラムをどのように視覚的に表現するかには、いろいろな種類がある。「矩形と矢印」の考え方に基づいており、矩形や円を画面上のオブジェクトとし、それらを矢印や線や弧でつなぐものや、空間上でテキストやグラフィックシンボルを配置するものや、ブロック状のものなどがある。それぞれを指す呼び方としては、アイコンベースの言語、フォームベースの言語、ダイアグラムベースの言語などといった用語がある。
以上のような要素を操作するために、ほとんどの言語では、GUIが提供されている。
表現法がいろいろあることと同様に、「ビジュアルプログラミング言語」という分類は、そのプログラミングパラダイムは問わない。すなわち、その視覚化されているものが、手続き型プログラミングであることもあれば関数型プログラミングであることもあればデータフロープログラミングであることもある。Pure Dataのようなデータフロー記述に優れた言語など、テキストで記述するよりも適した分野もあり、#データフローパラダイムとの関連の節も参照のこと。なおVisulanなどごく一部であるが、図形の形状をベースとしたパターンマッチなど、ビジュアル言語ならではの手法によるプログラミングを行う言語もある。
ビジュアル言語の例
[編集]Microsoft Visual Studio と、その環境のいくつかの言語に Visual という呼称が付いているが、これはGUIなどの開発を迅速にする同商品のRADなどを指しており、基本的にはビジュアルプログラミング言語の意味ではない。
- AgentSheets[※ 2]
- Alice (プログラミング言語)[※ 3] オープンソース
- Analytica[※ 4]
- ASTERIA
- Automator
- Bubble
- CODE (プログラミング言語)[※ 5]
- Choregraphe - アルデバランロボティクス社の人型ロボット用アプリケーション開発言語
- DRAKON - ブランの開発用に設計された言語
- DYNAMO - ローマクラブの「成長の限界」報告で指摘された資源枯渇問題に取り組むシステム動力学シミュレーションシステムが起源であるシミュレーション言語及びグラフィカル記法
- jMax
- KSKP[※ 6] - 大規模データの処理・分析環境。ビジュアルプログラミング言語で処理を構築できる。
- LabVIEW
- ラダー・ロジック - プログラマブルロジックコントローラで使われる言語
- Lava (プログラミング言語)[※ 7]
- Max/MSP
- Microsoft Robotics Developer Studio[※ 8][※ 9] - ロボット工学向けのプログラミング環境。ビジュアル・データフロー言語が含まれている。
- Mindscript[※ 10] オープンソース
- OpenMusic - Common Lisp に基づいた音楽制作用ビジュアルプログラミング言語
- プログラミングゼミ - DeNAが開発したプログラミング学習アプリ
- Prograph CPX
- Pure Data
- Quartz Composer
- SCADE[※ 11]
- Simulink
- Springin'[※ 12](スプリンギン)
- Squeak 上で構築されたもの
- Stagecast Creator[※ 13]
- Subtext[※ 14]
- SynthMaker[※ 15]
- ThingLab[※ 16]
- タイルズ(TILES)
- ToonTalk[※ 17]
- VISCUIT[※ 18](ビスケット)
- VisSim[※ 19]
- Visulan[※ 20]
- VSXu[※ 21] リアルタイム 音楽視覚化ソフトであり
データフローパラダイムとの関連
[編集]ビジュアルプログラミングとデータフロープログラミングの融合の試みがある。これらは、プログラム状態への素早いアクセスが可能で、デバッグ、自動プログラム合成、ドキュメンテーションが容易という特徴がある、データフロー言語には自動並列化が容易という特徴がある、将来的にこれが重要となる可能性を秘めている、などと主張されている[1]。
注釈
[編集]- ^ 英語のグラフ(英: graph)には、節点と辺からなる「グラフ理論」などのグラフ (データ構造)、一般に言う「ネットワーク」の意味があることに注意
- ^ Programming For Kids | AgentCubes
- ^ Alice – Tell Stories. Build Games. Learn to Program.
- ^ Lumina Decision Systems - Analytics Software - Visual Modeling
- ^ CODE Visual Parallel Programming System
- ^ KSKP | 「KSKP」は、「誰もが当たり前にデータ分析・活用ができる社会」の実現に向けて、KSKアナリティクスが独自開発したデータ分析プラットフォームです。
- ^ The Lava Programming Environment
- ^ Microsoft Robotics Studio
- ^ Robotics:Microsoft RoboticsStudioで世界をシミュレートする| Microsoft Docs
- ^ Mindscript
- ^ SCADE
- ^ Springin’(スプリンギン)| 創造的プログラミングアプリ
- ^ Stagecast Creator
- ^ Subtext programming language
- ^ SynthMaker
- ^ ThingLab
- ^ -- Making programming child's play
- ^ ビスケット viscuit | コンピュータは粘土だ!!
- ^ The smarter, faster way for model-based embedded development | VisSim
- ^ 3D-Visulanの詳細情報 : Vector ソフトを探す!
- ^ VSXu - music visualizer, audio visualizer, visual programming language (VPL), realtime graphics design platform
脚注
[編集]- ^ Johnston, W.M.; Hanna, J.R.P. and Millar, R.J. (2004). “Advances in dataflow programming languages”. ACM Computing Surveys (CSUR) 36 (1): 1-34 2007年3月31日閲覧。.
文献
[編集]- Beyond blocks: syntax and semantics doi:10.1145/2903751
この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。