質問: 自作プログラミング言語が作りたいです こんにちは。どうも、初めまして。 タイトルの通り、自分でプログラミング言語を作成したいのですが、 どこから手をつけていいのかわかりません。 作成するにあたって、必要になる知識などはありますか? 一応、扱える言語は「hsp3」と「activebasic」です。 中学生なのでフリーの言語しか勉強していませんが、 web講座を見て独学で勉強いたしました。 「hsp3」と「activebasic」ではどちらの方が作りやすいですか? やはり、「activebasic」の方ですか? ご回答のほどよろしくお願いします。
回答: ★アドバイス ・スクリプト言語を自作したいようですね。 >(hsp3で作成:未定)→activebasicで作成→c言語の勉強→作成 この順で作成するより最初からc言語をお勉強しながら作り上げていくのはどうでしょうか。 『hsp3』そのものがスクリプト言語のような感じですのでこれで作るのは無理・無駄です。 『activebasic』の方がしっかりとした言語です。 コンパイルして機械語になった exe を作成してくれます。 ・まずは言語の仕様を決めた方が良いです。 私も11年前に簡単なインタプリタを作成しましたが、ころころと仕様を変えてしまったために 完成するまでに時間が掛かりました。そのときに参考にしたのが n88-basic です。 インタプリタを作るためにわざわざ n88-basic 日本語版を買いました。 買った理由はマニュアルを参考にするためでした。 ・仕様も最初は簡単なタイプが良いでしょう。 例えば (1)変数は a-z の 26 個だけ。 (2)if、else、switch の条件分岐。 (3)for、while、do-whileの反復処理。 (4)変数などは整数型、実数型、文字列型は最低限用意。 (5)サブルーチンを定義、呼び出せる。 (6)グローバル変数(a-z)、ローカル変数(a-z)を定義できる。 (7)組み込み関数の呼び出し、エラー処理。 (8)その他 こんな感じだけでも最初は難関です。 ・最終的にc言語を使って作成するなら次のサイトを参考にして下さい。 http://www.nakka.com/soft/ns/→『nscript』 この言語の仕様は『言語仕様』のリンクを読んでみて下さい。 http://www.nakka.com/soft/ns/ns.txt→『言語仕様』 この言語のコンセプトは『c言語ライクな簡易スクリプト』だそうです。 ソースファイルもダウンロードできます。 無料のcコンパイラを用意さえすればきっとコンパイルできるでしょう。 コンパイルが出来たらいろいろといじってみるのも良いな。 ・あとこのようなスクリプト言語を作る前に『式』を評価する処理を作成して下さい。 回答者no.6さんのアドバイスにありますね。まずは数式を評価(計算)する処理を 作ります。数式には四則演算以外に関数を呼び出したら戻り値を使って評価する ようにします。ここがポイントです。→言語の仕様が式評価の場合。 数式を評価できたらif、elseなどの条件分岐とfor、whileなどの繰り返し文も 処理できるようにします。このとき内部でどのように繰り返し文を処理するように 管理するかが一番難しいところです。楽な方法では独自の言語のソースを一旦 中間コードにコンパイルしてその中間コードを擬似アセンブラのように処理します。 この方法が処理速度が早くなり、作るときも実装しやすいと思います。 最後に: ・まずはしっかりとしたプログラミング言語を習得して下さい。 『hsp3』は遊びのプログラム程度しか活用できません。 『activebasic』か、『c言語』を先にお勉強して下さい。 あと数式を評価するタイプを先に作ります。 これが出来れば独自の言語の1/4は完成したような感じです。多分1/4だな。 ・以上。 参考url:http://www.nakka.com/soft/ns/