コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

関数について

ページビューが気になったので、ブログのトップページにNinja Toolsを貼ってみました。結果を見たところ、ほとんどが自分の足跡だと判明しました。ということは、この文章を今日読んでいる人は、ほとんどいないということですね。ちょっと開くだけでどんどんカウントアップされる様です。
まぁ、3ヶ月は続けて、その時には1日100人くらいの人が見に来てくれるようになることを目標としてやってみたいと思います。
本題です。

関数について

OsoScriptはC言語に文法を真似ているので、関数で始まり関数で終わる形式になります。すべてはmain()関数から始まります。スクリプトのどこかに必ずmain()関数が必要です。これが無いとエラーとします。関数仕様をまとめてみます。

  • 関数はfunction で宣言される。
  • 関数名は32文字以下である(作者都合)。
  • 関数に引数を持たせることができる。
  • 関数の引数は何個でも良いが、引数も変数の数に数えるので、変数の数の制限を越えるとエラーとなる。
  • 関数部は{ }で表され、関数内部に関数の宣言はできない。
  • 実行はmain()関数から始まる。
  • main()関数が無いとエラーとなる。

こんな感じでしょうか。
次に内部仕様を上げます。

  • スクリプト中の関数の位置と引数名、引数の数は、スクリプト実行前に予めテーブルを作って別ファイルとして用意しておく。
  • 関数テーブルファイルが無い場合は、実行前に生成する。
  • スクリプトが訂正された場合は関数テーブルファイルを再生成する。そのために、関数テーブルファイルにスクリプトサイズを書いておく。スクリプトファイルのCRCとかを取っておけば、より良いと思うのですが、起動が遅くなるといやなので、とりあえずこれで(作者都合)。
  • プログラム的には、決め打ちでmain()関数を呼び出すだけ。
  • 関数名もローカル変数として確保する。この領域に、return;やbreak;といった関数内で発生する特別な処理フラグを格納する。
  • 特別な処理フラグとしては、文字変数と数値変数の区別フラグも関数名ローカル変数に格納する。

こんなものかな、また、思いついたら仕様を追加していきたいと思います。

それでは来週からは、実作成ということで作っていきます。進捗によっては毎日日記がかけないかも知れませんが、なんとか頑張りたいと思います。プログラムはアルゴリズムと動作確認がやり易いように、Visual Studio2008C++で作りたいと思います。ある程度デバッグできた時点で、JM128に移植するという進め方で移行と思っています。

本当にやりたいことリスト

(ブログの終わりにやりたいことを書いておきたいと思います)

  • 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
  • Androidプログラム
  • Web系のプログラム