そら豆スクリプト:日本語っぽいプログラミング言語

※「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版を直接ためすこともできますが、ローカルにダウンロードすることもできます。

  1. [[Downloads:https://github.com/ycatch/SoraMame.ps.js/]にアクセス
  2. 「ZIP」ボタンをクリックして、ファイルをダウンロード
  3. ダウンロードしたファイルを解凍

起動するには、「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対応のはずなのに。

ドキュメントの改善

  • ~文法マニュアルに、コマンドの追加方法を記載~
  • コマンドリファレンスに、すべての命令が記載されていない
  • チュートリアルが、機能においついていない(保存機能とか)
  • チュートリアルが、書きかけ(半分くらい)

内部構造/開発体制の改善

  • テストの自動化
  • 識別子(変数名、関数名、データ型名)などをローマ字ふりがなに自動変換。変換後のコードの可読性を高める。

開発履歴