| パラダイム | 同時制約ロジック |
|---|---|
| デザイン: | ケン・カーン |
| 開発者 | ケン・カーン |
| 初登場 | 1995 |
| 安定版リリース | 3.0 / {2009} |
| プラットフォーム | デスクトップはMicrosoft Windows、ToonTalk RebornはHTML5です |
| ライセンス | バージョン1.0と2.0は世界中のさまざまな出版社から商用ライセンスを受けていましたが、バージョン3.0は現在無料です。ToonTalk RebornはBSD 3.0です。 |
| ファイル名拡張子 | デスクトップ ToonTalk 用の .tt |
| Webサイト | トゥーントーク |
| 主な実装 | |
| ToonTalk IDE と Web 用に生まれ変わった ToonTalk | |
| 方言 | |
| デスクトップ ToonTalk と Web 用に生まれ変わった ToonTalk | |
| 影響を受けた | |
| ヤヌス;俳優モデル | |
ToonTalk は、子供がプログラミングできるように設計されたコンピュータ プログラミング システムです。「Toon」は漫画を意味します。このシステムは、例によってトレーニングできるロボットなどのアニメーション キャラクターの形で表示されます。これは、学術界以外で並行制約論理プログラミングパラダイムを実装した数少ない成功例の 1 つです。
これは1995年にケネス・M・カーンによって作成され[1] 、1996年から2009年にかけて世界中に配布されたソフトウェアパッケージであるToonTalk IDE [2]の一部として実装されました。2009年以降、その仕様は学術的に公開されており[3]、実装は無料で利用できます。
2014年から、ToonTalkのJavaScript HTML5バージョンであるToonTalk Reborn for the Web [4] [5] [6]が利用可能になりました。これは、最新のWebブラウザで実行でき、デスクトップ版のToonTalkとはいくつかの点で異なります。ToonTalkプログラムは、任意のDOM要素で実行でき、さまざまなブラウザ機能(オーディオ、ビデオ、スタイルシート、音声入力と出力、ブラウザイベント)がToonTalkプログラムで利用できます。GoogleドライブなどのWebサービスが統合されています。ToonTalk Rebornは無料のオープンソースです。
商用製品としての寿命を超えて、ToonTalkはさまざまな研究プロジェクト、特にロンドンナレッジラボと教育研究所のPlaygroundプロジェクトとWebLabsプロジェクトで重要な学術的使用を経て進化しました。これらのプロジェクトには、ケンブリッジ(Addison Wesley LongmanとそのLogotron子会社)、ポルトガル(Cnotinforとリスボン大学)、スウェーデン(王立工科大学)、スロバキア(コメニウス大学)、ブルガリア(ソフィア大学)、キプロス(キプロス大学)、イタリア(国立研究評議会の教育技術研究所)の研究パートナーが参加しました。また、スウェーデンではMikael KindborgがToonTalkプログラムの静的表現を提案し[7]、ポルトガルではLeonel Morgadoが読み書きのできない子供によるコンピュータプログラミングを可能にする可能性を研究するなど、学術的な関心を集めました。[8]
ToonTalk は、 Janus コンピュータ プログラミング言語とアクター モデルの影響を受けています。ToonTalk の主な通信抽象化は、鳥と巣のペアです。プログラマーまたはロボットが鳥に物を渡すと、鳥は巣に飛んで物を置き、戻ってきます。すでに 1 つ以上の物が巣に入っている場合、鳥は新しい物を他の物の下に置きます。
ToonTalk プログラムはルールのシーケンスで、各ルールにはヘッドとテールがあります。ヘッドは、引数と照合できるパターンで、引数はタプルである必要があります。ToonTalk のプレゼンテーションでは、ルールはロボットとして、プログラムはロボットのチームとして、タプルは、物を置くことができる任意の数の穴またはコンパートメントを持つことができるボックスとして表示されます。アルファベットには、数字パッド、テキスト パッド、その他のボックス、ロボット チーム、鳥、巣、およびその他のカテゴリの物が含まれます。プロセスは、ボックスと、そのボックスで作業するロボットのチームで構成されます。パターンのいずれもボックスに一致しない場合、プロセスは中断されます。それ以外の場合は、一致する最初のルールが実行されます。ルールのテールの終わりは、プロセスを破棄するか、同じチームで続行するかのいずれかになります。空の巣が存在する場合にパターンが空の巣以外のものを要求する場合、プロセスは、鳥が巣に何かを置くまで (通常は他のプロセスのアクションの結果として) 中断されます。何かが乗っているネストは、ネストが存在せず、(一番上の)何かだけが存在するかのようにパターンと一致します。末尾のアクションも、ネスト全体ではなく、何かを操作します。したがって、ネストを使用してfutureをプログラムできます。
ToonTalk は、命令型または宣言型の読み取りが可能です。I/O を容易にするために設計された特定の構造を無視すると、ToonTalk は可変メモリへの共有アクセスを持たないことがわかります。バード/ネスト メカニズムは、アクター モデルの通信に似ていますが、ネストを渡したり、プロセスが複数のネストを保持したりできるという追加の機能があります (これはJanusでも当てはまります)。アクター モデルと ToonTalk の通信の違いは、ToonTalk ではメッセージの順序が保持されることです。ただし、ToonTalk では、メッセージ ストリームの非決定的なマージも提供できます。
参考文献
- ^ Kahn, Ken (1995 年 4 月 22 ~ 25 日)。「メタファー デザイン - アニメーション プログラミング環境のケース スタディ」(PDF)。コンピュータ ゲーム開発者会議 (CGDC) 議事録、1995 年、第 9 回世界的に有名なコンピュータ ゲーム開発者会議。コンピュータ ゲーム開発者会議。p. 241。
- ^ カーン、ケン (1996)。「ToonTalk™—子供向けアニメーションプログラミング環境」(PDF)。Journal of Visual Languages & Computing。7 ( 2): 197–217。doi : 10.1006 /jvlc.1996.0011。ISSN 1045-926X 。
- ^ Morgado, Leonel; Kahn, Ken (2008). 「ToonTalk 言語の仕様に向けて」(PDF) . Journal of Visual Languages and Programming . 19 (5): 574–597. doi :10.1016/j.jvlc.2007.10.002. ISSN 1045-926X. S2CID 13442755.
- ^ Kahn, Ken (2014). 「TOONTALK REBORN ToonTalk を Web 向けに再実装および再概念化する」(PDF)。Constructionism 2014 カンファレンスの議事録。2017年 3 月 14 日のオリジナル(PDF)からアーカイブ。2016年 11 月 18 日に取得。
- ^ カーン、ケン (2016)。プログラミング言語とウェブブラウザの統合。Suksapattana Foundation。pp. 141–149。ISBN 978-616-92726-0-1。
- ^ カーン、ケン (2016-01-01)。「ToonTalk のデモンストレーション。ゲーム ワールドで子供たちがデモンストレーションによってプログラムを構築する」。第15回国際インタラクション デザインと子供に関する会議の議事録。IDC '16。ニューヨーク、ニューヨーク、米国: ACM。pp. 676–679。doi :10.1145/2930674.2938611。ISBN 9781450343138. S2CID 19973661。
- ^ ミカエル、カインドボーグ (2001).トゥーントーク番組を漫画として表現。プレイグラウンドインターナショナルセミナー。カサ・デ・ヴィラール、ポルト、ポルトガル。
- ^ モルガド、レオネル (2005)。幼稚園および保育園におけるコンピュータプログラミングのフレームワーク(博士論文)。ポルトガル、ビラ・レアルのトラス・オス・モンテス・アルト・ドウロ大学。hdl :10348/5344。 2022年12月7日のオリジナルからアーカイブ。
外部リンク
- 公式サイト
