電子書籍の厳選無料作品が豊富!

質問タイトルが適切かどうかが不安ではあるのですが……。

例えば、
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ページ、または書籍などに心当たりある方、是非紹介をお願いします。

A 回答 (8件)

C++で簡易スクリプトを作りたいというなら、


「変態的」で有名な「boost::script」がお勧めだと思います。

既に出ていますが、日本語の解説サイトも念のため。
http://www.kmonos.net/alang/boost/
    • good
    • 0
この回答へのお礼

紹介ありがとうございます。
スクリプト以外にも有用そうですね。ざっと見てみる事にします。

お礼日時:2009/02/12 23:10

★アドバイス


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/
    • good
    • 0
この回答へのお礼

紹介ありがとうございます。
近くの大型書店などで内容を少し覗いてみることにします。

お礼日時:2009/02/12 23:08

>yacc/lex の代わりに LGPL が (多分) 適用される bison/flex を出してきて「GPL の呪縛からも逃れられる」とはこれいかに>#3.


失礼しました。yaccはCDDLの様ですね。LexはMIT licenseって事で問題ないですね。yaccが一部環境でGNUライブラリを使っているって話があったので私が混乱していたみたいです。すいません。
私の知る限りでは、bison/flexの新しいバージョンからLGPL系のコード含まなくなったので、ライセンスの制約は受けなくなっているはずです。
質問者さん、関係ない話で混乱させてすいません。
    • good
    • 0

ある程度までならマクロで逃げられるわけですが, ここまでいくと「新しいスクリプト言語」と言った方が適切でしょうね.


ところで, もとから GPL とは全く無関係な yacc/lex の代わりに LGPL が (多分) 適用される bison/flex を出してきて「GPL の呪縛からも逃れられる」とはこれいかに>#3.
    • good
    • 0
この回答へのお礼

マクロですか・・・ちょっと自分の目的とは合わないようなので、マクロでは無理なようです。

お礼日時:2009/02/12 23:06

 こんばんは。



 「坂本千尋 スクリプトエンジンプログラミング」
 http://www.google.co.jp/search?hl=ja&q=%E5%9D%82 …
    • good
    • 0
この回答へのお礼

紹介ありがとうございます。
評判や扱っている内容などを吟味した上で、読んでみるか決めたいと思います。

お礼日時:2009/02/12 23:06

yaccとlexならここが参考になりますね。


http://kmaebashi.com/programmer/devlang/index.html

ちなみに、yaccとlexの代わりにBisonとFlexを使えばGPLの呪縛からも逃れられます。
    • good
    • 0
この回答へのお礼

紹介ありがとうございます。
とりあえず、ざっと見てみることにします。

お礼日時:2009/02/12 23:03

Boost C++ LibrariesのSpiritを調べてみてください。



参考URL:http://www.boost.org/doc/libs/1_38_0/libs/spirit …
    • good
    • 0
この回答へのお礼

この内容はどうやらまだ自分には厳しいようです。

お礼日時:2009/02/12 23:02

yaccとかlexを勉強するとよいかと。


http://ja.wikipedia.org/wiki/Yacc
http://ja.wikipedia.org/wiki/Lex
    • good
    • 0
この回答へのお礼

yaccにlexですか……こういったものがあったのですね。
とりあえずざっと見てみます。

お礼日時:2009/02/12 23:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!