![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
質問タイトルが適切かどうかが不安ではあるのですが……。
例えば、
V MAIN{
IT = 50;
PR("hello,world");
FO(10){
IT --;
PR(IT);
}
}
のような入力を、
#include <iostream>
using namespace std;
int main(){
int it = 50;
cout << "hello,world\n";
for(int i = 0; i < 10; i++){
it--;
cout << it <<"\n";
}
return 0;
}
として実行するプログラムを作りたいのです。
(簡単なスクリプト言語を作りたいと言った方が適しているでしょうか?)
このようなプログラムを作る際に参考になりそうなWebページ、または書籍などに心当たりある方、是非紹介をお願いします。
No.8ベストアンサー
- 回答日時:
C++で簡易スクリプトを作りたいというなら、
「変態的」で有名な「boost::script」がお勧めだと思います。
既に出ていますが、日本語の解説サイトも念のため。
http://www.kmonos.net/alang/boost/
No.7
- 回答日時:
★アドバイス
・http://masudahp.web.fc2.com/cl/→『C言語』
上記サイトの
『言語処理プログラムの作成』の『インタプリタ作成 miniBASIC』が
ちょっとだけ参考になりませんか。
・簡単なインタプリタなら1ヶ月もあれば十分に作成可能です。
ただ、語句解析や構文解析をしっかりとやる必要があります。
繰り返し処理は再帰関数などで処理すると楽かもしれません。
(この場合はGOTO命令に注意しないといけない)
(GOTO命令をサポートするなら)
・C++ではありませんが次のサイト情報も参考にして下さい。
http://codezine.jp/author/601/→『VB.NETで仮想CPUを作ろう』
オリジナル言語の内部を中間言語として処理すると処理も早くなります。
ただし中間言語の内部表現(仮想CPU)から設計すると時間が掛かりますが
最終的に質の良い言語エンジンができると思います。
最後に
書籍を紹介します。
http://www.amazon.co.jp/dp/4797348550/→『スクリプト言語による効率的ゲーム開発 C/C++へのLua組込み実践』
http://www.amazon.co.jp/dp/4797331976/→『ゲームエンジンプログラミング GAME DEVELOPER』
この辺の本を最低でも1冊手元に置いておいても良いでしょう。
探すともっと詳しい(値段も高額,分厚い)ものあります。
参考URL:http://www.amazon.co.jp/dp/4797348550/
No.6
- 回答日時:
>yacc/lex の代わりに LGPL が (多分) 適用される bison/flex を出してきて「GPL の呪縛からも逃れられる」とはこれいかに>#3.
失礼しました。yaccはCDDLの様ですね。LexはMIT licenseって事で問題ないですね。yaccが一部環境でGNUライブラリを使っているって話があったので私が混乱していたみたいです。すいません。
私の知る限りでは、bison/flexの新しいバージョンからLGPL系のコード含まなくなったので、ライセンスの制約は受けなくなっているはずです。
質問者さん、関係ない話で混乱させてすいません。
No.5
- 回答日時:
ある程度までならマクロで逃げられるわけですが, ここまでいくと「新しいスクリプト言語」と言った方が適切でしょうね.
ところで, もとから GPL とは全く無関係な yacc/lex の代わりに LGPL が (多分) 適用される bison/flex を出してきて「GPL の呪縛からも逃れられる」とはこれいかに>#3.
No.4
- 回答日時:
No.3
- 回答日時:
yaccとlexならここが参考になりますね。
http://kmaebashi.com/programmer/devlang/index.html
ちなみに、yaccとlexの代わりにBisonとFlexを使えばGPLの呪縛からも逃れられます。
No.2
- 回答日時:
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_15.png?e8efa67)
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ルーチン」という言葉の意味
-
VBAで仕様書は書きますか?
-
C言語(gcc), Linux, FTPプログ...
-
空elseの有無
-
例外処理があまり使われない理...
-
VBAで関数をつくる
-
65536は2の何乗なのでしょうか?
-
FORTRANでの階乗の表現
-
あるプログラムのコマンドライ...
-
PICマイコンのコピー(クローン...
-
パソコン
-
変化させるセルが変化しない
-
インクリメント演算子のみを用...
-
0除算して、落ちるプログラムと...
-
CとFORTRANの計算速度はどちら...
-
Bluestacks内でダウンロードし...
-
C言語の長桁の引き算のプログラ...
-
Excelで4096点以上のFFTの方法
-
正しい五十音順について
-
「Outlookが他のプログラムによ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで仕様書は書きますか?
-
C言語(gcc), Linux, FTPプログ...
-
プログラミングのコード量に関...
-
COBOLのCALL文がいまいちつかめ...
-
きれいなコード vba vbaを勉強...
-
空elseの有無
-
例外処理があまり使われない理...
-
C♯の勉強法おしえてください
-
長編プログラミングの設計のコツ
-
逆フーリエ変換のプログラムに...
-
RPG言語の仕様書
-
変数・オブジェクト名に漢字使用
-
テキストの折り返し処理について
-
ノベルゲームを作成中なのですが、
-
プログラミングは難しい?
-
超初心者用プラグラム教えてく...
-
格闘ゲームを作るのは大変なん...
-
MFC,C++/CLI,C#の共存
-
「ルーチン」という言葉の意味
-
ActiveXコントロールの作成(V...
おすすめ情報