You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Snap! (プログラミング言語)

提供:EverybodyWiki Bios & Wiki
移動先:案内検索


Snap!
Snap!のロゴ
パラダイム object-oriented, educational, event-driven
登場時期 2011年(13年前) (2011
設計者 Brian Harvey and Jens Mönig
開発者 Jens Mönig
最新リリース 8.0.0/ 2022年8月5日スクリプトエラー: モジュール「TimeAgo」はありません。 (2022-08-05 [1]
型付け dynamic
影響を受けた言語 Scratch, Scheme, Logo, Smalltalk, APL
影響を与えた言語 BeetleBlocks, Snapi, Dragme IDE
プログラミング言語 JavaScript (Snap!), previously Squeak (BYOB version)
プラットフォーム Cross-platform
ライセンス AGPL
ウェブサイト スクリプトエラー: モジュール「URL」はありません。
拡張子 .xml (Snap!)
テンプレートを表示

Snap! (旧称:Build Your Own Blocks(BYOB))は、ブロックをベースにした無料の教育用グラフィカル・プログラミング言語であり、数学や計算のアイデアを学びながら、インタラクティブなアニメーション、ゲーム、ストーリーなどを探求、作成、リミックスすることを目的としたオンラインコミュニティです。Snap! は、Scratch を元にして一から構築されています。Web ブラウザ上の開発環境の中で各々の機能を持ったブロックを組み合わせてスクリプト(プロジェクト)を作成し、実行します。Scratch のようにクラウド上にプロジェクトを保存し、公開することができます。インストールを必要とせずにブラウザ上で動作するウェブアプリケーションですが、オフラインのブラウザ上で使用することもできます。操作方法や機能に違いはありますが、Scratch と同等のブロックを持っているので、Scratch のようにプログラミングをすることもできます。Scheme 言語や APL 言語の機能を取り入れ、独自のブロックが追加されています。

ユーザーインターフェイス[編集]

スナップ内の5つの領域を含む3つのサイズ変更可能な列 ■起動時のIDE

Snap! の画面には、ブロックグループセレクタ(左列上部)、ブロックパレット(左列)、メインエリア(中列)、ステージエリア(右列上部)、その下にはスプライトのサムネイルを表示するスプライトセレクタ(スプライトコラルともいう)の5つの領域があります。ブロックパレット、メインエリア、ステージエリアはサイズ変更可能になっています。ステージエリア(フルスクリーンも可能)には、スクリプトエリアにあるスクリプトの実行結果(アニメーションやグラフィックスなど)や、パレットにあるブロックがクリックされた時の実行結果が表示されます。選択されたスプライト用のスクリプトは、必要なブロックをパレットからスクリプトエリアにドラッグして組み立てていきます。

Snap! のブロックは、Motion(動き), Looks(見た目), Sound(音), Pen(ペン), Control(制御), Sensing(調べる), Operators(演算), Variables(変数) の8つのグループに分けられます。 ブロックグループセレクターでのこれらのグループのレイアウトを次の表に示します。

カテゴリー 内容    カテゴリー 内容
  Motion
動き
スプライトの移動や
向きの変更
     Control
制御
条件分岐や繰り返し処理
イベント処理
  Looks
見た目
スプライトの外見
コスチュームの変更や表示
  Sensing
調べる
スプライトの当たり判定や
ユーザー入力
  Sound
既存又は作成した
音を鳴らす
  Operators
演算
算術演算,文字列処理,
論理演算用のブロック
  Pen
ペン
ステージ上に軌跡を
表示する
  Variables
変数
変数やリスト
及び処理用ブロック


特徴[編集]

・マウスでのブロックのドラッグ & ドロップだけでなく、キーボードを使用してスクリプトを作成することができます。ブロックが複雑になり長くなった場合には、自動的に折り畳まれます。同じパレットのブロックが重なった時は判別しやすいように色の濃淡が調整されます。

・変数には値をリポートするものならば何でも入れることができます。リストも変数に入れて使用します。リストが入っているリストを入れることもできます。リングで囲ったスクリプト、スプライト、作成したクローンを変数に入れて操作することもできます。スクリプト変数(ローカル変数)が使えます。

 リストに対しての演算はリスト全要素に対して行われますし、リスト対リストの演算は対応する要素同士に対して行われます。リストの全要素に対して指定された操作をするブロックが用意されています。

・デバッグ機能 : プログラムを途中で止めたり続行させることができるポーズボタンがあります。Visible stepping ボタンで実行のスピードをコントロールしたり 1 ブロックずつのステップ実行もできます。スクリプト中に pause all ブロックを入れて一時停止させることができます。

・高機能なカスタムブロック : すべてのスプライトから使用できるカスタムブロックを作成可能(ローカルも可)。値をリポートするブロックや、分岐やループなどの制御ブロックも作成することができます。

 引数としての入力スロットにはカスタムブロックやリングで囲ったスクリプトを入れることができ、また、カスタムブロックなどを戻り値としてリポートすることもできます(「高階関数」)。

 カスタムブロック内でローカル変数にスクリプトを入れると、そのカスタムブロック内だけで使用できる局所定義ブロックにすることができます。

・1個または複数のブロックを call や run ブロックなどに入れて無名関数として実行することができます。 call や run 側で指定した引数を灰色のリング内、ブロック内の入力スロット側で参照することができます。

・ファーストクラスのスプライト。

 Scratch のクローンと同じ機能のテンポラリクローンに加え、手動で作成する常駐的なパーマネントクローン(親のスクリプトを継承)が使えます。

 ネスティング可能なスプライト(stick 機能)。例えば、胴体のスプライトに腕を、腕のスプライトに手を...と接続させることができます。各々のスプライトは接続時の位置関係を保ちながら自分自身のスクリプトを実行します。

・JavaScript のプログラムを call などで実行可能。(JavaScript 有効時)

マスコット[編集]

Snap! のマスコットは Alonzo です。ラムダ関数の計算モデルの発明者である Alonzo Church 氏の名前を由来としています。マスコットの髪の毛はギリシャ文字のラムダ(λ)の形をしています。

ライブラリー[編集]

libraries には Snap! の機能を拡張するためのさまざまなブロックが用意されています。例えば、'Iteration, composition' ライブラリーを import すると、for ブロックで増減値 step を指定できるものや while ブロックなどが使用できるようになります。

歴史[編集]

Webベースの Snap! と古いデスクトップベースのBYOBは、、カリフォルニア大学バークレー校の Brian Harvey[2]氏によって設計のアイデアとドキュメントが提供され、Microsoft Windows, OS X, Linux 用に Jens Mönig 氏によって開発されました[3]Snap! は "The Beauty and Joy of Computing" を教えるために使用されています。これは、コンピュータサイエンスを専攻していない学生を対象としたコンピュータサイエンスの入門コースです[4]。 Jens 氏は Snap! を作成する前はスクラッチチームのメンバーでした[5]。 BYOBは引き続きダウンロードすることができます。Snap! の日本語化コードは阿部和広氏によって作成されています。

ライセンス[編集]

Snap! のソースコードはAffero General Public License (AGPL) ライセンスで、GitHubでホストされています。デスクトップベースの3.x以前のバージョンのコードは、非商用利用のみ修正を許可するライセンスで、UCバークレーのウェブサイト、CNETの Download.com および TechTracker のダウンロードページからダウンロードできます。

プラットホーム[編集]

Snap! は、HTML5 Canvasアプリケーションプログラミングインターフェース(API)を使用してJavaScriptで実装されているため、Windows、iOS、OS X、Linuxデバイスの主要な Web ブラウザで動作します。

出典[編集]

  1. jmoenig/Snap”. GitHub. 2022年8月5日閲覧。
  2. HomePage for Brian Harvey (bh@cs.Berkeley.EDU)”. people.eecs.berkeley.edu/~bh/. 2019年1月19日閲覧。
  3. Scratch - Imagine, Program, Share”. scratch.mit.edu. 2017年5月21日閲覧。
  4. UC Berkeley EECS - CS10 : The Beauty and Joy of Computing - Fall 2011”. inst.eecs.berkeley.edu. 2017年5月21日閲覧。
  5. https://forum.snap.berkeley.edu/t/relationship-with-the-scratch-team/1277/2

関連項目[編集]

外部リンク[編集]



This article "Snap! (プログラミング言語)" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Snap! (プログラミング言語).



Read or create/edit this page in another language[編集]