綾織言語とC言語の違い
このページでは,キャラクターの振る舞いを記述するための綾織言語と,多くのプログラミング初心者が最初に学ぶC言語の違いについて解説します.このページのみ,C言語をある程度かじったことのある方を対象とします.
綾織とC言語では文法がかなり似ていますが,技術要素ではいくつか異なる部分があります.例えばC言語では構造体を利用したり,ポインタを駆使したりすることでとても効率の良いプログラムを書くことができる反面,文字列の処理や画面上への出力はかなり弱い部分があります.しかし逆に綾織では,ポインタに代表されるようなメモリ管理を意識することは一切ありません.また画面への出力も1~2命令とかなりスムーズです.
このページでは,C言語の経験者に対してキャラクター作成をどのように進めるべきかということを示します.
1.C言語との共通点
C言語との共通点はおおまかに以下の通りです.綾織では :
- 行番号に関係なく文章の区切りはセミコロン.「フリーフォーマット」であること.
- 構造化がしやすく手順を入れ子構造で示して見通しの良い記述をすることができる.
- モジュール化がファイルを単位として可能.
- 変数名に有効範囲(スコープ)がある.
- 文字の大文字・小文字が区別される.
2.C言語との相違点
違う点は以下の通りです.綾織では :
- 文字列をそのまま扱えるstring型,真偽値を扱えるboolean型がある.
- 配列はあるがポインタ,構造体,共用体といったデータ構造はない.
- 変数名以外のシンボルは有効範囲が全モジュールに及ぶ.例えば違うファイルでも同じ関数名は使用できない.
- プリプロセッサはほとんど使えないため,マクロなどはかけません.include文ぐらい.
- 汎用のライブラリはない.強いて言えばサンプルプログラム程度.
箇条書きにすると上記のようになりますが,C言語に相当入れ込んでしまった人でなければすぐ頭を綾織に切り替えることができます.「printf→Talk」といったような具合です.
3.書き方図解 : 左がC言語,右が綾織言語
解説
- インクルード文はほぼそのままです.ヘッダはPDKに含まれるものを利用します.
- 一般的なC言語のプログラムは起動されたときにmain関数の中身が上から実行されますが,綾織にはmain関数はありません.その代わりにアクションと呼ばれる実行単位が用意されており,アクションの起動条件で関数の実行タイミングを制御します.基本的にキャラクターはイベント駆動型のため,起動されたとき(StartUp),左クリックされたとき(MouseUpL)などのようにそれぞれ専用のアクションも用意されています.その他,毎時0分に実行するアクションなども自由に自分で定義することができます.
- 関数は引数と戻り値があり,C言語と同じくサブルーチンのように利用することができます.