プログラム記述形式


■ プログラム構文

 Hello, world のプログラムは実行文がひとつだけでしたが、複数の実行文を記述することが可能です。

    for(var i = 0; i < 10; ++i)
        console.writeln("hello, world");
は、画面に10行の "hello, world" を表示します。
 このような記述形式はBASICで育った方々には親近感があるかもしれませんが、 C/C++で育った方々には違和感があるのではないでしょうか? そんな方々のために、以下のような記述も可能です。
    function main()
    {
        for(var i = 0; i < 10; ++i)
            console.writeln("hello, world");
    }
 もちろん、他の関数やグローバル変数を宣言することができます。
    function fuct(n)
    {
        return n < 2 ? 1 : n * fuct(n - 1);
    }

    function main()
    {
        for(var i = 0; i < 10; ++i)
            console.writeln("fuct(" + i + ") = " + fuct(i));
    }
 この様に ViViScript のプログラムはどちらの記述形式も可能になっています。
    【構文】

        プログラム:
            [ 文 ]...    //  注意: [ ]... は括弧内の0個以上の繰り返しを意味する
        文:
            宣言文
            定義文
            実行文
 構文を上に示したように、プログラムは文の並びで、文には宣言文、定義文、実行文があります。 宣言文とは var i; の様に何らかのオブジェクトの存在を規定するもので、 定義文とは function max(a, b) { return a >= b ? a : b; } の様にオブジェクトの内容を規定するものです (実は ViViScript では関数本体もオブジェクトの一種です)。 実行文は console.writeln("hello, world"); の様に何らかの動作を行うものです。
 したがって、プログラムの記述形式はユーザの好みに応じて選択できるというわけです。

■ 実行順序

 実行文はプログラムの最初から順番に実行されますが、関数定義はその時点では実行されず、 定義した関数がコールされて始めて実行されます。"main" 関数だけは他の関数と異なり、 すべての実行文が実行された後に、システムによりコールされます。

    console.writeln("line-1");
    function foo() { console.writeln("line-2"); }
    console.writeln("line-3");
    function main() { console.writeln("line-4"); }
    foo();
    console.writeln("line-6");
を実行すると、
    line-1
    line-3
    line-2
    line-6
    line-4
と画面に表示されます。確かめてみてください。

■ 行の意味

 プログラムでは(文字列内や // コメントを除いて)改行やスペース類は区切り記号以上の意味を持ちません。 これはC/C++と同じです。プログラムが読みやすくなるように、適当な位置で改行しましょう。 間違っても以下のようなコードは書かないようにね。

    function fuct(n)  { return n < 2 ? 1 : n *
    fuct(n - 1); } function main() { for(var i
    = 0; i < 10; ++i) console.writeln("fuct("
    + i + ") = " + fuct(i)); }

■ コメント

 プログラムの文書性を向上するためにコメントは不可欠です。 ViViScript では C/C++ と同じ様に //、/* */ をサポートしています。 // は行末までをコメントとし、/* */ はその間をコメントとします。 コメントのネストはサポートされておらず、/* は無視されます。

    var a = 1;  //  変数 a を定義
    // a += 1;
    /*
        a += 10;
        a += 100;
    */
    console.writeln(a);
の実行結果は "1" となります。