1 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 20:49:02 ] プログラミング言語処理系の開発に興味のある人達のスレッドです。 字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン, SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化, JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。 意味論に関する話題も歓迎です。 過去スレ 1 pc.2ch.net/tech/kako/981/981672957.html 2 pc2.2ch.net/test/read.cgi/tech/1021136715/ 3 pc5.2ch.net/test/read.cgi/tech/1070089173/ 4 pc5.2ch.net/test/read.cgi/tech/1100097050/ 5 pc8.2ch.net/test/read.cgi/tech/1106129164/ 6 pc8.2ch.net/test/read.cgi/tech/1115335709/ 7 pc8.2ch.net/test/read.cgi/tech/1129287390/ 8 pc8.2ch.net/test/read.cgi/tech/1131273918/ 9 pc8.2ch.net/test/read.cgi/tech/1135082582/ 10 pc8.2ch.net/test/read.cgi/tech/1146844753/ 11 pc11.2ch.net/test/read.cgi/tech/1160879890/ 12 pc11.2ch.net/test/read.cgi/tech/1188688416/ 関連リンクは多分 >>2-10 あたり
597 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 11:29:40 ] >>592 2から3を引く 3を2から引く どちらも日本語として自然ですが、RPNとしてはどちらかが間違いですよね? 一見そう見えるというだけだと思います。
598 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 11:37:48 ] >>597 2から3を引く --> -1 3を2から引く --> 1 どちらもRPNとして正しいと思うが?
599 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 11:38:57 ] 日本人は中学で語順で格を示す英語学ぶのだから、 それは機能語である助詞の機能によって、 語順が変えられるのだとすぐ気づくだろう。
600 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 12:07:45 ] >>598 おい
601 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 12:11:40 ] >>597 >3を2から引く これは日本語として自然か? 漏れにはえらく不自然に見えるが....。 逆にRPN(Forth系言語)なら "から" を減算元属性付加、"を" を減算先属性付加という ワードであると考え、ワード "引く" ではスタック上の属性値を参照することで、 演算対象値を決定できる。これなら3と2が逆でもオケー。以下は例。 3 :スタックに3をPUSH を :スタックの先頭値に演算先属性を付加 2 :スタックに2をPUSH から :スタックの先頭値に演算元属性を付加 引く :スタックから値を2個POPし、減算子(演算元値 - 演算先値)を評価して、結果をPUSH
602 名前:598 mailto:sage [2009/10/18(日) 12:13:11 ] >>598 のカキコは取消
603 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 16:24:14 ] そういう風に、本来のRPNにないものを導入しないとダメじゃん、って話。
604 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 21:56:46 ] シューティングで弾幕とか敵の動きをスクリプト化したくて Java上で動くスクリプトエンジンを作ろうと思ったのですが、 ・・何から始めたらいいんでしょうか。 スクリプトに使う言語はLuaにしようと思っています。
605 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 22:23:29 ] Java上なのにLuaなのかよ。
606 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 22:59:00 ] Jua
607 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 23:01:28 ] >597 おいおいおい、日本語が逆ポーランドの構造しか持っていないなんて言ってないぜ。 日本語の特徴の一つ(述語を中心とした後置型)が逆ポーランドに似ているということだよ。 〜して、〜して、〜して、……。といった感じでだらだら続けられるのも日本語の特徴だよな。 そういや、各国の言葉の特徴をイラストにしたのがあったな。日本は渦巻だっけ?
608 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 10:57:43 ] > といった感じでだらだら続けられるのも日本語の特徴だよな。 逆ポーランド記法から夢が膨らむネット言語学者乙 英語でもできるし、日本語よりもっと簡単なぐらいだ。 新聞などではさすがに極端なのはないが 小説でも眺めてみるとよい。 見るからに馬鹿そうな著者を選ぶのがポイント。
609 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 11:05:22 ] 逆ポーランド記法を使えば、自然言語処理の能力がアップするに違いない!
610 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 12:57:18 ] つ「日本語の語順と逆ポーランド記法」「和文の語順と逆ポーランド記法」どちらも水谷
611 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 02:04:38 ] どんなの? >608 日本語よりも柔軟に組めるの?
612 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 13:47:52 ] 緩いだけだろ 日本語で曖昧さがなく読みやすい長い文を書くのには 読点の使い方や語順を工夫したりとか技術がいる
613 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 15:33:34 ] つまり、時代はラテン語か
614 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 20:47:50 ] >>613 西洋人にとってのラテン語にあたるものが日本で学ぶ漢文なのよ(割とマジで)
615 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 20:47:56 ] 古代ギリシャ語でおk
616 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:22:44 ] >>614 いや漢文じゃなくて古文の方だろjk
617 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:32:57 ] 古文に相当する授業ではたとえばイギリス人ならシェークスピアとか読む。
618 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:46:08 ] 字句解析を手書きするのって難しい・・
619 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 08:19:24 ] >>616 漢文です。ていうか常識ないなおまい
620 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 12:52:17 ] 古文だろ。
621 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 13:10:32 ] 南部ヨーロッパだと昔使っていた言語だけど、 北部ヨーロッパだと別の民族の言葉だな。
622 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 20:00:31 ] 「から引く」と「を引く」の二つの演算子つくればいいだけじゃん。とカメレス。 どっちもドンラーポとしては正常だよね。
623 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 12:31:29 ] そこは語尾屈折で
624 名前:デフォルトの名無しさん [2009/11/06(金) 11:41:09 ] Rubyで俺DSLを作りたいのですが、パーサーの作り方を解説したURLはないでしょうか
625 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 12:25:59 ] ウェブページはあるかもしれんが、URLだけで解説するのは無理だな。 冗談はともかくとして、とりあえず Racc 使い方、で検索するとか。 先頭に出てくるページは、今なんか落ちてるようだが。 ていうか言語内DSLじゃダメなの?
626 名前:624 [2009/11/06(金) 13:27:03 ] 検索しましたがraccで良いような気がします(合ってますか?) ”Rubyを256倍使うための本 無道編”というraccの解説本がありましたが絶版でした。 どこかに良い資料はないでしょうか。 最終的には俺言語、俺コンパイラ、俺VMが作りたいです。
627 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 13:44:05 ] >>626 ttp://www.bk1.jp/product/01992393 そういやANTLRの人がこんな本出すね Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages ttp://pragprog.com/titles/tpdsl/language-implementation-patterns
628 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 14:10:12 ] >>626 ネットで見つかる資料でとりあえずいいと思うんだけど。
629 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 14:36:41 ] 俺程度の脳みそでは下記のサイトが役に立った 早く2部を作ってくれ。 KENJIの独り言 ttp://www.ne.jp/asahi/kenji/pda/
630 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 15:39:48 ] それ、ざっと見たけど、まともに構文解析してない気がする。 ...ゲームスクリプトエンジンとして、インタプリタがセーブ・ロードをサポートする所の考察は面白いが。 アセンブラのような文法(ベタッとした、入れ子になった構造がない言語)なら、 それでも構わないけど、どうやら if や式に現れる入れ子構造をどうやって処理したら いいか、わからなくって手詰まりになっちゃったんじゃないかな? > もし、複雑な物を使いたい場合、 > スクリプトコンパイラを使うに乗っている拙作の acc.exe を使うか、lexとyaccで作った方が良いと思います。 と本人が言ってるように、yaccも使わないし、再帰降下パーザを手で書くわけでもなく、 シンプルに済ませたいなら、if や while なんかの入れ子なんぞもっての他、 式も (1 + 2) * (3 + 4) なんて複雑な式はきっぱりあきらめる、と。 それくらい割りきらないとダメっつーか。 まぁ昔のFORTRANや、BASICインタプリタは、なんだかんだのテクニックを使って、 そういうのを実装してたわけなんだけどさ。
631 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 16:43:44 ] 現実に使っていると思われるスクリプトコードの一例がブログに載っているが、そこの一部で説明されているものと大差ないんだな。 変数名を(固定プリフィクス+数字)の形でしか表せないように見える。 管理するの大変そうだ。
632 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 17:29:15 ] C言語と同等の機能の#define、 MASMライクな#macroの2種類があり、もちろん様々な条件コンパイルも出来、 最終的にプリプロセッサは、式(逆ポーランド)と DD,DW,DB,stringにスクリプトを解析してコンパイラに渡す。 よって、プリプロセッサの大きさに比べてコンパイラの大きさは小さい。 そして強力な文字置換により、文字セットもプリプロセッサ時、コンパイル時、実行時の3段階で解決される。 本人曰く、 21年プログラマやってて、13年同じシステムを使ってるって と書かれてるから、さすがにそんなチープな物じゃないんじゃない? しかし、カナ入力なんてじじいかよw
633 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 17:33:36 ] ブログの回答で初心者にドラゴンブックと中田の本を紹介してるw
634 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 18:10:46 ] 誰か特攻しやがったw
635 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 18:25:09 ] またおまえらかw
636 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 18:55:05 ] > 変数名を(固定プリフィクス+数字)の形でしか表せないように見える。 > 管理するの大変そうだ。 アルファベット2文字とかそういう制限ならわかるけど、 わざわざそんな制限つけるとか考え辛いし、そういう名前で変数を管理する 世界にいる、ないしそういう環境で学んだ人ってことなんじゃないかな? ドラゴンブックと中田先生の本(どれ? 厚い奴薄い奴ペーパーバックの奴と いろいろあるけど)って、結構わかってるじゃないかw 一昔前なら市販品だったようなレベルのCコンパイラだって書けるぞ。 つまり >>629 のコンテンツは覚醒前に書いたっつーことかね。 ぜひ今の知識とノウハウを注ぎ込んで書き直していただきたい。 masmのマクロって俺よく知らないんだよな。構造化アセンブラみたいな記述が できるようになるマクロセットを作れたりとか結構すごいらしいんだけど。
637 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 19:45:38 ] 変数名は英数文字で表現できます。マルチバイトでは表現できません。 メッセージ命令の中でもレジスタ間接などを使って計算結果やストリング配列の表示も出来ます メッセージ中に直接式を入れることも出来ます。 if 式 elseif 式 else end / while 式 end / do while 式 / for 式;式;式 end などが記述出来ます これらは全てプリプロセス時に、#amacroでifn_goto 式,label / if_goto 式,label と goto labelに分解されます。 式は代入式と評価式の区別は付けません。それとポインター式があります。 式はC言語と同等の物だと思ってください。演算子の優先順位も合わせてます。 記述性はVB並と思ってください。それに強力なマクロと強力な置換が追加されていて、 それらを使って、windows apiを呼び出すようになっています。 逆に言うと、強力なマクロと強力な置換を使い、システムをラッパーしなければ 最低限のゲームシステムの支援(文字表示やCG表示)しかなく windows apiやcopyrect命令などの呼び出しが必用になり、 ゲームシステムとしては使い物になりません。 式関連は最適化もしています。 コンパイラ自体は以上の実装なので、 ウチで作った携帯電話用のゲームシステム等ともマクロを変えて併用しています。
638 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 19:48:09 ] 以下がendマクロの実装例です #amacro end( d0 )(local0,local1,localn,localt,localcase) ; ; end ( while,do,for,switch,if ) ; #getnum localt 2 #getnum localn 3 #subnumsp 3 #define local1 "f_{localn}" #unstr local1 #if (localt==10) ; while #define local0 "b_{localn}" #unstr local0 goto local0 local1: #elseif (localt==11) ; do #define local0 "b_{localn}" #unstr local0 if_goto local0,d0 local1:
639 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 19:49:13 ] #elseif (localt==12) ; for #define local0 "b_{localn}" #unstr local0 goto local0 local1: #elseif (localt==13) ; switch #popnum localcase #substrsp 1 #define local0 "case_{localn}_{localcase}" #unstr local0 local0: local1:
640 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 19:50:27 ] #elseif (localt==14) ; if #popnum localcase #define local0 "if_{localn}_{localcase}" #unstr local0 local0: local1: #else #error end文の対応が異常です #endif #endm
641 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 19:55:12 ] 笑ってすみませんでした。 ttp://www.ne.jp/asahi/kenji/pda/ の2部以上の物を作っているみたい。 マクロで言語を作るのって、意味あるんかい と思ったら、携帯電話へも流用してるのね。 面白いアプローチだ。
642 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:02:19 ] LispやSchemeはマクロのお化け 複雑な構文をマクロに委ねるってアプローチはありだと思うけど 括弧はイヤだ
643 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:05:24 ] >>636 > ドラゴンブックと中田先生の本(どれ? 厚い奴薄い奴ペーパーバックの奴と > いろいろあるけど)って、結構わかってるじゃないかw > 一昔前なら市販品だったようなレベルのCコンパイラだって書けるぞ。 かなり古くさいスタイルの仕様、実装になってしまっていることと、 概論で終わっているような本を参考文献に挙げることは、対応していると思う。
644 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:06:36 ] 何をやってるかさっぱりわからない。 みんな理解できるのか? だったとしたら、みんなが普通で俺がバカと言うことになるw
645 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:12:30 ] >>642 ほう、そうなのか。 しかしこの仕様なら、リンカさえ作れば色々なCPUの実行型を作れて面白そうだな。 >>643 関数型言語みたいだね。現代のoopには対応できないのかね。 まーエロゲのスクリプトみたいだからこれでもオーバースペックだよな。
646 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:16:26 ] end命令1個作るのにわざわざこんなに記述するのは嫌だな。 中間スクリプターは地獄だな。 多分本人が作ってるんだろうけど。
647 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:31:07 ] 逆にマクロさえ作ればいくらでも言語を拡張出来る 確かにlisp的だ
648 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:46:57 ] lispなめんな
649 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:56:54 ] >>643 の言うとおりoopではない。 言語仕様としては古くさいのでは? しかし、ゲームのシナリオを入力するだけの物にoopは必要ない。 携帯電話のゲームにも流用しているみたいだから この人の場合は>>643 の言うことは見当外れで>>647 の言うことが正しい。
650 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:58:15 ] >>648 気に障ったか、ならば言い換えよう マク…モゴモゴ テンプレートさえ作ればいくらでもメタ言語を拡張出来る 確かにC++的だ …?
651 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 21:07:58 ] 俺には作れないな。 17才からエロゲプログラマーか。 俺がやったゲーム、何本か作ってるw
652 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 21:10:04 ] コンパイラの理論だけじゃ関数型言語はわからんよ
653 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 21:38:13 ] >>649 >>643 にはoopじゃないから古くさいとは書いてないが?
654 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 21:40:32 ] >>653 649じゃないけどさ、 じゃあ何が古くさいの? アンチドラゴンブック派?
655 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 21:42:43 ] ドラゴンブックが古くさいとも書いてないようだが…
656 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 21:45:43 ] >>653 >>655 アンタの文章は何を言いたいのかさっぱり解らんのよ。
657 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:00:23 ] >>643 >>655 >>かなり古くさいスタイルの仕様、実装になってしまっていることと、 >>概論で終わっているような本を参考文献に挙げることは、対応していると思う。 仕様と実装が古い、そして参考文献が対応してるって書いてあるから、 643はドラゴンブックを古いと思っていることは拙い文章だけど解る。
658 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:07:16 ] おちつけ。 >>637 はエロゲや携帯電話のゲーム用のスクリプトだぞ。 それにしては強力だし妥当な言語仕様だと思うぞ。
659 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:35:14 ] C言語にMASMの強力なマクロが使えればいいと思っていたが、 実際にやる奴が居たなんて…
660 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 23:08:03 ] 面白そうな言語だね。 マクロの全容とサンプルソースを見てみたいね。
661 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:32:06 ] 中田先生の本の第2版が出るらしいよ
662 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:48:16 ] save,loadがバグfix時の文章追加でずれるのか。 プロはそんなところまで考えないといけないのか。 大変だな。
663 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 05:55:04 ] なんだか面白い話になってるね。 メイドゲーの始祖の殻の中の小鳥のプロデューサーでありプログラマのKENJI氏か。 年下だけどオレがこの道に入った元凶の1人だ。音楽プログラムが凄い人だ。 こうなったらシステムを公開して欲しいって言ったら、罰が当たるよね。 過去に関わったタイトルも100以上で、オレが買ったのも10は下らない。 天才っているもんだね。 CG,WAV圧縮もオリジナル、それら全てにMAKE内蔵って事は 100本以上というタイトルを考と公開されているKMAKEと言うのを見てみれば分かるが高性能。 DOSもK-DOSとか言う物がゲームに入ってて、さらにUMBメモリツールのUMBCNFGの作者。 うーん、システムを公開して欲しい。 >>661 2版が出るんですか。1版を持っている自分は買わないですが、 立ち読みはしてみたいですね。 中田先生はいつまでたってもエネルギッシュですね。凄い!
664 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 10:19:34 ] >>652 確かに関数型言語の実装のしかたがわかる文献となると、まだ論文とかが頼りかなぁ。 Tiger Book の訳本が出るけど、あれにもないんだっけ? >>662 ベタデータでセーブするかねぇ? ハッシュをJSONみたいな形式でセーブするとかすればロバストになると思うが。 確かにコンティニュエーションとかコアダンプを丸ごと保存してプロセスを停止・再開 という手段も世の中にはあるが。 Lispのマクロは、プリミティブとしてリスト構造を切った貼ったできる(List processor だけに)。 ありがちな、文字列レベル+α程度の編集能力しかないマクロと一緒にしちゃいかん。 2版が出る、って、中田先生のどの本よ。 厚い最適化の本? > if 式 elseif 式 else end / while 式 end / do while 式 / for 式;式;式 end などが記述出来ます それら自身は<文>なんだよね。 詳細を埋めると、 <文> : if <式> <文> elseif <式> <文> else <文> end / while <式> <文> end / do <文> while <式> / for <式>;<式>;<式> <文> end ってことでいいのかな?
665 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 10:50:01 ] >>651 >>663 俺がやったエロゲも作ってたw メモリツールも使ってた。同一人物だったとはね。 >>664 あの分厚い最適化の本は2版が出てもいらんわ。 まだ最初の奴、読み終わってないからなw 中田が監修した本の2版なら絶対買わない。 >それら自身は<文>なんだよね。 >詳細を埋めると、 ブログを見る限りだと文の区切りは改行臭い。 ネストできない事はさすがに考えられないからそれで正しいと思う。
666 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 10:54:39 ] >>664 関数型言語実装本は何冊も出てるよ。訳本がないだけで。
667 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 10:57:23 ] どちらにしろ訳者が糞だとダメ本になるから英語版を買った方がお財布にも優しい。
668 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 12:32:45 ] MinCamlならコンパイラの作者は日本人だから、解説文書は日本語が中心だよ。 後、東大やJAISTの講義で使われているから、その講義資料や学生の個人HPを漁るもよし。 もしも英語が読めれるなら、ググるといくらでも論文は見つかるんだけどね。 まったくインターネット万歳、いい時代になったもんだと思う。
669 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 13:15:54 ] 公開は断られたね。残念。
670 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 13:17:41 ] 未記入様。 makeを内蔵したのは、 別exeにするとどうしても読み込みのオーバーヘッドが無視できなくなるからです。 マスターアップの時にはデーターが完成するのが当日とか当たり前にあります。 自分のシナリオコンパイルは1fileで1秒前後、自分のwavファイルで0.1秒前後です。 特にwavファイルは最後に入ってくることが多いので、wav圧縮は0.1秒前後のため、 外部makeを呼び出していると1万fileだと相当なオーバーヘッダがつきます。 ですので内蔵しております。oggだとこうはいきませんよね。 1万fileで外部makeだと少なくとも5時間は掛かります
671 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 19:00:35 ] 上で既出だけど 中田先生のコンパイラの構成と最適化第2版が20日に出版 www.asakura.co.jp/books/isbn/978-4-254-12177-3/
672 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 19:09:28 ] KMAKEってのが気になって見てみたけど、 依存型じゃなくって単体ファイルの比較なのね。 たしかにWAVの圧縮には依存型じゃない方が良いと思う。 MAKERだとWAVFILEを2ヵ所に記述しないといけないからね。 マクロはMAKERとほぼ同じだね。 この仕様でフルアセンブラなんて凄いね。 DISKへスワップ機能を入れたりUMBCNFGと言い、 MAKE時のFREEMEMORYをよっぽど空けたかったんだろうね。
673 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 19:22:23 ] >>671 1版を持って無いから買いたい。しかし高いな。 >>672 makeはさすがにスレチ。自重してね。
674 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 20:55:50 ] 素朴な疑問なんだが、makeって何のことを言ってるんだ? 普通makeといったらMakefileを動かす実行プログラムのことを言うと思うんだが。
675 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 21:16:58 ] >普通makeといったらMakefileを動かす実行プログラムのことを言うと思うんだが。 それでokだと思うよ。 kmakeはmakefileを動かすプログラムみたいだね。 それをスクリプトコンパイラやwav圧縮に統合してるみたいだ。 面白いアプローチだし、0.1秒の速度を万単位のファイルの圧縮に使って マスターアップの時間を稼いでるみたいだね。 しかし、エロゲーってwavファイルがマスターアップの直前に来るのか。 少しでもスピードを稼ぎたいのは分かるが、 もっと余裕を持ったスケジュールで作れない物なのかね。
676 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 22:01:09 ] >しかし、エロゲーってwavファイルがマスターアップの直前に来るのか。 ねーよ。 収録完了後2日〜1週間後が納期。Waveでもoggでも注文した形式で作ってくれるよ。 よっぽどアレなスケジュール組んでるんじゃね? スレの内容に即したことをいうなら、Advの演出みたいなやたらと巨大な量になるスクリプトなら、 マクロで計算式を埋め込むことなんかよりも、むしろ計算式をスクリプトから外に出してしまうことをオレなら考えるな。
677 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 01:28:13 ] KENJI氏の所は今年6本だからね。しかも延期は今のところ2本も無いみたい。 ブログ見ても書き方が簡素な演出方法と細かい演出方法を用意している、 よっぽどタイトなスケジュールなんだろう a)1行でロードと表示をする ;Bキャラを左にCキャラを右に表示 ld_cg1 h00bw00,h00cw00 ;BキャラとCキャラを左右に動かし、間にAキャラ出現 ld_cg1m h00bw00,h00aw00,h00cw00 ;BキャラとCキャラはその位置のままでAキャラを消す ld_cg1 h00bw00,cls0,h00cw00 b)ロードと表示をわける ;Bキャラを0番レイヤーにロードし、立ち位置を左(0-4のうち1)にし、表示優先順位を最低(0)にする。 ld_layer 0,h00bw00,1,0 ;Cキャラを1番レイヤーにロードし、立ち位置を左(0-4のうち3)にし、表示優先順位を1にする。 ld_layer 1,h00Cw00,3,1 ;ロードしたBキャラとCキャラをフェードインで表示する putcg 1
678 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 01:29:21 ] ;Bキャラをより左(0-4のうち0)に移動させる move h00b,0 ;Cキャラをより右(0-4のうち4)に移動させる move h00c,4 ;Aキャラを2番レイヤーにロードし、立ち位置を真ん中(0-4のうち2)にし、表示優先順位を2(一番手前)にする。 ld_layer 2,h00aw00,2,2 ;BキャラとCキャラを左右に動かし、間にAキャラ出現 putcg 1 ;Aキャラを2番レイヤーにロードし、立ち位置を真ん中(0-4のうち2)にし、表示優先順位を2(一番手前)にする。 ld_layer 2,cls0,2,2 ;BキャラとCキャラはその位置のままでAキャラを消す putcg 1
679 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 01:31:04 ] 誤)KENJI氏の所は今年6本だからね。しかも延期は今のところ2本も無いみたい。 正)KENJI氏の所は今年6本だからね。しかも延期は今のところ1本も無いみたい。
680 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 01:46:26 ] どうやらバグfixも出てないようだな。 破綻してるスケジュールじゃなくて スクリプトの簡素化とwav納期の短縮でこなしてる。 マクロを使いまくって、バグを出にくくする体制にしてるんだろう。
681 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 02:02:55 ] マクロ自体にバグが入ると酷い事になるけどな
682 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 02:40:02 ] 100本以上、エロゲを作ってるんだから大丈夫だろ。 久々にエロゲ板をみてみたら規制で大変なことになってるみたいだな。
683 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 03:20:56 ] しかし面白そうな言語だ。 全容をみてみたい。
684 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 05:51:46 ] >>672 FREEMEMORYじゃなくてコンベンショナルメモリでしょ。
685 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 06:14:31 ] 構造文すら全命令をマクロ化、MAKE内蔵、実践に即した実装だとLISP信者の俺は思う。
686 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 06:24:09 ] エロゲってバカにしてたけど、中々やるな。 シューティングのキャラの移動にも使える。 と思ったら、17才の時にセーラー服戦士フェリス(ヴァリスのパクリ?)で敵の 移動パターン制御に何かしらの言語を使っていた可能性も有るのか。 21年前か。いまだに現役か。 悪いけど言語仕様は古いと思うが21年前の17才が何かしらの言語を 作ったと考えると、今のマクロ主体のシステムは実測論による今までの集大成か。 素直に凄いと思う。 しかし自分がプログラマーだと思うとオブジェクト指向を入れて欲しい。
687 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 06:29:59 ] 全ての構造文は if not 式 goto,if 式 goto,goto の3命令で表せると実証してるしな。 構造文のサンプルだけでもみたいな。
688 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 07:41:43 ] ソースクレ厨と同じじゃないか うぜえんだよ LISPでもやってろ
689 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 09:47:10 ] しかし、作ってるのがエロゲ屋ってのが、そんなに感銘を受けるものなのかね? 見習うべきは吉里吉里(KAGはちょっと微妙)とか、バンナムの中の人が作ってるXtalとか、 ソースも手に入るんだし、いくらでもあると思うんだが。 採用実績だってXtalはともかく、吉里吉里は相当のものがあるし。 kikyou.info がつながらん...
690 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:32:53 ] >>689 > しかし、作ってるのがエロゲ屋ってのが、そんなに感銘を受けるものなのかね? たしかにそこに惹かれてるとしか思えないような糞言語だな。
691 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:37:47 ] 各レスの鼻息と具体性がここまで綺麗に反比例してると笑える。
692 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 11:48:00 ] 糞とかいってる奴はもっと良い言語をスクラッチで組めるのか? 俺には無理だ。
693 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 11:55:23 ] HPのフリーツールをみてると何でも水準以上の物を作っているところが凄い。 DOS時代からの生き残りか。
694 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 12:06:25 ] 電卓かなんか?
695 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 12:07:33 ] >>687 見事に全ての構造文を if not,if,goto で記述している _ KENJI ― 2009/11/08 11:53 まずはdo-whileではなく、正しくはdo-endと記述する事を訂正させてください。 それと吉里吉里などもっと凄い言語が公開されていますので、 ソースコードなどはそちらを参考にした方がよいと思います。 switch-caseはテーブルではなくif文の固まりです 文字列はゲーム用スクリプタなのでもちろん"(ダブルクオーテーション)では挟まずベタうちです。 ラベルやプリプロセス命令(#が付く命令)も行頭でなくとも記述できます (sample) while exit_flag==0 sel game_flag,ゲームをスタートさせる,ゲームを終了させる if game_flag==0 ゲームをスタートさせます game_start 1 else sel ans,ゲームを終了させる,キャンセル if ans exit_game 1 end end end 実際のマクロ記述については長いので省略。以下をみてね。 kenjikakera.asablo.jp/blog/2009/11/04/4676336#c
696 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 12:16:54 ] >>695 > 見事に全ての構造文を if not,if,goto で記述している ifとgotoにメモリがあればTuring完全なわけだし。
697 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 12:20:21 ] で、メッセージを英語化して、start game と exit game にする時はどうするの?