# Jostar

Jostarとは、コンパイラ方式のプログラミング言語です。大きな特長としては、構造化プログラミング (Structured Programming)をサポートしています。

## サンプルコード

    hoge:{
        x:i = 0;

        *.f(){
            x = x + 1;
        }
    }

    main:{
        o:new hoge;
        o.f();
        o.f();
    }

## やさしい入門

# プログラミングをやってみよう

まず手始めに、Jostar言語でかんたんなプログラミングをやってみます。さっそく次のようなコードを書いてみます。

    main:{
    }

Joestar言語はいくつものモジュールから構成されます。クラスはモジュールの一種です。先ほど出てきた「main:」はメインモジュールを宣言します。

また、Jostarでは、式文と宣言文、変数と演算子、リテラル値が言語で使えます。それらを使った部品の単位を「クラス」として扱います。

# クラス

Jostar言語では、プログラムをいくつかの部品に分けて考えることができます。その部品を構造化プログラミングでは「クラス (class)」と呼びます。そのクラスを宣言するためには、ダイクストラ記法で書きます。例えば、module1という名前をつけたクラスを宣言したいとき には、次のように書きます。

    module1:{
    }

このクラスは、『構造化プログラミング』の著者の一人で、ノルウェーの科学者であるダール(dahl)が考案したものです。ORのクラスとホーアのレコードクラスと区別するために「オブジェクトクラス」とも言います。

# インスタンス

クラスを書いたら、今度はインスタンスをつくるために、new構文を使います。

    main:{
      x:new module1;
    }

これで、変数xにはmodule1クラスのインスタンスをつくることができました。

この「インスタンス」と「new」の定義は、構造化プログラミングの第一部のダイクストラ抽象化や第三部「階層プログラム構造」を参照してください。

# コメントの書き方

コードの最中で、コードとは別に、注釈などを入れることができるようになります。それをコメントと呼び、以下のように書きます。

    main:{
      /*ここにコメントを入れます*/
      x:new module1;
    }

また、//を使って、行末にコメントを入れることができます。

    main:{
      x:new module1; //ここにコメント
    }

コメントはどこに何を書いてもかまいません。さらに、/*と*/の間であれば、改行ができます。コメントがコードとして実行されることはありません。

## 開発指針

Jostar言語をどう開発していくかについては、「Jostarの目標は何？」のページをご覧ください。

開発のメモはブログ「プログラミング言語Jostar開発メモ」をご覧ください。これはJostar言語の開発者がコンパイラ開発の記録などをブログ形式で書いているものです。ぜひ、開発指針の参考にしてください