スクリプトコンパイラについて ( yac と lex も可 )
■ このスレッドは過去ログ倉庫に格納されています
0001439
01/11/07 15:31ID:GpFz7V+v(エロ)ゲームプログラマーには一番難しい所かもしれません。
yac と lex も可です。
002119
01/11/07 18:08ID:???*MSXML IE4以上なら一緒にインストールされていると思う。SDKはMSで入手のこと(.NETβがいいかも)
DOMとか新しい仕様を使いたければユーザにIE5以上のインストールをお願いすることになると思われる。
*XML4C Apacheから出ている。基本的にUNICODEしか使えないので、日本語コードが使いたければIBMが出している多国語対応版を利用のこと。
スタンドアロンで動くので、MSXMLのようなIEのインストール作業が必要ない。新らしXMLの規格への対応も迅速(DOM2やSchemaに対応済み)
ただし、DLLのファイルサイズがでかい。多国語対応版は文字コード変換DLLがいるため、さらにでかくなる。
XMLについて勉強する際は@IT等が良いと思われ。
002218
01/11/07 18:46ID:???http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/index.html
こんな感じなんだけど
<action>
<wait>20+$rand*50</wait>
<changeDirection>
<direction type="absolute">180</direction>
<term>10</term>
</changeDirection>
</action>
中間コード吐くようにすれば実行環境側にはパーサ必要ないし。
・・・でもあんまりメリットないかな。
0023名無しさん@お腹いっぱい。
01/11/09 01:11ID:???ん?MSXML だけインストールさせれば?
XML 使う利点ねえ。
・自分でパーサ書かなくて済む
・生成も DOM 使えば簡単
・SOAP とかネットワーク分散とか
・DTD や XML Scheme といった標準規格で記述した仕様をそのまま使える
個人的には4番目が大きいな。
自分流で仕様書くと必ず曖昧で相手に伝わらない点が出てくるから。
0024名無しさん@お腹いっぱい。
01/11/09 01:48ID:QPURCFOq0025名無しさん@お腹いっぱい。
01/11/09 02:43ID:???http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/766/msdncompositedoc.xml
MSXML 3.0 Parser Localized Versions
http://msdn.microsoft.com/downloads/sample.asp?url=/msdn-files/027/001/573/msdncompositedoc.xml&frame=true
0026名無しさん@お腹いっぱい。
01/11/09 10:08ID:XLFvo4DJ・XMLエディタが使える。SchemeやDTD使って文法チェックや自動補完の支援も受けられる
・正確な文法を相手に伝えることができなくても、「こんなかんじ」でサンプル渡せばなんとなく書いてもらえる
0027煽りじゃないけど
01/11/09 10:09ID:4a3RFUktプログラマのオナニーじゃないの?
0028名無しさん@お腹いっぱい。
01/11/09 10:14ID:LYHkp5wYなにかこう、画期的なXMLエディタでも出てくれば事情が違ってくるんだろうけどねえ。
0029名無しさん@お腹いっぱい。
01/11/09 10:17ID:???なんでエロゲーに限定やねん。
それはおいといて、キャラクタのデータベース作るときとか良いかもですよ?
たしかにCSV形式で必要十分っちゃそうなんだけど。
プログラマの自己満足?その通りですわ。本業にフィードバックできるしね。
0030名無しさん@お腹いっぱい。
01/11/09 10:27ID:???変な関西弁だったけど(w
0031名無しさん@お腹いっぱい。
01/11/10 09:51ID:ZLaGQkGzプログラム板にも書きましたが、あがってないようなので…。
http://www.oishi.info.waseda.ac.jp/~oishi/interpreter/ma.html
を元に見よう見まねで電卓を作ってみました。++,+=,16進数等を追加。
↓ソースコード
http://page.freett.com/pluteus/works/bin/calc.lzh
まだif文などにバグありですが、これからゲームに組み込んで、
スクリプトエンジンにしたいと思います。
仕様は…
1デファイン機能
電卓なので変数宣言不要
関数は定義可能
2マクロ機能 なし
3計算式 a,b,c,d
4関数 b
5書式 e
6構造化 a,d,f,i,j
7セーブ機能 なし
switch〜case文、break文、continue文、配列変数なども実装したいんですが、
どこかにbison用の構文解析ソースないですか?
簡易電卓機能までなら結構見つかるんですが、
スクリプトエンジンともなるとちょっと見つかりませんでした。
書籍を買えば分かるのかもしれませんが、
ソースを見たほうが速いので。
0032名無しさん@お腹いっぱい。
01/11/10 11:47ID:???yaccので良ければgccのソースに含まれているよ
http://gcc.gnu.org/
っつーか探せば余裕ででてくるが?
003331
01/11/10 12:23ID:U1Ytzgh8>っつーか探せば余裕ででてくるが?
探すとこが良くなかったようですね、ありがとうございます。
(Googleで"bison flex ソース"とか)
gccくらい高度になると全部自力で構文解析してるのかと思ってました。
調べてみます。
0034名無しさん@お腹いっぱい。
01/11/12 07:02ID:iEHeW1Vlやっぱり小数も扱えるようにしてあると便利なのだろうか・・・。
ちなみに、自分は bison 使って構文解析機作ってます。
0035名無しさん@お腹いっぱい。
01/11/12 10:01ID:???どうしても必要な場合、固定小数点でやってるよ。
小数点以下2バイト、実数2バイトで。
0036名無しさん@お腹いっぱい。
01/11/12 13:34ID:???なんでそんな回りくどいことするの?
普通にbignum作ればそれでいいじゃん
0037名無しさん@お腹いっぱい。
01/11/12 21:08ID:???どうしても必要な場合って言ってるだろ。
計算が速いから固定小数点使ってるんだよ。
0038名無しさん@お腹いっぱい。
01/11/12 23:48ID:???0039名無しさん@お腹いっぱい。
01/11/13 00:03ID:???ていうか、3Dゲームに使うスクリプトなら実数に対応せざるをえない。
0040名無しさん@お腹いっぱい。
01/11/13 16:43ID:???0041名無しさん@お腹いっぱい。
01/11/13 16:59ID:???環境作ってます。環境なんでエディタなんかも込みです。
最近のPCとは比べ物にならないくらい制限がキツイけど、これぐらい
キツイと逆に作り応えがあります。
0042名無しさん@お腹いっぱい。
01/11/13 22:53ID:???0043名無しさん@お腹いっぱい。
01/11/14 17:20ID:xFHu6HrX0044名無しさん@お腹いっぱい。
01/11/14 17:49ID:???どうしてもってなに?
bignumなんて一度作れば終わりじゃん。
もしかして、毎回スクラッチしてるの?
0045名無しさん@お腹いっぱい。
01/11/15 03:14ID:uBJWEUjxとりあえず、フリーのものさがしてみるよ。
コンシューマ機でものっけれるような素敵なのないかな。
0046名無しさん@お腹いっぱい。
01/11/15 03:30ID:???http://www.cc.yamaguchi-u.ac.jp/~shingo/WabaWorld/
携帯機用だから、コンシューマ機に載せ易いかも。
0047_
01/11/15 04:23ID:TDb/e4F8何の為に作るの?
あそこまで作るんだったら、Cをそのまんま使った方がいいと思うんだけど。
ちょっとした言語仕様を盛り込みたい為に、体系を一から構築するのって
どうなの?
0048457
01/11/15 05:03ID:???ざっと考えるだけでも
1)シナリオライターが逐次修正した物を
プログラマーがいちいち打ち込むのは大変。
プログラマーとシナリオライターが同じ場所に居るとは限らないし、
かといって、シナリオライターがソースを触ると危ないし、
シナリオライター全員の分の言語ライセンスを買うわけには行かない。
2)バージョンアップの時に、一部のシナリオファイルの改訂だけですむ
とか、色々あると思います。
0049名無しさん@お腹いっぱい。
01/11/15 12:39ID:9dLaA6vjWavaはどうやらGPLみたいですね。トホホ(;´Д`)
やっぱ仮想マシン自分で作れってことか。
0050sage
01/11/15 13:11ID:uBJWEUjxえっ!なになに!GPLだとまずいの!?
これゲームにのっけるとき、ソース公開せんといけなくなるの?
0051名無しさん@お腹いっぱい。
01/11/15 13:48ID:RSUbKJenご明察。
MS関係者が「GPLはソフトウェアに感染するウィルスみたいな物だ」と発言してオープンソース業界で問題になったことがあったが、
MSの気持ちは痛いほどよくわかるよ。
今の流行はGPLじゃないソースコード公開、勝手に使ってくれというライセンスやね。pngとかzlibとかPythonとかそうでしょ。
0052名無しさん@お腹いっぱい。
01/11/15 14:00ID:???ニュアンスに違いかも知れないけど、誰かに要求されたらソースを公開する
必要がある、という意味だと思いますけど。
作ったからと言って、サイトに無償公開しろ、という意味ではないはず。
もちろん、利用したらGPLであることを記載しないといけないですけどね。
005350
01/11/15 14:03ID:uBJWEUjxBladeOfDarknessっつー洋ゲーにPythonがつかわれてたのは
そういうことか。
スレ違いだけど、ゲームに剛体シミュいれたいなーとか、
シャドウボリュームつかいてーとか思ってる人は、
BladeOfDarknessみとくといいかも。
デモ版があるよ。
0054名無しさん@お腹いっぱい。
01/11/15 14:31ID:???自分が配る時は無償でなくてもいいんだけど、
それを得た他人が無償でくばってもいいので
結局(ソフト自体は)無償で公開してるのと一緒。
0055名無しさん@お腹いっぱい。
01/11/15 15:38ID:???んじゃないかな。基本的に別物扱いで、実行環境等を入れるにしても
GPLに縛られるのはその実行環境のみのはず。
#そうでなければgccなんて使ってられんぞ…。
ちょっと違うのはライブラリの場合で、これは大抵LGPLという緩い
ライセンスになっていて、そうなっていた場合は大抵ダイナミック
リンクする範囲では問題無くなってるはず。
間違ってたらスマソ。
0056名無しさん@お腹いっぱい。
01/11/15 15:52ID:???>え、GPLedな開発環境で作った成果物って別にGPLに縛られない
>んじゃないかな。基本的に別物扱いで、実行環境等を入れるにしても
>GPLに縛られるのはその実行環境のみのはず。
GPLなライブラリやGPLなコードとリンクされる場合ね。縛られるのは。
LGPLでないかぎりはスタティックリンクでもダイナミックリンクでも
しばられる。
じゃあWindowsのDLLとGPLをまぜて使うときはどうなんだという
話はボーダーラインの話なのでGNUの見解を参照。
>#そうでなければgccなんて使ってられんぞ…。
gccを非GPLなモノに使っていいのは特例です。
>ちょっと違うのはライブラリの場合で、これは大抵LGPLという緩い
>ライセンスになっていて、そうなっていた場合は大抵ダイナミック
>リンクする範囲では問題無くなってるはず。
こっちはあってる
GPLの話題は別のところでしましょうかね
0057名無しさん@お腹いっぱい。
01/11/15 17:33ID:afucvIzX携帯だからスレ作れないの。
0058名無しさん@お腹いっぱい。
01/11/15 18:57ID:Akdsfzo6GPL/LGPL等ライセンスとゲーム製作
http://game.2ch.net/test/read.cgi/gamedev/1005818191/
0059名無しさん@お腹いっぱい。
01/11/15 21:40ID:ducCdIA5既存のスクリプトエンジン探せばいろいろ落ちてるんじゃないでしょうか。
未評価ですが、この辺とか。
http://home.elka.pw.edu.pl/~ppodsiad/seer/
http://www.compuphase.com/small.htm
もし自作するなら、あまり気合い入れて作りこまないほうがいいかもねー。
BASICとかバッチファイル並みで十分だと思う。
プログラマ以外にはろくに機能を使いこなせないスクリプトとか、
普通にコンパイラ使えばいいのにってスクリプトになるのもアレだし。
0060名無しさん@お腹いっぱい。
01/11/15 23:50ID:uBJWEUjxつかってるうちにその言語習得できちゃったりして。
0061名無しさん@お腹いっぱい。
01/11/16 00:22ID:???http://www.tecgraf.puc-rio.br/lua/
0062名無しさん@お腹いっぱい。
01/11/16 00:34ID:???対応言語が増えすぎてしまうが(w
0063名無しさん@お腹いっぱい。
01/11/16 00:54ID:ZgDDdgZXあまり言語仕様が高性能すぎても、今度はスクリプトコンパイラ上で動くスクリプト自体の
デバッグに追われることになってしまう。
0064名無しさん@お腹いっぱい。
01/11/16 01:43ID:???あまりに言語仕様が高性能すぎる
と、
スクリプトコンパイラ上で動くスクリプト自体の
デバッグに追われることになってしまう
ということになるってどういうことだろ・・・
言語仕様が単純でも高機能でもデバッグに追われるよ
0065名無しさん@お腹いっぱい。
01/11/16 04:20ID:???凝って自由度を上げすぎると、シナリオ担当者等が扱えきれなくて本末転倒
と言いたいのだと思われ。
0066名無しさん@お腹いっぱい。
01/11/16 06:25ID:???JAVAを組み込むのにモえてもたよ。
http://www.netgene.co.jp/java/docs/javaPressVol14.html
ここを参照でまーなんとかできそうだ。
this->*(_opcodes[*_pc]))();
こんなことをやってオペコード実行しとりますが、
このやり方にマンセーなかたがいらっしゃいましたら、
てきとうなとこでウプしますけど。
はは・・・たたかれそうだな・・・。
0067名無しさん@お腹いっぱい。
01/11/16 07:06ID:???http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.html
0068名無しさん@お腹いっぱい。
01/11/16 09:07ID:???ただ、MSから仕様書拾ってきたらページ数ありすぎで読む気しない。
英語馬鹿でも読める、もちっと纏められた資料ってないんかの〜。
0069名無しさん@お腹いっぱい。
01/11/16 11:32ID:???007066
01/11/16 12:03ID:???CLRかぁ!うーん・・・どうしよっかな・・・。
でも >>67 のみて十分JavaVMでもいろんな言語いけるおもたよ。
日本語資料よくできてるし。
べつにバイナリコードでプログラムするわけないしね。
0071名無しさん@お腹いっぱい。
01/11/16 12:08ID:???Javaベースにしてメイン部分をJNIに逃がす、
ということはできないのだろうか。
0072名無しさん@お腹いっぱい。
01/11/16 14:33ID:???0073名無しさん@お腹いっぱい。
01/11/16 16:54ID:???まぢ!Java言語じたいより、VMのほうが長生きする予感
0074名無しさん@お腹いっぱい。
01/11/16 23:36ID:???せっかくだからアプしようぜ。
>>68
俺もダウンロードしてきたけど、読み応えありすぎるわ(w
0075名無しさん@お腹いっぱい。
01/11/17 00:39ID:???できるだろうけど、ほとんど意味ないんじゃない?
プログラマ以外の人が簡単にゲームのフレームや流れを作れるようにするために
スクリプト作るってのが元の目的でしょ?
まあ面白いけど(w
0076名無しさん@お腹いっぱい。
01/11/17 01:35ID:???0077名無しさん@お腹いっぱい。
01/11/17 01:42ID:???うーん、GPLなんかだと激しく萎えるなあ
0078名無しさん@お腹いっぱい。
01/11/17 01:59ID:???0079名無しさん@お腹いっぱい。
01/11/17 02:07ID:???ハハハ、なんつーかそこまでムキになるなやって感じやな。
0080名無しさん@お腹いっぱい。
01/11/19 00:29ID:???0081名前は開発中のものです。
01/11/24 21:29ID:???あれ?やってなかったっけ?ほのかに記憶あるんだけど。
0082名前は開発中のものです。
01/11/24 21:33ID:yBLWDR2S0083名前は開発中のものです。
01/11/27 09:53ID:???みつかんないよーどこにあるの!?
0084名前は開発中のものです。
01/11/27 10:01ID:???0085名前は開発中のものです。
01/11/27 11:15ID:???>>78のリンクみろ
>>83
http://www.gnu.org/projects/dotgnu/projects.html 「* Support for Java bytecode」
http://www.southern-storm.com.au/portable_net.html
まだ実装されてません
008685
01/11/27 11:37ID:???実装されてます
008883
01/11/27 21:35ID:???・普通にC#コンパイラとして使えました。(EXE出力)
・JavaVMアセンブリソースのはきだし方。
%cscc -mjvm -S source.cs
この出力結果から、.classができるかどうかは、まだわかりません。
008983
01/11/27 23:11ID:???>>88 の方法で吐き出した source.jl (JVM-ASMをIL形式で出力したもの)
をilasmにくわしてみた。
%ilasm -mjvm source.jl
(-mjvmオプションはソースをIL形式のJVMバイトコードで出力)
出力結果.objをみてみたけれども、.classにはほど遠い。
.jlをjasmin(JavaASM)のフォーマットに変換するのが
C#->.classへの近道っぽい。(わりとよく似てる)
0090厨房
01/11/28 00:36ID:???0091名前は開発中のものです。
01/11/28 00:56ID:???CLIもスタックマシンらしいけど?
ここにC#コンパイラがどうしてJVMコードをはけるのかとか
なぜgccと統合しなかったのかとかが書いてある
http://www.southern-storm.com.au/pnet_faq.html
0092名前は開発中のものです。
01/11/29 14:19ID:???JavaVMと似てるならCLI真面目に勉強したいな。洋書読める程英語できないし、早く翻訳されないかな。
0093名前は開発中のものです。
02/01/03 07:02ID:WLPQVhtkBASICのIFが使える程度で良いのですが、
色々調べても難しい物ばかりでなかなか良い物を探せません。
何か良い物があったら教えてください。
0094名前は開発中のものです。
02/01/03 08:47ID:WHmmrKAUグラフィックだとかも使えるしね。
0095名前は開発中のものです。
02/01/03 09:31ID:???おいおい。
>>93
コンパイラじゃないけどこの辺を
http://member.nifty.ne.jp/nakamula/recurs.htm
0096名前は開発中のものです。
02/01/03 10:20ID:???F-BASICは産業分野で大活躍しとる。
N-88Basicで書かれた昔の計測システムとかを動かすのにな
板違いsage
009794
02/01/03 11:51ID:???スマソ。
0098名前は開発中のものです。
02/01/03 17:17ID:???ttp://member.nifty.ne.jp/KENJI/
ここがおすすめ
0099名前は開発中のものです。
02/01/03 23:20ID:WLPQVhtkスクリプトコンパイラで検索すれば色々でてくるよ。
0100名前は開発中のものです。
02/01/04 03:58ID:/BxIs0ic色々調べても難しい物ばかりなので、自分で拡張できそうにないです。
何か拡張を前提とした良い物って無いでしょうか。
ソースがわかりやすいものが良いです。
0101名前は開発中のものです。
02/01/04 11:02ID:???前述のリンクたどって1からスクリプト組んでみるといいと思う。
できたころには、他のスクリプトも拡張できるようになってる。
俺の場合だけど
0102100
02/01/04 18:15ID:UkX35gI3サンキューです。
単純なスクリプトコンパイラを作るのソースを参考にしてみます。
これなら簡単に理解できそうです。
専学で作ってるゲームシステムをどこかにアップしてみんなに見てもらうことって
出来るんでしょうか。
いえね、なにか自分のがプロの方にはどう見られるかと思ってね
0103名前は開発中のものです。
02/01/05 19:27ID:???2chにさらすのが手っ取り早い。
0104100
02/01/06 09:03ID:+jtLqqFXつまらない物だけど、もし出来上がったらさらします。
単なるアドベンチャーゲームのエンジンなんですが、
ちゃんと出来ているかというより、
今後何年間かでプロになれるかが心配なのでみんなに見てほしいです。
0105名前は開発中のものです。
02/01/09 07:08ID:9EzpJOZt100のADVシステムきぼん
0106100
02/01/14 09:10ID:5xExvzQXttp://www4.famille.ne.jp/~yo-ogawa/cgi-bin/bbs/upload.cgi
批評お願いします。
新しく板、作ったほうがいいでしょうか
0107100
02/01/14 09:20ID:5xExvzQXhttp://www.nyan-web.ne.jp/~mystyle-jp/cgi-bin/upboard/imgboard.cgi
サンプルも入れておきますので、批評お願いします。
0108名前は開発中のものです。
02/01/14 09:31ID:v4MH2X5h0109名前は開発中のものです。
02/01/14 20:57ID:???思ったのだが。C言語っぽいし、WindowsAPIも呼び出せるし。
0110名前は開発中のものです。
02/01/14 21:21ID:NFXyvc6Z優秀なサンプルプログラム、ライブラリとしては後一歩のところがとどかない。
とかいて気付いたが、yaneSDKはそのままC言語だろ。(w
正確にはC++だけど。
0111名前は開発中のものです。
02/01/14 21:29ID:JgCRpRR+>>100
108 ではないけど、最初に形にした物としてはよいのでは。
自分が初めて形にした物よりはだいぶマシ(苦笑)
ただ、400 行以上にもなる関数があるのは頂けないので、
そのへんは注意せんとね。
0112名前は開発中のものです。
02/01/14 22:01ID:???スクリプト言語のほう言ってるんじゃない?
ここのスレで言っているからして。
しかしそれにしても、いまどきフリーのC/C++コンパイラもあるのに
わざわざC言語に劣るスクリプト言語を使うメリットはそんなに大きくないだろう。
0113名前は開発中のものです。
02/01/14 22:06ID:???0114名前は開発中のものです。
02/01/14 22:14ID:???一発でmake後実行できるように環境を整えておけば似たようなもんだよ。
スクリプト言語って記述しやすければ開発が楽になるが、腐った仕様の
スクリプト言語をつくっちまうと逆に足手まといになるね。
0115名前は開発中のものです。
02/01/14 23:48ID:5+gjnPlJシナリオライタとプログラマが同一人物とは限らないし、
シナリオライタが複数いることもある。
プログラマ以外の人がシナリオを触ると、問題が出てくることが多い。
動作チェックするときにも再コンパイルをして、
コンパイラの最適化によるバグも防げる。
もちろん、スクリプトコンパイラは十分バグ出ししていることが必要だけど。
スクリプトコンパイラでちゃんとスクリプトのバグを出してくれるのであれば、
バグも出にくくなる。
表示される文字セットの問題(改行コードや主人公の名前など)も
解決しやすくなる。
シナリオの既読と未読などもスクリプトコンパイラの方が管理しやすい。
(Cのマクロでもできるけど)
スクリプト言語にC言語の記号を持ち込まなくて良い。
だいたいのシナリオライタはC言語の記号を説明すると、記号が多くいやがる。
BASIC風(PASCAL風)な方が喜ばれることが多い。
弱点は動作スピードが若干遅くなること。
0116名前は開発中のものです。
02/01/15 02:39ID:???難易度がC言語やC++のそれと変わらない気がする。汎用性ありすぎ。
つまり、あれを使いこなせるくらいなら素直にVC++弄った方が
いいかも。
0117名前は開発中のものです。
02/01/15 06:34ID:???0118名前は開発中のものです。
02/01/15 11:17ID:???客観的にみたとしてもC/C++よりかなり使いにくいですが・・・
0119100
02/01/15 15:07ID:7CY8ofuR前回と違うところはシューティングシーンを付加しました。
No.558です。
http://www.nyan-web.ne.jp/~mystyle-jp/cgi-bin/upboard/imgboard.cgi
>>108&111
ありがとうございました。
専門学校卒業というだけで白い目で見られていたので、これで自信がもてました。
■ このスレッドは過去ログ倉庫に格納されています