そら豆スクリプト:日本語っぽいプログラミング言語
※「catch.jp-wiki」から移動したページです。
そら豆スクリプト(SoraMame Script)は、自分で考えて自分で作りたい人のための、日本語っぽいプログラミング言語です。
今のところ、Webブラウザでグラフィックデザインやゲームを簡単に制作することを目指しています。
入力したコードは、ビジュアルデザイン用のプログラミング言語Processing.jsに変換して実行します(SoraMame.ps.js)。
そして、Processing.jsは、コードをJavascriptに変換して実行します。
クイックスタート
動物シミュレーション
とりあえず、どんなものが作れるか実際にためしてみてください。
次のリンクをクリックして、「うごかす」ボタンをクリックするだけ。
最新バージョンのWebブラウザを使っていれば、動くと思います。
プログラムは、こんな感じ
そら豆スクリプトで、マウスの位置にマルを描くプログラムは、こんな感じになります。
//マウスの位置にマルを描く
---初期設定する{
{幅:250, 高さ:250}のサイズ
}
---くり返し描画する{
{x:@マウスX, y:@マウスY}に{幅:50, 高さ:50}のマル
}
下記のリンク先で「うごかす」ボタンを押したら、マウスを左側のエリアにもっていくと・・・
マウスの動きに合わせて、マルが描けました。
次は、下から2番目の行で、右はしの「マル」を「シカク」に変えて、「うごかす」ボタンを押してみると・・・
{x:@マウスX, y:@マウスY}に{幅:50, 高さ:50}のシカク
マウスの動きに合わせて、シカクが描けました。
ほかにも、いくつかサンプルプログラムを用意しているので、ぜひ試してみてください。
- サンプルプログラム集
おもしろそうと思ったら、次の入門記事を読んでみてください。
- そら豆スクリプト入門
主な内容
対象ユーザー
- プログラミングの初学者
- 趣味・副業でプログラミングする人
- 必要にかられて、たまにプログラミングする人
期待できる導入効果
あるいはプロジェクトの目標
- 学習コストが低く、覚えるのに比較的手間がかからない
- コード可読性が高く、読めば動作が何となく分かる
- 現実的な利用範囲で、実際に使えるものが作れる
- クリエイターとプログラマの共同作業を容易にする
- 特定用途プログラミング言語(DSL)としてJavascriptと連携。
- (日本語形式のプログラミング言語で、コーディング規約を文書化する)
特徴
- 日本語っぽいコードをProcessing.jsに変換
- Webブラウザだけで開発/実行できる
- オブジェクト指向をサポート
- Processing/Processing.jsに変換でき、Arudinoなど様々な用途に展開(できたらいいな)
-
Javascriptと連携でき、ほかのWebサービスに接続可能
-
関数に名前付き引数を採用
- (区切り語の用例をルール化)
- (見本文をエディタで簡単に挿入できる)
動作環境
- HTML5とJavascriptが動作するWebブラウザ
- Firefox、GoogleChorme、 Opera、Safari
- IE9でも動きます。
- Windows, Mac, Androidで動作確認しています。
- iPhoneでも、動いています。
ライセンス
MITライセンス
ドキュメント類は、クリエイティブ・コモンズで提供
使い方
SoraMame Scriptの使い方を説明します。
とりあえず、試すには
フォームにコードを入れて、「うごかす」ボタンをクリックします。
ダウンロード
そら豆スクリプトは、Web版を直接ためすこともできますが、ローカルにダウンロードすることもできます。
- [[Downloads:https://github.com/ycatch/SoraMame.ps.js/]にアクセス
- 「ZIP」ボタンをクリックして、ファイルをダウンロード
- ダウンロードしたファイルを解凍
起動するには、「SoraMame_Script.html」ファイルをダブルクリックします。
リファレンス
サンプルプログラム集
開発
ソースコード
作っている人
課題
既知の不具合
- ~「もどる」命令が動作しない~
- 関数の第一引数に数式を書くとシンタックスエラーになる場合がある
{x:@i*1, y:@i}に{幅:30, 高さ:30}のマル
- 多数のShift/Reduce Conflictがある。演算記号に複数の用途がある場合(+, +=とか)におきている模様
- 命令文を句点「。」で区切ると、動作がおかしい
機能に関する要望
- 変換済みのpjsファイルを保存できるようにする。
- ~オブジェクト操作についての記法に、日本語っぽさが足らない。~
- オブジェクトの代入元に、New文を書けない。
- Processing.jsのコードを直接呼び出す表記
- Processing.jsのキーワード名を直接呼び出す表記
- 単項演算子「++」「--」。これがあれば、くりかえし命令のイディオムが書ける。
- GUIによるプログラミングエディタ
- 編集ファイルの読み込み
- 編集ファイルの保存
- 定型文の挿入(重要)
- Blockyみたいなドラッグ&ドロップによる編集
- そのほか
- ~ドキュメント(リファレンス、チュートリアル、サンプル)の充実~
- ~ブロックコメント文~
- ~Webページとデモページの見栄えをかっこよく~
- 命令文の充実
- 型変換
- オブジェクト継承、継承先のメソッド・プロパティ名を変換する方法
- 3Dデモが、特定の環境(OpenGL? いいグラフィックカード?)でしか動かない。WebGL対応のはずなのに。
ドキュメントの改善
- ~文法マニュアルに、コマンドの追加方法を記載~
- コマンドリファレンスに、すべての命令が記載されていない
- チュートリアルが、機能においついていない(保存機能とか)
- チュートリアルが、書きかけ(半分くらい)
内部構造/開発体制の改善
- テストの自動化
- 識別子(変数名、関数名、データ型名)などをローマ字ふりがなに自動変換。変換後のコードの可読性を高める。
開発履歴
- 2013
- 2012
- 12.31 オブジェクト表記の文法を修正。あわせてサンプルプログラムも差し替え
- 12.22 定数とキーワードの表記として、$識別子を採用
- 12.07 コラム:Processingのスケッチを、日本語っぽいプログラミング言語で作るを追加
- 12.03 「文法と書き方」に、「Processing.jsのメソッドやプロパティを追加する方法」を記載
- 12.01 3Dデモを追加
- 11.19 デモプログラムWebページのデザインを変更して、レスポンンシブWeb化した。
- 11.12 横スクロールデモを追加
- 11.07 ブロックコメント、画像表示命令を追加
- 10.30 スペースワープデモを追加
- 10.20 Github Wikiにリファレンスを移行
- 10.09 第4回 プログラムを制御せよ - そら豆スクリプト入門を公開
- 09.17 第3回 マウスに合わせてアニメーション - そら豆スクリプト入門を公開
- 09.08 第2回 世界をマルで埋めつくせ - そら豆スクリプト入門を公開
- 09.03 きみの言葉がプログラムになっちゃう - そら豆スクリプト入門と第1回 はじめるゼを公開
- 08.27 ロゴを作ってみた
- 08.20 コードエディタをちょいと機能アップ
- 08.17 ボイドデモを追加
- 07.28 なんとなく動くようになったので、外部に向けて初アナウンス
- 05.20 開発スタート