「コンパイラ・スクリプトエンジン」相談室13
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/01/28(水) 20:49:02字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン,
SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化,
JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。
意味論に関する話題も歓迎です。
過去スレ
1 http://pc.2ch.net/tech/kako/981/981672957.html
2 http://pc2.2ch.net/test/read.cgi/tech/1021136715/
3 http://pc5.2ch.net/test/read.cgi/tech/1070089173/
4 http://pc5.2ch.net/test/read.cgi/tech/1100097050/
5 http://pc8.2ch.net/test/read.cgi/tech/1106129164/
6 http://pc8.2ch.net/test/read.cgi/tech/1115335709/
7 http://pc8.2ch.net/test/read.cgi/tech/1129287390/
8 http://pc8.2ch.net/test/read.cgi/tech/1131273918/
9 http://pc8.2ch.net/test/read.cgi/tech/1135082582/
10 http://pc8.2ch.net/test/read.cgi/tech/1146844753/
11 http://pc11.2ch.net/test/read.cgi/tech/1160879890/
12 http://pc11.2ch.net/test/read.cgi/tech/1188688416/
関連リンクは多分 >>2-10 あたり
0002デフォルトの名無しさん
2009/01/28(水) 20:49:29http://www6.atwiki.jp/compilerandscriptengine/
★コンパイラ一般
・色々なツールの紹介
http://catalog.compilertools.net/
・コンパイラ関連のリンク集
http://www.ulis.ac.jp/~nakai/rel_web_compilers.shtml
・スクリプティング言語資料室(仮) (リンク集)
http://www.kt.rim.or.jp/~kbk/
・Compiler Construction
http://www.ie.u-ryukyu.ac.jp/~kono/lecture/compiler/
・情報システム工学実験 III コンパイラ・コンパイラ
http://math.cs.kitami-it.ac.jp/~fuchino/proin/experimentIII-2000/jikken.html
・OS/Programming 簡単な C コンパイラ
http://www.csg.is.titech.ac.jp/~chiba/lecture/os/
・正規表現
http://hp.vector.co.jp/authors/VA007799/viviProg/doc_regexp.htm
・コンパイラ研究・開発情報の一集積所
http://compilers.cs.uec.ac.jp/
・Links and Selected Readings
http://www.gnu.org/software/gcc/readings.html
・国産のコンパイラ共通インフラストラクチャCOINS
http://www.coins-project.org/
0003デフォルトの名無しさん
2009/01/28(水) 20:49:56・Lex and YACC primer/HOWTO (邦訳)
ttp://www.linux.or.jp/JF/JFdocs/Lex-YACC-HOWTO.html
・Turbo Pascal Lex/Yacc
http://www.musikwissenschaft.uni-mainz.de/~ag/tply/tply.html
・Jim Roskind's LALR(1) C++ Grammar
ttp://www.empathy.com/pccts/roskind.html
・Flexと Bisonを同時に使う
http://guppy.eng.kagawa-u.ac.jp/2005/SysProg/both.html
・KITE_ASM (yacc,lex)
http://www.arch.cs.kumamoto-u.ac.jp/project/kite/kiteasm/
・bison用のC++ LALR skeleton
ttp://www.bj-ig.de/software/bison/
・ANTLR(非yaccのパーサジェネレータ)
ttp://www.antlr.org/
・JavaCC(Java Compiler Compiler)
ttps://javacc.dev.java.net/
ttp://village.infoweb.ne.jp/~fwif0083/program/java/javacc/javaccgrm.html
ttp://www.asahi-net.or.jp/~DP8T-ASM/java/tips/JavaCCHelloWorld.html
・CUP, JLex, JFlex
http://www.cs.princeton.edu/~appel/modern/java/ (JLex, CUP)
ttp://www.jflex.de/
・SableCC
ttp://www.sablecc.org/
・¬<><∪∪ (notavacc)LALR(1)
http://ne.cs.uec.ac.jp/~koto/notavacc/
・boost::spirit(C++のテンプレートでEBNFの構文を模倣)
http://spirit.sourceforge.net/
ttp://boost.cppll.jp/HEAD/libs/spirit/index.html(マニュアル日本語化プロジェクト)
ttp://www.fides.dti.ne.jp/~oka-t/cpplab-boost-spirit.html
0004デフォルトの名無しさん
2009/01/28(水) 20:50:53・GC FAQ -- draft
http://www.iecc.com/gclist/GC-faq.html
・A garbage collector for C and C++
http://www.hpl.hp.com/personal/Hans_Boehm/gc/
・一般教養としての Garbage Collection
http://www.is.s.u-tokyo.ac.jp/vu/jugyo/processor/process/soft/compilerresume/gc/gc.html
・Garbage Collection : Algorithms for Automatic Dynamic Memory Management
http://www.amazon.com/exec/obidos/ASIN/0471941484/
★処理系,スクリプト
・kikyou.info (吉里吉里というゲームのスクリプト)
http://kikyou.info/
・tiny C コンパイラ (C)
http://www.watalab.cs.uec.ac.jp/tinyCabs.html
・6809用 Micro C コンパイラ
http://www.axe-inc.co.jp/pds/mc09.html
・Portable Object Compiler (Obj-C >> C のトランスレータ?)
http://users.pandora.be/stes/compiler.html
・自作コンパイラの部屋(PL/1, Pascal等)
http://www.tokumaru.org/
・『Rubyソースコード完全解説』サポートページ
http://i.loveruby.net/ja/rhg/
・『やさしい Lisp の作り方』『やさしい Java インタプリタ の作り方』
http://www.okisoft.co.jp/esc/go.html
・MSによるPEフォーマット仕様書(日本語)
http://www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/intro.html
0005デフォルトの名無しさん
2009/01/28(水) 20:51:26・PLDI
http://research.microsoft.com/conferences/pldi06/
コンパイラの研究に関する最新成果を知りたければまずはここ。
・POPL
http://www.cs.princeton.edu/~dpw/popl/06/
PLDIよりは理論寄りだが大いに参考になる。
・ICFP
http://icfp06.cs.uchicago.edu/
関数型言語に関する学会。とても難しい。
・OOPSLA
http://www.oopsla.org/
オブジェクト指向言語に関する学会。最近はやや低調?
・ICCC
http://www.st.cs.uni-sb.de/cc/
ヨーロッパ系。派手さはないが堅実。
0006デフォルトの名無しさん
2009/01/28(水) 20:53:35・コンパイラ 原理・技法・ツール 1&2
http://www.amazon.co.jp/exec/obidos/ASIN/4781905854/
http://www.amazon.co.jp/exec/obidos/ASIN/4781905862/
通称ドラゴンブック。バイブル。
・コンパイラ構成法 原田 賢一
http://www.amazon.co.jp/exec/obidos/ASIN/4320029224/
http://www.hara.cs.keio.ac.jp/kCompiler/ (ソース、正誤表のダウンロード)
・プログラミング言語処理系 岩波講座 ソフトウェア科学〈5〉 佐々 政孝
http://www.amazon.co.jp/exec/obidos/ASIN/4000103458/
一冊で済ませたい人へ。
・コンパイラの構成と最適化 中田 育男
http://www.amazon.co.jp/exec/obidos/ASIN/4254121393/
最適化がメインだが、構文解析からコード生成までの基本事項も解説されている。
・コンパイラの仕組み 渡邊 坦
http://www.amazon.co.jp/exec/obidos/ASIN/4254127081/
薄い奴(185p)を読みたい人に。
・21st Century Compilers (Alfred V. Aho, Sethi, Ravi Sethi, Jeffrey D. Ullman, Monica Lam)
http://www.amazon.co.jp/exec/obidos/ASIN/0321131436/
まだ出ていない。
・スモールコンパイラの制作で学ぶプログラムのしくみ
http://www.cbook24.com/bm_detail.asp?sku=4774121770
初心者向けの優しい解説本。
以上
0007デフォルトの名無しさん
2009/01/28(水) 21:07:260008デフォルトの名無しさん
2009/01/29(木) 12:12:16テンプレ追加
PEG(解析表現文法),Packrat Parser
http://ja.wikipedia.org/wiki/%E8%A7%A3%E6%9E%90%E8%A1%A8%E7%8F%BE%E6%96%87%E6%B3%95
0009デフォルトの名無しさん
2009/01/29(木) 20:21:44/ / パカッ
//⌒)∩__∩
/.| .| ノ ヽ
/ | | ● ● |
/ | 彡 ( _●_) ミ まピョーん☆
/ | ヽ |∪| /_
// │ ヽノ \/
" ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0010デフォルトの名無しさん
2009/01/30(金) 22:49:04お勧めのサイト教えて
0011デフォルトの名無しさん
2009/01/30(金) 23:13:10数レス前も読めないのか…
0012デフォルトの名無しさん
2009/01/30(金) 23:35:190013デフォルトの名無しさん
2009/01/31(土) 12:13:290014デフォルトの名無しさん
2009/02/02(月) 23:15:27caper
http://naoyuki.hirayama.googlepages.com/caper.html
0015デフォルトの名無しさん
2009/02/03(火) 04:46:47サイトでないけど
http://www.amazon.co.jp/スクリプトエンジン-プログラミング-坂本-千尋/dp/4797347627/ref=sr_1_1?ie=UTF8&s=books&qid=1233603981&sr=8-1
これで最低限の知識は得られると思う
0016デフォルトの名無しさん
2009/02/06(金) 17:32:19スキャナージェネレータは少ないね。
すぐに見つかるのはLex, Flex, JLex, JFlexくらいか。
UINTVAL = "[0-9]+";
のように書けばスキャナークラスを生成してくれる、
お手軽スキャナージェネレータは無いのかな?
0017デフォルトの名無しさん
2009/02/07(土) 01:05:33つ「正規表現」
0018デフォルトの名無しさん
2009/02/07(土) 15:58:490019デフォルトの名無しさん
2009/02/07(土) 16:22:18ActionScriptっていちいちコンパイルせなあかんやん?
面倒なんよね
オンザフライで処理してくれるDSLあると便利何やけど、emebedded向けなライブラリないかな?
検索してるんだけど、全然でてこないんだ
0020デフォルトの名無しさん
2009/02/07(土) 21:19:58むかしActionScriptで書かれたJavaScript実装で、fiberみたいなこともできるのがあったけど、
ググッたら出てこなかったorz...
0021デフォルトの名無しさん
2009/02/07(土) 21:21:40マイ・オートマトンブームを起こすしかない。
0022デフォルトの名無しさん
2009/02/07(土) 22:54:30PEGでいいじゃん
002319
2009/02/08(日) 01:06:23wonderfl関係あさってたらいろいろ発見しますた。
wonderflでポケコンでシューティング | wonderfl build flash online
http://wonderfl.kayac.com/code/338bb2c5f0058713460610b8794d4efa4f80309a
2009-01-08 - Simple Inspiration
http://d.hatena.ne.jp/keim_at_Si/20090108
Cannon macro language
http://www.yomogi.sakura.ne.jp/~si/SolidImage/cml/index.html
ゲーム用のちっこいDSLがあればなーと思ってたので調度よかった・・・
wonderflのはまあコンパイルはしないといけないけど、文字列を外部にだせばどんだけでもいけるよね
0024デフォルトの名無しさん
2009/02/10(火) 22:34:360025デフォルトの名無しさん
2009/02/24(火) 02:01:570026デフォルトの名無しさん
2009/03/07(土) 14:16:19が字句解析してくれるみたいです。
http://cappuccino.jp/keisuken/java/lex/docs/specification.html
002716
2009/03/25(水) 05:11:37>>21
>>22
>>26
何気なく書いただけなのに、暖かいレスさんくす。
他にもJavaの場合には、標準ライブラリのStreamTokenizerを使っても
字句解析らしきことができるようです。
http://www5b.biglobe.ne.jp/~psoft/lesson/StreamTokenizer.html
0028デフォルトの名無しさん
2009/04/03(金) 20:03:50言語仕様側だったらセミナーにはぜひ行ったところだったんだが。
0029デフォルトの名無しさん
2009/04/03(金) 20:31:43PEGパーサを組み込みライブラリとして持つとのことようだが(詳しくはソースコード参照)
0030デフォルトの名無しさん
2009/04/03(金) 22:05:00パーサジェネレータ使わずにがりがり書いてるね。腕力のある人はうらやましいわ。
0031転載
2009/04/05(日) 09:38:58http://www.igda.jp/modules/news/article.php?storyid=1622
13:10 - 14:00
「ごく簡単な並列処理スクリプトシステムの設計と実装」
□講師
小久保啓三(HAL東京)
(株)スクウェアでの代表作「ロマンシング・サガ」「FF5」「クロノトリガー」「FF7」。クロノトリガーとFF7では、スクリプトシステムの設計と実装に携わる。
14:00 - 14:50
「『サクラ大戦�X』でのスクリプト運用事例」
□講師
秋葉晴樹(セガ)
株式会社セガ 第三CS研究開発部 リードプログラマ。
代表作は、サクラ大戦シリーズ、のび太の新魔界大冒険、ブレイザードライブ。
サクラ大戦シリーズは3から参加、主にADVパートのプログラムを担当。
15:20 - 16:10
「汎用スクリプト言語Xtal 設計と実装」
□講師
石橋立宣(バンダイナムコゲームス)
NBGI プログラマ。
PSP塊魂のエンディングミニゲームやシステム周り担当。
PSP太鼓のADV部分やシステム周り担当。
趣味で、C++組み込み用スクリプト「Xtal」を開発。
16:10 - 17:00
「Squirrelスクリプトを使った実装と活用」
□講師
神尾隆司(スクウェア・エニックス)
Wiiウェア 小さな王様と約束の国 ファイナルファンタジー・クリスタルクロニクル の開発に関わる。
北出智(スクウェア・エニックス)
PS2 聖剣伝説4、Wiiウェア 小さな王様と約束の国 ファイナルファンタジー・クリスタルクロニクル 等の開発に関わる。
0032デフォルトの名無しさん
2009/04/07(火) 12:55:27自作ソフトで使うマクロの文法を、拡張しようと思い、
lexやらyaccやらbisonやら調べ始めたのですが・・・難しい・・・
例えば呼び出し前に新たなトークンを追加したり、関数定義みたいなことが
出来るようにするサンプルを探しているのですが、見つかりません。
・自作ソフトはプラグインで拡張可能になっていて、マクロのプラグイン名
を自前で解析していますが、区切り文字の検出とか括弧の扱いとか、自力
では限界なので・・・プラグイン名を追加トークンにして、ライブラリお
任せ一発という形に出来ればと思っています。
(プラグイン辞書の関数ポインタ呼び出しみたいな形)
・マクロの中で関数マクロの定義が出来るようにといいのですが、
function hoge(a, b, c) = {
age; sage(a, b); uge(c);
}
hoge(1, 2, 3);
こういうのを実現しているサンプルなどありましたら教えてください。
0033デフォルトの名無しさん
2009/04/07(火) 13:20:14プラグインを呼び出したりしてるわけ?
0034デフォルトの名無しさん
2009/04/07(火) 14:32:15hoge[(...)]; [...]
プラグイン名を配列に積み上げて、一括でマクロ構文を読み込み、
セミコロンで分割して、参照の配列に積み直し。
動かすときに、それぞれのインターフェースを順に呼び出す形です。
これだと代入操作ひとつ出来ないので、何か良い方法を探しています。
0035デフォルトの名無しさん
2009/04/07(火) 15:06:31トークン化の時点では何も考えず全部「識別子」一括りでおk
0036デフォルトの名無しさん
2009/04/07(火) 15:21:59スクリプトを読み込んで、関数定義があったら何をして、関数の呼び出しが
あったら何をするのか、とか、そういうことがそもそも全くわかってないのでは?
なんか配列って言ってるけど、リストとか木とかをポインタで操るコードは
書ける? それができないと本格的な処理系は無理。
0037デフォルトの名無しさん
2009/04/07(火) 15:35:53高レベルな言語を触ったりしてみてもいいんじゃない
0038デフォルトの名無しさん
2009/04/07(火) 16:24:26なるほど。最後にまとめてチェックすればいいという考え方ですね。
>>36
その通りです。yaccやbisonのサンプルを探してみても、文書を
解析するところまでで、その先を実際にどうやっているかの例が
なかなか・・・。
唯一良さそうな例を見つけました。
>ttp://www.ibm.com/developerworks/jp/linux/library/l-pirates4/index.html
生のソースもとれるようですし、これで勉強してみます。
ホントはもう少しシンプルな例があればいいのですが・・・
0039デフォルトの名無しさん
2009/04/07(火) 16:53:020040デフォルトの名無しさん
2009/04/07(火) 17:02:050041デフォルトの名無しさん
2009/04/09(木) 07:11:350042デフォルトの名無しさん
2009/04/09(木) 08:21:46http://llvm.org/
0043デフォルトの名無しさん
2009/04/09(木) 13:17:44InfoQ: LLVMおよびRubyの総まとめ:llvmruby、yarv2llvmおよびregexpllvm、Rubinius
http://www.infoq.com/jp/news/2008/10/llvmruby-roundup-yarv2llvm
InfoQ: MacRuby 0.5にLLVMをベースにした高速VMが搭載される
http://www.infoq.com/jp/news/2009/04/macruby-llvm-speed
0044デフォルトの名無しさん
2009/04/12(日) 03:35:20たとえ苦労してでも勉強して使いこなしたいところだな。
0045デフォルトの名無しさん
2009/04/13(月) 18:14:29コンドーさんの「yaccによるCコンパイラ」がおすすめ
・・・なんだけど、プレミアがついちゃって高いんだよなあ
0046デフォルトの名無しさん
2009/04/25(土) 12:04:35yaccやbisonでないと駄目なのかい?
古くさくて使いにくいから、今からパーサを書くなら
他にいいジェネレータがありそうだけど。
C++、C#、Javaならばcaperがお薦め。
(Javaジェネレータはまだレポジトリから落としてビルドする必要がある)
ttp://naoyuki.hirayama.googlepages.com/caper.html
ttp://code.google.com/p/caper/updates/list
どうしてもyaccやbisonがいいなら、以下を読めばいいよ。
ttp://guppy.eng.kagawa-u.ac.jp/2006/ProgLang/bison-1.2.8/bison-ja_toc.html
0047デフォルトの名無しさん
2009/04/25(土) 14:37:19日本語の文書!!
いや実は挫折してました。ごめんなさい。がんばります。
0048デフォルトの名無しさん
2009/04/26(日) 18:29:200049デフォルトの名無しさん
2009/04/28(火) 22:46:38以下のことですな。
http://www.amazon.co.jp/Bison入門-チャールズ-ドネリー/dp/4756130658
内容は>>46の一番下と同じなのだけど、絶版で値段が高騰しているのが問題かな。
紙媒体だと電車の中などで読めるのがいいんだけどね。
0050デフォルトの名無しさん
2009/04/28(火) 23:31:19Flex & Bison - by J Levine (2009/8/31)
http://www.amazon.co.jp/dp/0596155972
0051デフォルトの名無しさん
2009/04/29(水) 08:10:34うわわわ。絶版してたのか。
005246=49
2009/04/29(水) 10:37:05> yaccやbisonのサンプルを探してみても、
> 文書を解析するところまでで、
> その先を実際にどうやっているかの例がなかなか・・・。
>
> 日本語の文書!!
日本語で書かれていて意味解析以降も
全部載っているドキュメントを探してきた。
http://ecs.kuis.kyoto-u.ac.jp/isle/le3b/siryo.ps
Flexの解説 (GNU公式ドキュメントの日本語訳) もあった。
Flex入門
http://ascii.asciimw.jp/pb/bookmart/pdf/47561/4756130976.pdf
005352の続き
2009/04/29(水) 10:41:59まずは字句解析から。
まずはソースファイルを読み込み、字句解析にかける。
字句解析では文字列を切って、種類を表すタグを付ける。
(タグはenumなどの定数)
例えば、
int main(void) {return 0;}
ならば、字句解析の結果は
elem(INT, "int");
elem(ID, "main");
elem(PAREN_L, "(");
elem(VOID, "void");
elem(PAREN_R, ")");
elem(BRACE_L, "{");
elem(RETURN, "return");
elem(INTLITERAL, "0");
elem(SEMICOLON, ";");
elem(BRACE_R, "}");
のようになる。
(elemはC++のクラスのつもり)
引数は左がenum定数で右は文字列ね。
一行を1つの構造体 (またはクラスやタプル) に入れると便利。
(Flexだと種類と文字列を別々に取得するんだったかな?)
005452の続き
2009/04/29(水) 10:55:29上の例だと、ベタに書くと以下のようになる。
Program
: INT ID PAREN_L VOID PAREN_R BRACE_L RETURN INTLITERAL SEMICOLON BRACE_R
;
「=」の右側には、どういう種類の文字列がどういう順で並んでいるかを書く。
これだと本当に上の例しか読めなくなるので、
例えばVOID型で中身の無い関数も定義できるようにすると、以下のようになる。
(「|」は「または」という意味, 複数のパターンのどれでもいい場合に使う)
Program
: INT ID PAREN_L VOID PAREN_R BRACE_L RETURN INTLITERAL SEMICOLON BRACE_R
| VOID ID PAREN_L VOID PAREN_R BRACE_L BRACE_R
;
これで、以下のコードも読めるようになった。
void main(void) {}
005552の続き
2009/04/29(水) 10:58:05だから、部分的に抜きだして共通化する。
上の例だと、
Program
: ReturnType ID PAREN_L VOID PAREN_R BRACE_L Body BRACE_R
;
ReturnType
: INT
| VOID
;
Body
: // 空の場合は何も書かない
| RETURN INTLITERAL SEMICOLON
;
こんな具合に、共通でない部分を追い出してやるわけだ。
# void型なのにreturnしている関数や
# int型なのにreturnしていない関数も読めるようになったことに注意。
構文解析では、一度に完璧な定義を書こうとせずに、
少しずつ解析できるパターンを増やしていくとやりやすいと思う。
0056デフォルトの名無しさん
2009/05/02(土) 17:46:16LLVMもbisonパーサから手書きのパーサにかえたんだっけ。
案外、手書きの方が開発しやすいのかな?
0057デフォルトの名無しさん
2009/05/05(火) 15:51:130058デフォルトの名無しさん
2009/05/19(火) 01:30:41ttp://www.hakkaku.net/articles/20080226-154
ttp://www.hakkaku.net/articles/20080307-158
を先日から見ているんだが、字句解析の部分がさっぱりわからん。
構文解析のkmyaccの部分は良く分かるんだが、lexにあたる部分を
手書きしているらしく、なんか自力でトークンを探して分割したり
クラスをゴリゴリ作ったりしている。正直ムリポ。
その辺に落ちてるlex/flexで代用したいんだが、どうやればいいんだろう?
もしそれがムチャなことなら、「kmlex」的なものはないだろうか?
0059デフォルトの名無しさん
2009/05/19(火) 04:26:19言語なんて作るの無理
0060デフォルトの名無しさん
2009/05/19(火) 07:28:200061デフォルトの名無しさん
2009/05/19(火) 07:50:100062デフォルトの名無しさん
2009/05/19(火) 08:10:180063デフォルトの名無しさん
2009/05/19(火) 08:23:560064デフォルトの名無しさん
2009/05/19(火) 09:11:48慣れたらゼロからでも数日で実装できる。
0065デフォルトの名無しさん
2009/05/26(火) 01:25:57書籍ってありますか?
0066デフォルトの名無しさん
2009/05/26(火) 02:14:250067デフォルトの名無しさん
2009/05/26(火) 09:20:420068デフォルトの名無しさん
2009/05/26(火) 23:32:34「文字列の先頭からアルファベットに引き続く、空白までの連続部分のマッチ」に
該当すれば、それを予約語として認識し、文字列からその部分を取り除いて
再度先頭から…を繰り返しているんだろう。
>>62
getChr()で一文字づつ文字を読み込んで、「空白の次にアルファベットだから
このトークンは予約語」というアタリの付けかたをしているんだろう。
0069デフォルトの名無しさん
2009/05/28(木) 17:16:460070デフォルトの名無しさん
2009/05/28(木) 18:16:410071デフォルトの名無しさん
2009/05/29(金) 00:45:480072デフォルトの名無しさん
2009/05/29(金) 22:22:08バーコード邪魔
0073デフォルトの名無しさん
2009/05/29(金) 22:49:06絵本とかでバーコードがシールになってて、買ったらはがせるのあるけど、
そうしてほしいところだな。技術書だから無理に決まってるけど。
0074デフォルトの名無しさん
2009/05/29(金) 22:53:560075デフォルトの名無しさん
2009/05/29(金) 23:01:57剣が LALR Parser Generation
鎧が……読めにゃい
竜が Complexity of Compiler Design かな?
0076デフォルトの名無しさん
2009/05/29(金) 23:24:16http://up2.viploader.net/pic2/src/viploaderf159408.jpg
0077デフォルトの名無しさん
2009/05/29(金) 23:32:240078デフォルトの名無しさん
2009/05/30(土) 00:32:320079デフォルトの名無しさん
2009/05/30(土) 02:55:370080デフォルトの名無しさん
2009/05/30(土) 03:02:460081デフォルトの名無しさん
2009/05/30(土) 16:40:02もう画像流れてるわ
第一版と同じで鎧は syntax directed translation じゃなかろうか
default を「省略時解釈」とか、そういうのが無くなってるといいんだが
0082デフォルトの名無しさん
2009/05/30(土) 18:24:48それは盾だって>>75に
> default を「省略時解釈」とか、そういうのが無くなってるといいんだが
往年の教科書では定番だったよねそういう訳
0083デフォルトの名無しさん
2009/05/30(土) 19:28:330084デフォルトの名無しさん
2009/05/30(土) 21:09:370085デフォルトの名無しさん
2009/06/06(土) 01:03:33宜しくお願いします。
現在、オブジェクト指向のクラスの実装などが、
コンパイラでどのように実現されているのかに興味を持ち、勉強中です。
コンパイラの本も何冊か買い、簡単に目を通しましたが、
殆どが手続き型言語のコンパイラの解説で終わっており、資料の少なさに困っています。
自分で探した範囲で、オブジェクト指向型言語のクラスの実装等に触れられている本は、
『コンパイラの構成と最適化』(朝倉出版)しか見つけることが出来ませんでした。
『コンパイラ―原理・技法・ツール』の第2版版が最近出版されたようなので、
書店で立ち読みをして見ましたが、オブジェクト指向言語に関しては、
余り記述がされていないようです(短時間立ち読みをした程度なので、見落としてるだけなのかもしれませんが…)。
上で記述した以外に、オブジェクト指向言語の具体的な実装について書かれたコンパイラ等の書籍などがご存知の方がいらっしゃいましたら、本の題名等をご教示頂けると幸いです。
0086デフォルトの名無しさん
2009/06/06(土) 01:21:19まあ、単純にオブジェクト指向を特徴としている言語の実装が知りたいなら、
ソースコードを入手して眺めるのが一番早いだろう。
RubyやPythonなんかでどうだ?
0087デフォルトの名無しさん
2009/06/06(土) 01:24:05gcc読んでここでその成果全部書けよ
そしたら教えてやるから
0088デフォルトの名無しさん
2009/06/06(土) 01:40:21"Rubyソースコード完全解説"
0089デフォルトの名無しさん
2009/06/06(土) 01:43:110090デフォルトの名無しさん
2009/06/06(土) 03:16:32OOPにこだわる切欠は、自分で作ったCのプログラムを逆アセンブルして、アセンブリ言語の勉強をしていた時、JavaなどのOOP言語では、どのようにソースコードがバイトコードなどに置き換えられ、クラス等がどの様に実装されているのかに興味を惹かれたためです。
PythonやRudyに関しては、恥ずかしながら名前しか知りませんでした。
ソースコードもダウンロードしてみました。
再度の質問になり恐縮ですが、これはコンパイラのソースコードではないかと考えていますが、その様な理解で良いのでしょうか?
どちらにせよ、自分の勉強不足は明らかなので御指摘を元に、勉強してみます。
アドバイスをありがとう御座います。
>>87
まだ勉強を始めたばかりで、恥ずかしながらgccについては、知りませんでした。
gccについて、これから勉強してみたいと思います。
>>88
検索して見つけることが出来ました。
Amazonで買おうかとも思いましたが、プレミアが付いているようで、とても高いですね。
Webで本文が見られるみたいなので、それを見させていただきます。
ご教示ありがとうございます。
>>89
Amazonでも今は取り扱っていないようですね。
評判の良い本のようなので、購入を検討してみます。
ありがとうございました
0091デフォルトの名無しさん
2009/06/06(土) 03:31:26RubyやPythonは、オブジェクト指向のスクリプト言語だ。
現代のスクリプト言語はいったんバイトコードにコンパイルされてから実行される形式が一般的で、
従ってコンパイラと呼びうるすべての要素がソースコード内に含まれている。
そしてそこから先(バイトコードをどのように動かすかの仮想マシンの実装)もあるわけだ。
いい教材になるわけで。
009290
2009/06/06(土) 10:21:50そうなんですか。
その事については、知りませんでした。
コンパイラの動作をソースコードを読むことで確認出来るというのは、
私のように学習を目的としている者にはありがたい話です。
Rudyは書籍やWebでの資料が充実しているようなので、これから調べてみます。
ご教示、ありがとう御座いました。
0093デフォルトの名無しさん
2009/06/06(土) 11:25:22Rubyソースコード完全解説という神書籍があってだな、絶版だが、初版が無料公開されているのでオススメ
Rubyソースコード完全解説
http://i.loveruby.net/ja/rhg/book/
0094デフォルトの名無しさん
2009/06/07(日) 19:53:04参考までに、Javaのバイトコード仕様はSunのサイトで閲覧できる (英語)。
SunのJDKに付属しているjavapとかで逆アセンブルできるよ。
他にEclipse用のプラグイン「Bytecode Outline plugin for Eclipse」とかでも。
Eclipse用だと「Classfile Inspector」(有料 99Euro)ってのもあったけど、いまググったら
サイトが消滅したようだ。
0095デフォルトの名無しさん
2009/06/08(月) 07:45:39ttp://min-caml.sourceforge.net/
0096デフォルトの名無しさん
2009/06/08(月) 10:54:28英語は読めますか?
0097デフォルトの名無しさん
2009/06/08(月) 11:07:2085とは関係なしに紹介したいサイトがあるなら、俺が消化するから構わず続けてくれ。
0098デフォルトの名無しさん
2009/06/08(月) 11:54:40http://www.amazon.com/Modern-Compiler-Design-D-Grune/dp/0471976970
この辺りの概説書にはOOの実装のこと"も"解説してる。
http://www.amazon.com/Programming-Language-Pragmatics-Third-Michael/dp/0123745144/
はOO関連のコンセプトの整理がうまい。実装についても書いてある。
全般的な概説書はやはり記述がプアになるので、C++に限れば一番詳しいのは、訳書の
http://www.amazon.co.jp/dp/4810181014
これだけど、今は絶版なので、
http://www.amazon.com/Inside-Object-Model-Stanley-Lippman/dp/0201834545
原書を読めばいい。
ARM(注解 C++リファレンスマニュアル)も詳しく説明している。これも絶版なので、
http://www.amazon.com/Annotated-C-Reference-Manual/dp/0201514591
Objectのslot accessでC++と全く異なるアプローチで有名なのが、
http://code.google.com/intl/ja-JP/apis/v8/design.html#prop_access
Selfの元の論文が、
http://research.sun.com/self/papers/implementation.html
にある。JITと相性がよい。
もちろんaccessが遅くていいなら他にも幾らでもやりかたはある。
Objective-Cなんかはhash引いている。
0099デフォルトの名無しさん
2009/06/08(月) 13:07:35実はみんな、教えることに飢えてたのか?
0100デフォルトの名無しさん
2009/06/08(月) 19:40:030101デフォルトの名無しさん
2009/06/08(月) 23:19:24万人が理解できるlexerとparserの
サンプル書いてやる
ということでまず何をすればいいぉ?
0102デフォルトの名無しさん
2009/06/09(火) 00:00:120103デフォルトの名無しさん
2009/06/09(火) 00:09:06かっこに対応した四則演算とかどうだ
0104デフォルトの名無しさん
2009/06/09(火) 19:58:230105デフォルトの名無しさん
2009/06/09(火) 20:18:37010690
2009/06/09(火) 22:05:49教えて頂いて、ありがとう御座います。
絶版の資料が無料で公開されているのは、ありがたいですね。
>>94
Javaのバイトコードにも、興味があります。
Java仮想マシン仕様は、日本語の書籍でも出版されているので、今度読むつもりでした。
仮想マシンの概念は、コンピュータのアーキテクチャとも密接に関わってくる事項なので、興味深いですね。
>>96
正直、英語はまともには読めません。
日本語の資料で勉強するのに限界を感じているので、
英語の勉強をやり直そうと思ってます。
>>98
今まで知らなかった資料が多いので、参考になります。
英語の資料が多いですね。
コンパイラの勉強の前に、英語をやり直して、
資料をまともに読めるようになってから、勉強をし直すべきかもしれません。
コンパイラの勉強は、思っていたよりもしんどそうですが、
今まで知らなかった資料を紹介していただいたので、今後の勉強の指針が見えた気がします。
教えていただいた資料を参考に、頑張ってみます。
0107デフォルトの名無しさん
2009/06/09(火) 22:28:05それだッッッ
ブロックの扱いがどうやればいいのか
悩みまくっている俺にはおいしいです ^q^
^
0108デフォルトの名無しさん
2009/06/09(火) 22:57:09cps とか ssa あたりの内部表現の評価手法を,
最適化方法に合わせた一覧として提示してくれ
0109デフォルトの名無しさん
2009/06/10(水) 00:05:45どうとでもならない人のための相談室スレだと思うんだ。
だから、出来る人は我慢して、ここはレベルを下げて欲しいんだ。
0110デフォルトの名無しさん
2009/06/10(水) 00:11:32誰か一人のためのスレってわけでもないんだし。
0111デフォルトの名無しさん
2009/06/10(水) 00:32:56オレは専門家じゃないのでCPSもSSAもどちらの用語も知らなかったが、
これってLLVMで全部実装されてるんじゃね?
やはりLLVMの包括的な解説記事が欲しいところだな。
0112デフォルトの名無しさん
2009/06/10(水) 00:43:18Pascalのone pass compiler読め。
http://homepages.cwi.nl/~steven/pascal/book/7statements.html
0113デフォルトの名無しさん
2009/06/10(水) 01:19:43LLVMは既に提出されているものをうまくつなぎ合わせてるだけ
つなぎ合わせ方法はいくらでもある
各要素項目を網羅的に解説したものがほしい
つか、現場にいるとそっち系をゆっくり、みてる暇がない
0114デフォルトの名無しさん
2009/06/10(水) 01:43:17実務者としては、実装されてない方法より
既に実装されているものの解説のほうが遥かに役に立つ。
>各要素項目を網羅的に解説したものがほしい
この分野に詳しくないので外野の意見だが、それなら洋書を漁って読めばいいんじゃね?
0115デフォルトの名無しさん
2009/06/10(水) 01:45:38Tiger Bookや"Practical Improvements to the Construction
and Destruction of Static Single Assignment Form."は読んだの?
0116デフォルトの名無しさん
2009/06/10(水) 01:48:23> 実務者としては、実装されてない方法より
> 既に実装されているものの解説のほうが遥かに役に立つ。
ぶっちゃけここで質問している人が、
現実に使われているコンパイラのソースを参考にして、
自分のコードに反映させるのは難しいと思う。
そのくらいコンパイラは複雑化している。
さらに学習用のコンパイラは関数型言語で書かれているものが多く、
実務指向の人とは相容れないものがあるだろう。
謙虚な気持ちで学習するのが一番。
0117デフォルトの名無しさん
2009/06/10(水) 02:21:44> 実務者としては、実装されてない方法より
> 既に実装されているものの解説のほうが遥かに役に立つ。
要素手法が見えにくいんだよね。まとまってしまうと。
ましてや、cps とか ssa 使った状態での複合リダクションとなると。
> この分野に詳しくないので外野の意見だが、それなら洋書を漁って読めばいいんじゃね?
そりゃたくさん持ってるさ
ただ、現場をかかえてるとそっちばっかやってるわけに行かなくなるんだよな
>>116
> さらに学習用のコンパイラは関数型言語で書かれているものが多く、
> 実務指向の人とは相容れないものがあるだろう。
それは気にならないんだけど、細切れの論文掻き集めて整理やり直す時間はとれねぇよ
0118デフォルトの名無しさん
2009/06/10(水) 11:16:43スクリプトでDSLをさっくり組むならともかく
0119デフォルトの名無しさん
2009/06/13(土) 19:19:12http://www.amazon.co.jp/コンパイラとバーチャルマシン-Text-今城-哲二/dp/4274133087
↑この本に、オブジェクト指向も例外処理も分かりやすく載ってるよ。
薄くてすぐに読めるし、お薦め。
ただ、日本語で概要が載っているだけなので、
実装するには自分で知恵を絞らないとだけど。
現代的なコンパイラは、内部で何度も変換を繰り返して、
最終的に実行可能なコードをはく。
オブジェクト指向の場合は、最初の方で非オブジェクト指向の
Cみたいなコード (AST) に変換してしまうと、
後はよく書籍に載っているような方法が使えていいと思う。
コンパイラを全部 (シンタックスシュガーの除去から
アセンブラの出力まで) 自作するのは、大規模過ぎて現実的じゃない。
だから、自分が関心を持っている部分以外は
なるべく既存のものを利用するといいと思う。
例えばCのコードを書きだすコンパイラを書けば、
アセンブラごとにジェネレータを自分で書かなくても
多くの環境で動くし、最適化もCコンパイラに頼める。
例外処理などはCでは実装しにくいので、
必要ならLLVM IRを出力するという方法もあるよ。
0120デフォルトの名無しさん
2009/06/13(土) 19:25:19「実務」の中身によるんじゃないかな?
0121119
2009/06/13(土) 19:32:59Javaだと「.class」ファイルはクラス単位でオブジェクト指向になっていて、
オブジェクト指向「からの」変換はJVMが担当している。
だから、バイトコードの仕様を読んでも、あまり参考にはならないと思う。
同じ理由で、JVMをターゲットにした (「.class」ファイルを生成する)
コンパイラも皆、参考にならないと思う。
0122デフォルトの名無しさん
2009/06/13(土) 20:10:290123デフォルトの名無しさん
2009/06/15(月) 10:39:22最近はclassファイルを扱うためのライブラリがたくさんあるよ。
0124デフォルトの名無しさん
2009/06/15(月) 11:15:34(動的バインディングとか)が実現されてるのは、Java VM自体
なので(invokevirtual命令とか)、オブジェクト指向言語を
ふつうのCPU上で実現するコンパイラの参考にはならん、と
いうこと。
0125デフォルトの名無しさん
2009/06/16(火) 21:52:36プログラミング言語を作る
プログラミング言語を作るなんて究極の楽しみだ!
0126デフォルトの名無しさん
2009/06/17(水) 09:50:36著者の「プログラミング言語を作る」のサイトはぐだぐだ進行な上に
今ブログをチェックしてみたら最新エントリがエロゲの話で
しかもトンデモ理論だったので失笑せざるを得なかった
立ち読みはしてみるつもりだけど、はずれじゃないかなぁ
0127デフォルトの名無しさん
2009/06/17(水) 10:18:52まあ、変なものにはならないでしょ。
0128デフォルトの名無しさん
2009/06/17(水) 18:57:40作者乙
0129デフォルトの名無しさん
2009/06/17(水) 20:24:01あの人の作る言語は神レベルの美しさだぞ
お前こそ何言ってるんだw?
0130デフォルトの名無しさん
2009/06/17(水) 20:26:33どの人??
0131デフォルトの名無しさん
2009/06/18(木) 08:43:47ポインタ本とか、Java謎本とか、結構悪くなかったと思うけど、今回もそういう
他に類例のないところを押さえる趣向かねぇ。
ドラゴンブックに代わる、なんてことはないないw
0132デフォルトの名無しさん
2009/06/18(木) 09:01:10学術書と実用系趣味本を一緒にすること自体おかしいよね
0133デフォルトの名無しさん
2009/06/18(木) 09:59:07りんご本のほうがよほど役に立ったわ
というくらい
0134デフォルトの名無しさん
2009/06/18(木) 10:21:41具体的に書かれてないと、単に難しいことが理解できなかった可哀想な趣味グラマにしか見えないな
0135デフォルトの名無しさん
2009/06/18(木) 10:50:140136デフォルトの名無しさん
2009/06/18(木) 12:07:40字句解析、構文解析はツールを使うから詳しくなる気はないし、
構文解析向けの言語理論にも興味ないって人にはまったく不向き。
構文解析ツール作ってみたいなって人、
計算機科学科の学生には今でもいい本の一つ。
0137デフォルトの名無しさん
2009/06/18(木) 14:08:10押さえてあるからね。
0138デフォルトの名無しさん
2009/06/18(木) 16:24:11「内容に興味のない人には不向き」っていうことですねわかります
0139デフォルトの名無しさん
2009/06/18(木) 16:44:12当たり前の事ではないか
0140デフォルトの名無しさん
2009/06/18(木) 17:41:11反撃が全部「ぼくは君をこういうキャラに設定したぞ。どうだ悔しいだろう」だし。
0141デフォルトの名無しさん
2009/06/18(木) 17:45:52具体的に書かれてないと、単に難しいことが理解できなかった可哀想な趣味グラマにしか見えないな
0142デフォルトの名無しさん
2009/06/18(木) 20:23:54構文が曖昧です。君からキャラへの変換は明示的なキャストが必要です。
0143デフォルトの名無しさん
2009/06/18(木) 22:43:48COINSコンパイラ・インフラストラクチャ
ttp://www.coins-project.org/
0144デフォルトの名無しさん
2009/06/18(木) 22:52:470145デフォルトの名無しさん
2009/06/19(金) 00:01:52いやだから、内容に興味があるのは”前提”として、
その人たちにとって良い本かを議論しないと意味ないじゃんという話
まぁ全体的にいい本っていう論調だし俺も同意するが
0146デフォルトの名無しさん
2009/06/19(金) 00:06:19これ世界の常識あるね
0147デフォルトの名無しさん
2009/06/19(金) 06:51:19いきなりしょっぱなからはじめから変な数式ばっかでいやになった…。
論文とかたまに見るけど、どうして人にわかるように書かないんだろうか?
大学行ってたら、小学生でもわかるように、って習わなかったんだろうか?
0148デフォルトの名無しさん
2009/06/19(金) 07:24:210149デフォルトの名無しさん
2009/06/19(金) 07:26:33え?あの程度の数式読めないの?
何それこわい
0150デフォルトの名無しさん
2009/06/19(金) 07:28:120151デフォルトの名無しさん
2009/06/19(金) 07:36:55貴様は人間の屑だ
0152デフォルトの名無しさん
2009/06/19(金) 08:23:43ただ単に読むのが早すぎただけでしょ。積読して、適正になったらまた読む
0153デフォルトの名無しさん
2009/06/19(金) 10:09:04大学の教科書で、小学生でもわかるように書いてあるものなど皆無です。
高校生で奮発して読もうと思っているなら、学校の先生にでも相談しなさい。
多分集合の記号とか論理式とかでつまづいてるんじゃないかと思うんだけど。
0154デフォルトの名無しさん
2009/06/19(金) 23:36:050155デフォルトの名無しさん
2009/06/20(土) 00:00:30これも読めないゆとりは来るな
0156デフォルトの名無しさん
2009/06/20(土) 00:07:000157デフォルトの名無しさん
2009/06/20(土) 00:13:250158デフォルトの名無しさん
2009/06/23(火) 16:33:02日本のコンパイラの第一人者が監修になってたから、わりと買った人多い?
たとえ話がぜんぜん例えになってなくて大混乱
巻末のJavaで書いたコンパイラのプログラムはほとんどCからの丸写しみたいなつくりだった。
0159デフォルトの名無しさん
2009/06/23(火) 16:38:450160デフォルトの名無しさん
2009/06/23(火) 17:15:05確かLSI-Cの作者がそう言ってたと中村正三郎か誰かが書いていた記憶がある。
0161デフォルトの名無しさん
2009/06/23(火) 17:27:010162デフォルトの名無しさん
2009/06/23(火) 17:45:10「ドラゴンブックを読めば誰でもLSI-Cぐらいのコンパイラは書ける」だなw
0163デフォルトの名無しさん
2009/06/23(火) 19:39:56「ドラゴンブック読めば誰でもコンパイラコンパイラは書ける」なの?
0164デフォルトの名無しさん
2009/06/23(火) 19:57:12なんか書いてみたいなレベルの自分にとっては、ぴったりのイメージ
なんだが、この本あんまり話題に上らないね・・・
C++出来ない自分にゃ読み替えるのが大変w
javaVM向けの中間言語を吐くやつのサンプルとかがあると、最高
だったんだけど。
0165デフォルトの名無しさん
2009/06/23(火) 20:40:34LSI-Cは1980年代始めから中頃までが全盛期だと思うが、
当時最高の最適化を行なう最強コンパイラですよ。
作者はデータフロー解析、レジスタカラーリングは、
原論文をバリバリ読んでいた人だと思う。
かなりの腕前の人。
0166デフォルトの名無しさん
2009/06/23(火) 21:33:02いやいや、>>162は作者がそう言ったので
中村正三郎か誰かがしょんぼり、という話w
0167デフォルトの名無しさん
2009/06/23(火) 22:14:46ちょっと薄い本だけど、日立の人が書いた、Javaのバイトコード
を吐くコンパイラがサンプルで載ってる本あったね。
って調べたらあった↓
http://www.amazon.co.jp/dp/4274133087/
0168デフォルトの名無しさん
2009/06/23(火) 23:13:16著者の最初に名前上がってる人、コボラーだね。
0169デフォルトの名無しさん
2009/06/23(火) 23:15:27興味あったけど買うのよしたw
0170デフォルトの名無しさん
2009/06/23(火) 23:19:24もバイトコードコンパイラのソースも載ってるぞ。買って読んでないから内容は
知らんが。
0171デフォルトの名無しさん
2009/06/23(火) 23:20:090172デフォルトの名無しさん
2009/06/24(水) 00:34:540173デフォルトの名無しさん
2009/06/24(水) 04:30:55コンパイラが欲しいと書いてる人がいたが、
よくよく考えてみると、.NETやJavaなどのそれ自体が
中間言語でかかれててJITコンパイラまで付いてる環境では、
下手に独自で作るよりもその環境の中間言語を出力してしまう、
要するにコンパイラそのものを作ってしまったほうが簡単なんだよな。
中間言語の書式や(基本的に)仮想マシンの仕様を考えなくて済む。
だからJavaにおけるGroovy、.NETにおけるIronPythonなど、
中身はインタプリタというよりもコンパイラそのものだ。
0174デフォルトの名無しさん
2009/06/24(水) 05:51:310175デフォルトの名無しさん
2009/06/24(水) 07:32:42ドラゴンブック不要といわれる理由がよくわかる
読んでみろ
0176デフォルトの名無しさん
2009/06/24(水) 07:41:400177デフォルトの名無しさん
2009/06/24(水) 08:03:250178デフォルトの名無しさん
2009/06/24(水) 10:29:52信者か作者かしらんがいい加減うざい
0179デフォルトの名無しさん
2009/06/24(水) 11:43:340180デフォルトの名無しさん
2009/06/24(水) 22:29:32買って読んでみたぞ
普通の本だろこれ
金返せよ
0181デフォルトの名無しさん
2009/06/24(水) 22:40:430182デフォルトの名無しさん
2009/06/24(水) 23:16:58作者乙
0183デフォルトの名無しさん
2009/06/24(水) 23:20:30>>182
偽エスパー乙
0184デフォルトの名無しさん
2009/06/24(水) 23:25:070185デフォルトの名無しさん
2009/06/25(木) 07:31:29コンパイラの本書いてるやついるけど
あいつは何なの?
0186デフォルトの名無しさん
2009/06/25(木) 07:35:370187デフォルトの名無しさん
2009/06/25(木) 14:13:43いや、コボラーはコボラーでもIBMの奴隷って意味のコボラーじゃないからw
0188デフォルトの名無しさん
2009/06/27(土) 23:40:48確か、LSI-Cの作者がそれしか読んでないとかいってただけだと思う。
万人に当てはまるわけではない と
0189デフォルトの名無しさん
2009/06/28(日) 00:30:24というかその大昔の時点で意味わかってなかったのか?
LSI-Cの最適化は凄いとよく言われたが
詰めが甘くて実際には骨折り損だという話もあったよ
コンパイル時間はMS-Cの倍だったしね
0190デフォルトの名無しさん
2009/06/28(日) 01:40:228080版の最適化の話だろすごかったの
0191デフォルトの名無しさん
2009/06/28(日) 07:18:310192デフォルトの名無しさん
2009/06/28(日) 07:19:140193デフォルトの名無しさん
2009/06/28(日) 09:20:58知りもしないことをよくもまあ
0194デフォルトの名無しさん
2009/06/28(日) 11:56:45MSX-Cは変数が自動でレジスタに割り当てられるんだけど、
そうなるとポインタを介したアクセスと一貫性がなくなる。
0195デフォルトの名無しさん
2009/06/28(日) 12:01:020196デフォルトの名無しさん
2009/06/28(日) 21:23:22変数のポインタを取り出せばメモリ上に確保しなおしてたよ
それともループ内に持ち込んだ変数を割り込み処理で外部から変更した時に関与が出ないって意味で言ってる?
0197デフォルトの名無しさん
2009/06/28(日) 21:59:34#pragma nonrec
main()
{
int n;
int *p;
p = &n;
n = 10;
*p = 100;
printf("n = %d\n", n);
}
MSX-C のマニュアルに載ってたサンプル。
これで「n = 10」と表示されるそうな。
0198デフォルトの名無しさん
2009/06/28(日) 23:10:50これが仕様なの?
0199デフォルトの名無しさん
2009/06/28(日) 23:30:24コード書く人もコンパイラの振る舞いにあわせて組んでたんだね
0200デフォルトの名無しさん
2009/06/28(日) 23:40:43pragmaはコンパイルの動作を指定するためにある。
0201デフォルトの名無しさん
2009/06/29(月) 00:14:16レジスタに割り当てないこともできるけど。
#pragma nonrecはローカル変数をstaticがついているかのようにする。
non-recursiveの略。CPUの制限でスタック上の変数にアクセスするのが
遅いからです。コードの再利用のことを考えてのことだと思う。
あとMSX-Cはlongと浮動小数点数がないんです。
#ifもない。if文で代用とマニュアルにありました。実行されないコードは
生成されない。
なにかの役に立つかな?
0202デフォルトの名無しさん
2009/06/29(月) 00:17:14さもなくば死か
この時代にCを開発用途に使えたという時点である意味幸運だったとも言える
0203デフォルトの名無しさん
2009/06/29(月) 12:13:130204デフォルトの名無しさん
2009/06/29(月) 23:59:31Z80だとIX/IYで強引にやるのか?汎用/裏レジスタで最適化とかしてたら凄いが
0205デフォルトの名無しさん
2009/06/30(火) 00:51:28便利ではあるけど遅いからコンパイラは使わない。
(HD64180あたりになると結構速かったが)
LSI-C(MSX-C)はもちろん裏レジスタ使いまくり。
0206デフォルトの名無しさん
2009/06/30(火) 22:30:31コードが掲載されていた。
MSX-Cは裏レジスタ,IX,IYを使うコードは生成しなかったと思う。
付属のライブラリでは使っているかもしれませんが。
スタック上のローカル変数アクセスの方法はどうだったか記憶にありません。
MSX-Cのアセンブリ言語出力をZ80に最適化するプログラムを書いた人もいるようです。
僕も出力を見ていたときすこし考えたことありました。
アセンブリ言語レベルで8080から8086に変換するプログラムの存在を古い本で読んだのも思い出しました。
0207デフォルトの名無しさん
2009/06/30(火) 23:41:00回顧主義者おっさんのたまり場であることがよくわかる
だから日本は研究でも実業でもこの分野でチョン以下になる。
0208デフォルトの名無しさん
2009/06/30(火) 23:51:29そんな愚にも付かないことを言ってるヒマがあったら、
LLVM向けに何かメジャーな言語を移植するのだ。
0209デフォルトの名無しさん
2009/07/01(水) 00:01:250210デフォルトの名無しさん
2009/07/01(水) 00:22:10どこがどう糞なの?
0211デフォルトの名無しさん
2009/07/01(水) 23:55:53Milepost GCCがあるから不要
自分でコードをチューニングするという古臭い時代は終わったの
自動的に学習して最適なコードを出力してくれるからLLVM自体不要なの
0212デフォルトの名無しさん
2009/07/02(木) 00:01:160213デフォルトの名無しさん
2009/07/02(木) 00:15:27というか、同じようなアイデアのllvm-gccのほうが有名なわけだが?
0214デフォルトの名無しさん
2009/07/02(木) 00:20:21完全自動化だし、今年後半のコンパイラ関係の
賞総なめにするって言われてるけどねぇ
EUレベルの国家プロジェクトと田舎大学の糞プロジェクト
比較されてもねぇ
0215デフォルトの名無しさん
2009/07/02(木) 00:23:400216デフォルトの名無しさん
2009/07/03(金) 07:15:500217デフォルトの名無しさん
2009/07/03(金) 17:26:470218デフォルトの名無しさん
2009/07/03(金) 18:29:020219デフォルトの名無しさん
2009/07/03(金) 21:43:00妄想乙
0220デフォルトの名無しさん
2009/07/04(土) 00:33:17君がろくに論文も読んでないのが良く分かりました。
0221デフォルトの名無しさん
2009/07/05(日) 14:42:00宣伝したやつフルボッコにするからな
0222デフォルトの名無しさん
2009/07/05(日) 15:27:470223デフォルトの名無しさん
2009/07/05(日) 15:45:49>>221
>>221
0225デフォルトの名無しさん
2009/07/05(日) 19:14:050226デフォルトの名無しさん
2009/07/05(日) 22:26:250227デフォルトの名無しさん
2009/07/06(月) 17:28:440228デフォルトの名無しさん
2009/07/07(火) 16:05:46addl $1,%eax
adcl $0,%eax
みたいな簡単なものは理解できたのですが、シフト演算や乗算・除算になると
追い方が悪いのか理解力が弱いのかさえ分からなくなってきました。
この手のことを解説したサイトって無いのでしょうか。
0229デフォルトの名無しさん
2009/07/07(火) 17:55:56たぶん自分で調べたほうが早い。
最適化をかけないデバッグビルドで、
演算させるたびに何か関数(printf)でも呼び出す形にするといいよ。
0230デフォルトの名無しさん
2009/07/07(火) 18:16:510231デフォルトの名無しさん
2009/07/07(火) 18:21:050232デフォルトの名無しさん
2009/07/08(水) 01:09:36まじお勧め
0233デフォルトの名無しさん
2009/07/08(水) 06:52:57そうですか。急がば回れってことなんでしょうか。
おれ、このリーディングが終わったらまとめ書くんだ。
>>230
acid
使い方が分からないので、スタックトレースにしか使ってません。
>>231
数年前に、はじめて読む8086を流し読みした程度の知識です。
分からない命令はインテルのpdf引きながら読んでいます。
>>232
http://www.opensource.apple.com/source/gcc/gcc-937.2/gcc/longlong.h
mullを1回で、(long)*(long)はできるのですね。おもしろい。
0234デフォルトの名無しさん
2009/07/08(水) 09:10:38gcc使う人はたいていデバッガ使わないでしょ。
デバッガに頼り切ってるのはVS厨が多い。
0235デフォルトの名無しさん
2009/07/08(水) 09:36:37そういう人って
デバッグがデバッガに頼り切りではないという面もあるにしろ
デバッガを使いこなせてないという面もあるんじゃないかな。
0236デフォルトの名無しさん
2009/07/08(水) 09:59:40それは偏見。
組み込みLinux開発ではgdbくらい使いこなせないとお話になりません。
0237デフォルトの名無しさん
2009/07/08(水) 17:28:59それは偏見。
組み込みLinux開発ではgdb使ってるようではお話になりません。
0238デフォルトの名無しさん
2009/07/08(水) 17:31:410239デフォルトの名無しさん
2009/07/08(水) 17:35:330240デフォルトの名無しさん
2009/07/08(水) 17:56:46何を使うのがいいでしょうか?
おすすめを教えてください。
0241デフォルトの名無しさん
2009/07/08(水) 18:34:20何を使うのがいいでしょうか?
おすすめを教えてください。
0242デフォルトの名無しさん
2009/07/08(水) 18:53:240243デフォルトの名無しさん
2009/07/08(水) 19:48:27文字列→数値のパースみたいなランタイムの処理に流用しやすいし
0244デフォルトの名無しさん
2009/07/08(水) 23:21:380245デフォルトの名無しさん
2009/07/09(木) 01:22:530246デフォルトの名無しさん
2009/07/09(木) 01:54:23相対アドレスも数をこなせば暗算できるようになる
0247デフォルトの名無しさん
2009/07/09(木) 09:40:02アセンブラを使う。
gccに-vオプションつけてみな。
0248デフォルトの名無しさん
2009/07/09(木) 09:50:38Caperはgcc+Perlで開発されているので字句解析にはPerlを使うと馴染みやすい。
Linuxには必要なものがすべて揃っている。
0249デフォルトの名無しさん
2009/07/09(木) 10:10:50あなたの作っているコンパイラに対してアセンブラは自前ですか?
0250デフォルトの名無しさん
2009/07/09(木) 10:16:580251デフォルトの名無しさん
2009/07/09(木) 16:11:15最初は使えるものを使って、徐々に置き換えていけばいいんじゃない
0252デフォルトの名無しさん
2009/07/21(火) 23:01:500253デフォルトの名無しさん
2009/07/21(火) 23:26:020254デフォルトの名無しさん
2009/07/24(金) 21:58:11ふつうの方は神本確定の出来だった
0255デフォルトの名無しさん
2009/07/25(土) 00:56:59ふつうの方宣伝してる人は
まったく具体的な指摘がないんだよな
0256デフォルトの名無しさん
2009/07/25(土) 01:09:340257デフォルトの名無しさん
2009/07/25(土) 09:32:51学生なのでちょっと資金余裕がなくて
0258デフォルトの名無しさん
2009/07/25(土) 09:38:480259デフォルトの名無しさん
2009/07/26(日) 02:01:07どなたか教えてもらいたいのですが
0260デフォルトの名無しさん
2009/07/26(日) 17:17:33http://www.infoq.com/jp/news/2009/05/Language-Workbench
0261デフォルトの名無しさん
2009/07/26(日) 17:40:020262デフォルトの名無しさん
2009/07/26(日) 17:57:19今見たが、特に問題ないぞ。
0263デフォルトの名無しさん
2009/07/27(月) 11:25:26うちの環境だとこうなってる
IE6 ちゃんと出る
FireFox スタイルシートが効かない
Google Chrome スタイルシートが効かない上に画像も表示されない
0264263
2009/07/27(月) 11:30:130265261
2009/07/27(月) 12:19:46エラーコンソールになんか出てるけど、それが原因を示してるのかわからん...
0266デフォルトの名無しさん
2009/07/27(月) 13:05:55リロードしたらOKになったよ、うちのFX
0267デフォルトの名無しさん
2009/07/27(月) 14:00:29まぁスレには関係ない話題だが
0268デフォルトの名無しさん
2009/07/28(火) 14:39:17どっちかというと設計よりの話だね。
0269デフォルトの名無しさん
2009/08/01(土) 04:41:50・Lexical analyzer and parser generator
単純だがよくできている。構文木を食わせてソースコードを吐かせるBison式。
最初これで作りかけていたが、パーサーを構築できてもそのパーサーが予定の挙動をしない場合、デバッグの方法が困難。
(テーブルに分解されてしまうため、ソースが追いかけられない)
パーサーの動作は高速と思われる。
・Irony
パース、構文木構築までをやってくれるコンパイラを動的に構築してくれる。
簡単なGUIのパーサーチェッカーが付いていて、開発がかなり楽
(すごい楽かはもっと楽なものがあるのかどうか知らないので……)
動的に構築する分lapgより遅いかもしれないが、とりあえず自分の目的にはこれで十分なので。
ただ、コンパイル済みコードを吐かすために自分用の構文木を
もう一度作り直す羽目になるのは激しくビミョー……。
(別にそのまま構文木を消化していったっていいわけだが。
まあ少なくともテキスト形式で出力するにはあの構文木のオブジェクト構造は向いてないな)
0270デフォルトの名無しさん
2009/08/01(土) 04:55:36「構文木を食わせて〜」は、「BNF定義を食わせて〜」が正しい。
lapgもIronyもどちらもEBNFではなくBNF式。(Wikipediaで調べた限りでは)
ただしどちらもパースに正規表現が使える。
lapgは非Ascii文字の正規表現パースがどうも挙動が怪しい……。
Ironyはホワイトスペースの除去以外にも非構文要素を取り除けるチャンスがあるので小回りが効くようだ。
(といったところも気に入っている)
0271デフォルトの名無しさん
2009/08/01(土) 13:51:44これが最強他は全て旧世代の糞技術
0272デフォルトの名無しさん
2009/08/01(土) 14:25:38どんなものか説明してみれ
0273デフォルトの名無しさん
2009/08/01(土) 14:32:14GPPGはIronRubyにも使われてる
0274デフォルトの名無しさん
2009/08/01(土) 15:05:060275デフォルトの名無しさん
2009/08/01(土) 16:48:45なるほど……。
現在はMPPG/MPLEXと名前が変わってるようだけどね。
どうせいずれVisual Studioの胸を借りる(SDKを使ってオレ様IDEを作る)予定なので、
はじめからこちらで構文解析を実装しておいた方が
構文の強調、InteliSenceなどで使い回しが利くかもしれない。
結構進んでてあとはエラー周りくらいだったんだが、破棄してしまうかなぁ……。
0276デフォルトの名無しさん
2009/08/01(土) 16:55:06本家はttp://plas.fit.qut.edu.au/gppg/Default.aspxで開発継続中でドキュメントも充実してる
0277デフォルトの名無しさん
2009/08/01(土) 17:30:29HPみてみたら、GPPG is closely related to the “Managed Package Parser Generator” application
って書いてるね。
今仕様を決めているスクリプトは文法がPythonに似ているので
IronPythonがどうなってるか調べてみたら、こっちはパーサーを自前で書いてる……?
(ソースコード中に直接コメントでBNFが書いてある)
0278デフォルトの名無しさん
2009/08/01(土) 17:42:08ただそれだけに、PDFドキュメントだけじゃなくて実際に動くサンプルプロジェクトが欲しいところだなぁ。
どっかにお手ごろなのが落ちてないかな。
0279デフォルトの名無しさん
2009/08/01(土) 18:06:36言語なら
ttp://www.iunknown.com/2007/11/lolcode-on-dlr.html
これなんか手ごろで面白い。あとは大規模だけどIronSchemeやIronRubyくらいかな。
0280デフォルトの名無しさん
2009/08/01(土) 18:20:30> ともあれ、BNF定義の中に直接コード片が埋め込めるGPPG/MPPGの仕様は興味深いね。
>>276のサイトも見ないで聞くがyaccなんかのアクションとは違うもの?
0281デフォルトの名無しさん
2009/08/01(土) 18:41:28言語定義が処理系を実装する言語に依存しないというのは,むしろ流行りの売り文句です
0282デフォルトの名無しさん
2009/08/01(土) 18:47:36> 同じです
じゃあ>>278は何が興味深いんだろうか?
> 言語定義が処理系を実装する言語に依存しないというのは,むしろ流行りの売り文句です
JavaでいうとSableCC的なやつかな
JavaCC+JJTree、ANTLRでもできるが
0283デフォルトの名無しさん
2009/08/01(土) 19:06:25> “YACC/BISON-like” input specification and produces a C# output
> file. The parsers that it produces are thread-safe, with all parser
> state held within the parser instance.
プログラミング言語非依存でもないよ。
0284デフォルトの名無しさん
2009/08/01(土) 19:09:44278だが、その点で言えば、269で挙げたLexical analyzer and parser generatorはC++/Java/C#形式で吐き出せるよ。
だがこちらとしては、実装言語の非依存性などどうでもよい。
パーサーを実装しやすい仕様になっていればそれでいいわけ。
実装しやすさという観点で言えば、BNF式ごとにコードが埋め込めるGPPGは小回りが利きそうだし、
コンパイラやエラー処理があらかじめ一通り実装された状態で使えるIronyよさげ、というわけで。
0285デフォルトの名無しさん
2009/08/01(土) 19:14:10話の流れが見えてなくてすまないが、要は昔ながらのコンパイラ・コンパイラが
欲しくてGPPGがそうだってだけ?
仕様が興味深いというから何か目新しいネタがあるのかと期待しちゃったんだが
0286デフォルトの名無しさん
2009/08/01(土) 19:16:39ランタイムの実装が糞すぎて使い物にならないのが多いんだよね
0287デフォルトの名無しさん
2009/08/01(土) 19:28:14学者風情が作った糞ライブラリに
期待するなよw自作しろ
0288デフォルトの名無しさん
2009/08/01(土) 19:37:36ノイズレスはやめてくれ
0289デフォルトの名無しさん
2009/08/01(土) 19:47:26他のやつらとこのスレの趣旨的にはどうか分からないが、
オレとしては自分で仕様を決めたスクリプトを他の形式にコンパイルするのに
必要十分な環境をそろえられればいい。
GPPG(MPPG)はスレの流れからするとyaccに仕様が近いようだが、(いわゆる昔ながらのコンパイラ・コンパイラ)
別にそれにこだわりはない。
むしろIronyによる作りやすさを評価してるくらいだ。
ともあれ、構文木を作った後が大変なんだがな……。
0290デフォルトの名無しさん
2009/08/01(土) 21:50:56>289はGPPG?で今その感動を味わっているわけだ。
0291デフォルトの名無しさん
2009/08/01(土) 21:55:08あんなバグフィックスも含めて、
ちゃんとメインテナンスされてるどうかわからんツールよく使えるな。
近況はブログにでも書いてて欲しい。
0292デフォルトの名無しさん
2009/08/01(土) 22:02:23リリース版しか見てないだろ。
Subversionのリポジトリみたら今月に至るまでコミットされつづけてるぞ。
というか、作者に連絡して修正パッチを投げてさっき返事が来たところだ。
codeplexにおけるプロジェクトratingsも★5つだし、どこが気に入らないのか知らないが、
まあオレが使いこなせれば済むことだからいいや。
0293デフォルトの名無しさん
2009/08/01(土) 22:27:30lexを知らずに僕らは育った〜
0294デフォルトの名無しさん
2009/08/02(日) 10:06:570295デフォルトの名無しさん
2009/08/03(月) 00:01:46C++でPEGかpackratのパーサ作ってみたいのですが
何を参考に作るのが面白いでしょうか?
0296デフォルトの名無しさん
2009/08/03(月) 00:13:52いやいや・・
0297デフォルトの名無しさん
2009/08/03(月) 00:23:12PEGは新しい概念で古い言語向けにはあまり実装されて無いんじゃね?
Haskell、Pythonあたりを使うことをお勧めする。
0298デフォルトの名無しさん
2009/08/03(月) 11:42:07Packrat の総本山に、C++ 実装へのリンクがいくつかあるよね。
0299デフォルトの名無しさん
2009/08/03(月) 12:00:32CFGに比べた利点・欠点とか
こういうのが書きやすいとか書きづらいとかありますか。
0300デフォルトの名無しさん
2009/08/03(月) 12:29:13なので、CFGに比べて、原理を理解してしまえば直感的。
利点とも欠点ともとれるけど、レキシカルアナライザと統合される。
ナイーブな(メモ化なし)実装だと、指数的に時間がかかり、かつ無駄が多い。
0301デフォルトの名無しさん
2009/08/03(月) 12:41:16ぱっと見ただけじゃさっぱりわからんぞ……。
0302デフォルトの名無しさん
2009/08/03(月) 12:56:06yaccみたいにテキスト的に処理してるだけだろ
0303デフォルトの名無しさん
2009/08/03(月) 12:58:29まあそうなんだけど、C#自体の文法と似通っていて、
どこまでがC#の文法なのかが非常にわかりにくい。
どう見ても構文の宣言とラムダ式の定義が混じって見える。
0304デフォルトの名無しさん
2009/08/04(火) 01:55:34そもそもそういう人が処理系なんて書けるの?
0305デフォルトの名無しさん
2009/08/04(火) 07:32:04んんー、昨日いっぱいまでで、Irony使って大体書き上げてしまったぞ。
単独ファイルのコンパイルは文法の厳密化とか以外は大体こんなもの。
あとはエラー出力を整理してGUIくっつけて複数ファイルのコンパイルに対応したらおしまい。
ソースコード吐き出し式よりライブラリ式の方がオレには使いやすいようだ。
0306デフォルトの名無しさん
2009/08/04(火) 10:55:300307デフォルトの名無しさん
2009/08/04(火) 12:43:570308デフォルトの名無しさん
2009/08/04(火) 16:08:03作るのと比べてもかなり簡単。LLやLR系だと文法に対するグローバルな解析が必要になるけど
PEGはそういうのしなくていいし。パーザジェネレータじゃなくてパーザコンビネータならもっと簡単に書ける
無名関数に相当する機能がある言語だったら、大体100行程度で基本的な機能を持ったものを作れる
0309デフォルトの名無しさん
2009/08/04(火) 16:14:10・原理的にyaccとかのLALR(1)より強力なので、yaccでハンドリングするのが難しい文法も簡単に扱える(ことがある)
・レクサとパーザが統合されてるので、Rubyの"#{exp}"みたいな式埋め込み文字列みたいな文法も簡単に扱える
・Rubyとかではトリッキーな事をしてこの問題を回避している
・アルゴリズムが簡単なので挙動を理解しやすい=文法をデバッグしやすい(かも)
PEGの欠点:
・ナイーブな実装では最悪の場合指数関数時間(だけど、実用上最悪ケースはそんなに起きないと思う)
・メモ化(Packrat)しても、定数係数でLLやLRとかの非バックトラック型のパーザよりは遅い
・Packratだと、状態付きパーザを扱うのが難しい(シンボル表を参照しながらパーズする場合など)
・レクサとパーザが統合されてるので、空白とかの処理がやや面倒
0310デフォルトの名無しさん
2009/08/04(火) 16:14:12それともバックトラック?
0311デフォルトの名無しさん
2009/08/04(火) 16:15:27Packratも基本的には、単にナイーブなPEGパーザをメモ化するだけなので、多少手間が増えるくらいで、実装は難しくは無い
0312デフォルトの名無しさん
2009/08/04(火) 16:28:07↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
0313デフォルトの名無しさん
2009/08/04(火) 16:43:41OK. 1時間くらい待っててくれ
0314デフォルトの名無しさん
2009/08/04(火) 16:50:54手元のPEGのサンプルは四則計算を解釈していて、いきなりインタプリタとして動くようになっている。
いきなり動かすんじゃなくて構文木構築の段階で動作をとめることはできるんだろうか?
それから途中まで解析した文脈を情報として続く解釈で再利用できるだろうか?
例えばPythonの文法を考えてもらうとして、
# ***ここから***
if [Expr]:
[Sentence]
[Sentence]
[Sentence]
# ***ここまで***
Pythonでは構文の範囲は字下げで表現しているので、
if文の範囲を調べるのに字下げの数を数えないといけない。
どうやって解釈させたらいいのかわからなくて戸惑っているところなんだが。
0315デフォルトの名無しさん
2009/08/04(火) 17:21:20いきなり構文を解析しながら四則演算をしてるんじゃなかろうかという気がするが。
オフサイドルールとかはPEGの鬼門だということかと。
確か原論文では、それを理由にHaskellはムズいとして、Javaのパーザを
実装していた。
多分さがせば解決方法が出てる論文もあるだろうと思うのだけど。
パーザを状態付きにする方法は原論文にある。
0316デフォルトの名無しさん
2009/08/04(火) 17:56:21> 定数係数で
この言葉遣いはちょっと変なのでは?
>>314
字下げ処理はレキサの仕事と割りきってしまえばそれほど難しくはないでしょ。
先読みして{と}に相当するものに変換できるから。
0317313
2009/08/04(火) 18:20:40(define-record-type result
(make-result x y) result? (x value) (y next))
(define (app parser f)
(lambda(in)
(define r (parser in))
(if r (make-result (f (value r)) (next r)) #f)))
(define (term str)
(lambda(in)
(if (equal? (string-scan in str ' index) 0)
(make-result str (substring in (string-length str) (string-length in))) #f)))
(define (/: x y) (lambda(in) (or (x in) (y in))))
(define (^: x y)
(lambda(in)
(define r1 (x in))
(if r1
(let ((r2 (y (next r1))))
(if r2 (make-result (cons (value r1) (value r2)) (next r2)) #f))
#f)))
(define (seq p . parsers) (fold (lambda(x y) (^: y x)) p parsers))
(define (rep0 parser)
(lambda(in)
(let loop ((rest in) (rs '()))
(define r (parser rest))
(if r (loop (next r) (cons (value r) rs)) (make-result (reverse rs) rest)))))
(define (rep1 parser) (^: parser (rep0 parser)))
(define (? parser) (/: parser (app (term "") (lambda(v) '()))))
(define (& parser) (! (! parser)))
(define (! parser) (lambda(in) (if (parser in) #f (make-result '() in))))
(define-syntax rule
(syntax-rules() ((_ name body) (define name (lambda(in) (body in))))))
0318313
2009/08/04(火) 18:25:10の環境で適当になんとかしてくれ。あと、Gaucheのライブラリ関数string-scan使ったので、Gauche
でしか動かんと思う。string-indexとかに置き換えれば、他のSchemeでもたぶん動くと思われ。
Schemeは普段使わないんで、Scheme使いの人からするとアレなコードかもしれんが、そのへんは勘弁。
使い方は以下のような感じ。文脈自由文法では表現できない、A^n B^n C^nの文法。
(rule S (seq (& (^: A (! (term "b")))) (rep1 (term "a")) B (! (term "c"))))
(rule A (seq (term "a") (? A) (term "b")))
(rule B (seq (term "b") (? B) (term "c")))
(display (S "aaabbbccc"))
0319313
2009/08/04(火) 18:28:52で処理する場合でも、レキサを別に用意した方が書きやすいと思う。レキサがあったらPEGじゃないというわけ
じゃないので別に構わないはず(基本単位が文字の代わりにトークンになるだけ)。
0320デフォルトの名無しさん
2009/08/04(火) 19:26:20うお、本当にできてる!
たしかにこれはクロージャ使えない言語では無理だ
こういう風になったけど合ってますか?
gosh> (display (S "aaabbbccc"))
#<result 0pbb1788>#<undef>
gosh> (define res (S "aaabbbccc"))
res
gosh> (result? res)
#t
gosh> (value res)
(((() #0="a" #0# #0#) (#1="b" (#1# (#1#) . #2="c") . #2#) . #2#))
gosh> (next res)
""
0321313
2009/08/04(火) 19:34:21たぶんそれであってる。まあ、これだけだと構文エラー時のエラーメッセージ
表示とかどうしようも無いし、実用的にしようと思うと、色々付け足す必要があるけど、
コアの部分はこれくらい簡単だということで。
0322デフォルトの名無しさん
2009/08/04(火) 23:05:50どうやってpackrat実装すればいいかよくわからん
0323デフォルトの名無しさん
2009/08/04(火) 23:21:120324313
2009/08/05(水) 00:55:09一応、自分が作ったときは論文参考にしたけど、基本的にナイーブなPEGパーザ+メモ化に過ぎ無いから
それさえわかっていれば、自力で実装することもできると想う。ヒントとして、上で書いたSchemeによる
パーザコンビネータで、各非終端記号の解析結果をメモ化するにはどうすればいいか考えてみて。
Rats!とか高度な最適化してる奴はまあソース読むしかないと思うけど。
0325デフォルトの名無しさん
2009/08/05(水) 01:16:540326デフォルトの名無しさん
2009/08/05(水) 02:07:47Packrat Parsers Can Support Left Recursion (PEPM 2008)
Alessandro Warth, James R. Douglass, and Todd Millstein
http://www.tinlizzie.org/~awarth/papers/pepm08.pdf
0327デフォルトの名無しさん
2009/08/08(土) 18:40:53制定されているキーワードの数が尋常じゃない。
商用COBOLコンパイラを作っているメーカーの人はマジ天才。
0328デフォルトの名無しさん
2009/08/08(土) 19:51:580329デフォルトの名無しさん
2009/08/09(日) 03:42:55Cを使える人はいっぱいいるけど、COBOLはそうはいない。
だからこっそり開発して職場のヒーローになろうと思ってね。
でも道は遠かった・・・使うのと作るのとは別物なのだ。
0330デフォルトの名無しさん
2009/08/09(日) 09:26:31> 制定されているキーワードの数が尋常じゃない。
何のためにパーサジェネレータがあるんだか
まあ、BNF 打ち込むだけで疲労困憊ってのはあるかもしれんが…
0331デフォルトの名無しさん
2009/08/09(日) 09:32:180332デフォルトの名無しさん
2009/08/09(日) 10:31:58やっぱ疲労困憊ら?(静岡弁で)
0333デフォルトの名無しさん
2009/08/09(日) 11:53:19ほとんどは命令の名前なんだから、Identificationのレベルで区切って、
命令の判別はあとの段階にまわした方が簡単になるんじゃない?
あとはまあ、フリーソフトのCOBOLの処理系なんて昔ならともかく今ならいくつもあるんだし、作らないという手も。
0334デフォルトの名無しさん
2009/08/12(水) 15:03:20参考になるサイト教えて、lexとかyaccとか難しいのはいらない
0335デフォルトの名無しさん
2009/08/12(水) 15:32:59とっつきは悪いかもしれないけど、yacc&lexを使った方が
結局は落だと思うよ。
0336デフォルトの名無しさん
2009/08/12(水) 16:35:21オープンソースのスクリプトの処理系を組み込んだ方が普通は楽。
オレはそれにシナリオ記述用の独自形式のスクリプトと2種類用意しているが。
0337デフォルトの名無しさん
2009/08/12(水) 17:11:04ゲームの性質(リアルタイムとかアドベンチャーとか)にもよるけど
ゼロから勉強しなきゃいけないならYaccとかbisonとかの支援受けるのは悪くないと思うよ
組み込みでスクリプトをその場解析する必要があるならLRのパーサを裸で実装したマイクロPlan(1970年代のbitの記事)とかもあるからそういうレガシーなものもいいかもしれない(これは中間コードVMとしても結構興味深い)
っというわけで334がどういうものを欲しているかによって回答が異なるのだな
0338デフォルトの名無しさん
2009/08/12(水) 21:00:130339デフォルトの名無しさん
2009/08/12(水) 21:21:39マイクロPlan懐かしすぎ
臨時増刊捨てなきゃよかった
0340デフォルトの名無しさん
2009/08/12(水) 23:00:14同じく後悔してる
他にもmicro StarTrekやTinyBASICのソースもあったんだよな
>>334
ゼロから勉強するつもりで、もし入手できるなら「翻訳系構成法序論」がお勧め。
えらく堅苦しい題名だけど、たった136ページで翻訳系(コンパイラ)から
翻訳器生成系(yaccのようなコンパイラコンパイラ)まで作成方法が解説してある。
言語はPascal系なModula-2だけど、難解なアルゴリズムではないから、
C/Javaなどに慣れていれば読解に問題はないと思う。
あと、自前で言語処理系を作らないつもりなら、Tcl/Ruby/Pytonみたいな
汎用スクリプト言語をゲームアプリの中に「埋め込む」ことも検討できる。
ゲーム専用のスクリプトエンジンについては、よく分からんなぁ。
0341デフォルトの名無しさん
2009/08/13(木) 01:44:52やめたほうがいいと忠告しておこう
Tclはもともと組み込みのための処理系だし、Pythonもある程度
考えてあって商用も含めて実績も多い。
R(以下略
0342デフォルトの名無しさん
2009/08/13(木) 01:51:34許されるのは小学生までだけど
0343デフォルトの名無しさん
2009/08/13(木) 01:59:01tclかluaを使うことにして、公式ドキュメントを。
0344デフォルトの名無しさん
2009/08/13(木) 02:48:09あとはまあ、NPCの台詞や動き程度なら、
イベントの発生条件とイベントの内容をデータとして書ければいいわけだから、
スクリプト言語を使うまでもなく、
XMLやYAMLなどで宣言的データとして書く方法もある。
ちょうど、同じようなものを自分で作ろうとしているところ。
0345デフォルトの名無しさん
2009/08/13(木) 03:15:15スレ違いの質問で悪いが、続きを聞かせてくれ。
実際、Pythonを組み込んだオプソだけど高機能な3Dソフトを
知っているし、それに対してRubyはvimくらいしか実績を知らない。
ただ、Rubyの組み込みに何か技術的に致命的な欠陥があったりするのか、
あるいは、それほどPythonが組み込みに優れているのかまでは分からないんだ。
それとも単に>>341の印象で語ってるのか?
0346デフォルトの名無しさん
2009/08/13(木) 03:35:11341ではないが、代わりに答えてみよう。
Rubyでは処理系そのものをライブラリの形で差し替えたり、
あるいはJavaや.NETの枠組みで処理系そのものを再実装したりの試みは広く行われているが、
Rubyを組み込みスクリプトとして使用する例はオレもRPGツクールXPくらいしかしらない。
あまりその辺の分野は活発ではないような気がする。
いい加減スレ違いだから、これ以上の話はRubyのスレに行ってくれ。
0347デフォルトの名無しさん
2009/08/13(木) 10:55:31LISPはよく見るから、あえてForthでやってみてくれ。
0348デフォルトの名無しさん
2009/08/13(木) 13:30:18ruby は GC というかメモリ管理まわりの兼ね合いで
組み込みがかなり面倒、という話を聞いたことがある
0349デフォルトの名無しさん
2009/08/13(木) 14:10:04組み込みに向かないのは、evalがあるのが大きいと思う。
そのせいで、パーサとVMが独立できないので、言語まるごと組み込む必要が
あるのが大変なんじゃないかと。
1.9でその辺は変わったみたいだけど。
0350デフォルトの名無しさん
2009/08/13(木) 14:27:070351デフォルトの名無しさん
2009/08/13(木) 14:33:2226個のテーブルってのどう?
0352デフォルトの名無しさん
2009/08/13(木) 14:41:290353デフォルトの名無しさん
2009/08/13(木) 15:08:53俺も拡張機能用にPythonを組み込んだアプリは良く見るが
Rubyを組み込んだアプリは見たことが無い。
これは単にRubyが歴史が浅いからなのか、それともRubyが組み込みで使えない深い理由があるのか?
0354デフォルトの名無しさん
2009/08/13(木) 15:33:13難読化したjQueryとかじゃね?
0355デフォルトの名無しさん
2009/08/13(木) 16:00:40俺341だけど、言いだしっぺっぽいので
まず指摘されてたけど、メモリ管理の点で、1.8時代はネイティブスレッドとは
破滅的に相性が悪かったし、ウィンドウシステム・3D・DirexX関係も
相性はあまりよくない。
それに対してPythonは参照カウントとマーク&スイープの組み合わせで、
マーク&スイープもおとなしいタイプ。
参照カウントってのはちょっとダサいが、質実剛健だしその点では好感。
あと、これは俺の想像だけど、Pythonの作者は、PythonからCを使うってのと
CからPythonを使うってのを対称的で対等なものとして考えている雰囲気があるし、
技術的に変なこだわりはなくて、いろんなところに配慮しながら無難な実装をしてる。
Rubyは実装技術オタクのMatzが作ったので、変なところでこだわってたり
無駄に離れ業やってたりしてタチが悪い
ただし、Rubyは将来的にはマルチVMも可能にしようという方向で動いてるようだから
そこらへんは変わってくるかもしれない
0356デフォルトの名無しさん
2009/08/13(木) 20:56:150357デフォルトの名無しさん
2009/08/14(金) 01:20:18Q. 64bitプログラムとは、どのような文を書くといいのですか
A. コンパイラが64bitコンパイルできるなら何でも64bitプログラムになります
心底「ダメだこのバカ」と思った
0358デフォルトの名無しさん
2009/08/14(金) 09:35:58つぶやきはtwitterで
0359デフォルトの名無しさん
2009/08/14(金) 11:41:34スレ違い
64bitのソフトウェアってどうやって作るの?
http://pc12.2ch.net/test/read.cgi/tech/1170481037/
そのセリフの人物によっては
ハズレの外注を引いたときの対応 2人目
http://pc11.2ch.net/test/read.cgi/prog/1147161173/
【まるで】使えない新人 0x1C
http://pc11.2ch.net/test/read.cgi/prog/1249835909/
など
0360デフォルトの名無しさん
2009/08/14(金) 21:52:07例えば s = "ABC"; という文があった場合トークンは、
1. s
2. =
3. "
4. ABC
5. "
6. ;
でいいのでしょうか? とくに文字列が "ABC" で1つのトークンなのか
"とABCと"で3つのトークンなのかがわかりません。
0361デフォルトの名無しさん
2009/08/14(金) 21:59:32=
"ABC"
;
と分けるのが一般的かと思います
0362デフォルトの名無しさん
2009/08/15(土) 00:06:090363345
2009/08/15(土) 00:07:23「組み込み用途における技術的観点での比較」に絞ってレスする。
宗教戦争を煽る気はない。
>>346
>あまりその辺の分野は活発ではないような気がする。
Rubyは組み込みの実績が少ないし活動が活発ではないという理由かな。
それは技術的な理由からは外れている気がする。そうなった理由(背景)がこのスレの主題。
>>349
>そのせいで、パーサとVMが独立できないので、言語まるごと組み込む必要が
>あるのが大変なんじゃないかと。
Rubyが言語まるごと(パーザ+VM)組み込む必要があるのは事実。
ただし、個人的な感覚として、アプリケーションにスクリプトを組み込む目的の多くは、
ユーザによるアプリケーション機能の自由な拡張(スクリプティング)なのだから、
まるごと実装は欠点にはならないと思う。(JavaVMのようなコンパイラ系は別)
(長いので続く)
0364345
2009/08/15(土) 00:10:47>>355
>まず指摘されてたけど、メモリ管理の点で、1.8時代はネイティブスレッドとは
>破滅的に相性が悪かったし、
Rubyとネイティブスレッドとの破滅的な相性の悪さは事実なので同意。
ただし、多くのアプリケーションでは、ネイティブスレッドが前提とはならない
(あるいはRubyの疑似スレッドでもかまわない)ケースが大半を占めるのではないかと思う。
>ウィンドウシステム・3D・DirexX関係も相性はあまりよくない。
RubyもGNOME, WxWidget, Qt, Cocoa, SDLとウィンドウ(GUI toolkit)は揃っているし、
3DもOpenGL拡張ライブラリがあるから、相性が悪い理由にはならない。
DirectXは(おそらく)Rubyで対応しておらず、Phytonの実績が多いのかも(?)しれないが、
それは実績が多いという事実の言明だけであって、具体的な技術面の指摘ではない。
そもそも、これらは拡張ライブラリであってエンジン組み込みではないからスレ違い。
>それに対してPythonは参照カウントとマーク&スイープの組み合わせで、
>マーク&スイープもおとなしいタイプ。
GC制御に関わる所有ルールの難解さは、RubyにもPythonにも同様に存在する。
またGC方式の差異は、組み込み用途の利点とは直接的に結びつかないのでスレ違い。
(もし関連性があると考えているなら、具体的に差異を説明してください)
>あと、これは俺の想像だけど、Pythonの作者は、PythonからCを使うってのと
>CからPythonを使うってのを対称的で対等なものとして考えている雰囲気があるし、
対称性はRubyも変わらない。実装の難易度も同等というのが、個人的な実感。
(まだ続く)
0365345
2009/08/15(土) 00:15:27>技術的に変なこだわりはなくて、いろんなところに配慮しながら無難な実装をしてる。
これは(スレ違いだけど)同感で、PythonがSimple is bestを追求してるのは好感。ただし、
>Rubyは実装技術オタクのMatzが作ったので、変なところでこだわってたり
>無駄に離れ業やってたりしてタチが悪い
については、組み込み用途とは無関係だし、Rubyがスキャナとパーザの実装で
離れ業をしている事を除けば、具体性の無いMatzへの個人批判でしかないのでスレ違い。
以上、個人の印象/主観を除いたRubyの組み込み用途における技術的な問題点をまとめると、
- 言語まるごと(パーザ+VM)組み込む必要がある
- ネイティブスレッドとの破滅的な相性の悪さ
の二点のみ。組み込み用途に限れば、Pythonと比較した決定的な欠陥は見当たらない。
実際、拡張ライブラリ(Ruby->C呼び出し)を自作できるRubyプログラマであれば、
Ruby組み込み(C->Ruby呼び出し)も難儀な実装作業ではない、というのが個人的な実感。
(PythpnでもPython->C呼び出しが実装できない人であれば(その逆の)組み込みが難しいのは同じ)
(ゴメン、次で最後だから許して)
0366345
2009/08/15(土) 00:18:02あと(技術的な観点ではないけど)付け加えるとすれば、
Pythonは公式文書として組み込み方法が解説されているのに対して、
Rubyはインタプリタソース(ruby-1.8.x-xxx.tar.gz)に含まれるごく簡単な解説が
唯一の公式文書であるため、自力でネット/書籍から情報を得る必要があるという差異が、
組み込み実績という結果に大きく影響していると思われる。
これだけだと何の事か分かりずらいと思うので、最後に具体的なアドバイスをまとめる。
- RubyプログラマはRuby組み込みで、PythonプログラマはPython組み込みを選ぶのが楽
- ただし、ネイティブスレッドが前提なアプリケーションであれば、Pythonしかない
- どちらも知らない人は、(解説文書が整備されている)Phyton組み込みが無難な選択(=お勧め)
- ただし、言語の選択は、システム全体を見渡してから判断すべき(解説文書の有無だけで
言語を選択すると、本末転倒になる恐れがある(木を見て森を見ず))
長文/連投のスレ汚し、失礼しますた。
0367デフォルトの名無しさん
2009/08/15(土) 00:43:35既に挙げられてはいるけど lua みたいな
最初から組み込み用に作られたものを使うのが無難じゃないかな
変に難しいこと考えなくても楽に組み込めるし
0368デフォルトの名無しさん
2009/08/15(土) 00:53:25結局Rubyを無理やり組み込む人はいないと
0369デフォルトの名無しさん
2009/08/15(土) 00:53:49スレ違いをいちいち長ったらしく指摘しなくていいからもっと短くまとめろよ。
> あと(技術的な観点ではないけど)付け加えるとすれば、
> Pythonは公式文書として組み込み方法が解説されているのに対して、
> Rubyはインタプリタソース(ruby-1.8.x-xxx.tar.gz)に含まれるごく簡単な解説が
> 唯一の公式文書であるため、自力でネット/書籍から情報を得る必要があるという差
> 異が、組み込み実績という結果に大きく影響していると思われる。
付け加えじゃなくて、ここが一番重要なところだろ。
0370デフォルトの名無しさん
2009/08/15(土) 00:58:42バランスが取れたのがlua
実際にスクリプトを書かせる対象を想定しないとな
0371デフォルトの名無しさん
2009/08/15(土) 01:04:13まず、俺の主観が入っているってのはその通り。その点はすんまそん
てかあまり深く考えずに書き込んだけど、363氏の説明の方がほとんど
正しいと思います。
いくつか書きたいのは、
PythonのGCは停止時間(いわゆるレスポンス)が悪くない。
循環参照を解消するために定期的に
マーク&スイープする必要があるけど、そのタイミングは制御できる。
たとえばゲームでいえばシーン暗転の時にやるとか。
Rubyは逆で、楽だけど大味な制御しかできない
以前に256倍網道編でarton氏がpure rubyでゲーム作ってたけど、
実際実行すると結構カクカクだった
ついでにいうとCから使ってるとファイナライザが欲しくなるが、
CPythonならスコープはずれたら解放されることが(個別実装の仕様として)
保証されるので楽。
これらが決定的な利点・欠点かどうかは状況に依存するね。もちろん
あと実装じゃなくて完全にスレチだけど、ライセンスが違うのと、
(用途によるが)配布の際にバイトコード化可能かいう点もある。
以上で撤収します
0372デフォルトの名無しさん
2009/08/15(土) 01:40:39あれ?ディクショナリ内にメモリって確保するんだっけ?
0373デフォルトの名無しさん
2009/08/15(土) 01:48:28ゲーム本体よりも大きいと本末転倒だし
ソースがせいぜい2〜3ファイル、合計数百行程度、使えるライブラリは関数をテーブルに登録ぐらいが理想か
0374345
2009/08/15(土) 02:21:05>まず、俺の主観が入っているってのはその通り。その点はすんまそん
こちらこそネチネチ書いてスマンかったです。ただ主観/印象で論議すると
宗教戦争に陥りがちだから、それを避けたかった。分かってくださいませ。
>Rubyは逆で、楽だけど大味な制御しかできない
RubyもGCを明示的に起動できますよ。シーン暗転前に起動すればいいと思いますが....。
>実際実行すると結構カクカクだった
カクカクになるのは、GCとは別の要因ではないかと思います。
GCが原因なら、(比較的あいた間隔で)実行が固まったように見えるはずですから。
>CPythonならスコープはずれたら解放されることが(個別実装の仕様として)
>保証されるので楽。
これは、(Cスタック上に)auto変数としてPythonVMを確保すれば、そのVMと実行環境が
まとめて自動的に解放されるということでしょうか?
もし本当なら、(Rubyと比較して)かなりプログラマの負担が減りますね。
あと同一プロセス上でのマルチVM(インタプリタ)も簡単に実現できると思われますし。
>あと実装じゃなくて完全にスレチだけど、ライセンスが違うのと、
Rubyライセンスは、とっても緩やかなものです。Matzは言語オタクだから、
(権利の主張よりも)自分の作品を使ってくれることに喜びを感じてるのだと想像させるほどに。
>(用途によるが)配布の際にバイトコード化可能かいう点もある。
これも、(オプソなプロジェクト以外では)採用を決めかねない大きなPythonの利点ですね。
ソース非公開というニーズは多いと思いますから、>>363の最後の段落は撤回します。
0375デフォルトの名無しさん
2009/08/15(土) 02:49:20組込み系言語スレがふさわしいと思う。
0376デフォルトの名無しさん
2009/08/15(土) 03:05:220377デフォルトの名無しさん
2009/08/15(土) 03:08:01でもあそこでpとかrとか言ったら荒れるんだよね
0378デフォルトの名無しさん
2009/08/15(土) 08:17:18> 参照カウントってのはちょっとダサいが、質実剛健だしその点では好感。
mark & sweepと併用するやり方は、
どっちをメインにするとしても、極めて有効なやり方だよ。
0379デフォルトの名無しさん
2009/08/15(土) 09:46:27最近の高スペックPC当て込んだ
バブル言語だろ
0380デフォルトの名無しさん
2009/08/15(土) 10:16:03GCという概念がない。動的なデータ構造も(スタック以外)ないし。
PostScriptは確かスナップショットのようなものを取って、
明示的に指定してそのスナップショット以降に確保されたものを
解放するとかそういう機能がある、と思った。
0381デフォルトの名無しさん
2009/08/15(土) 11:29:43触ったことがあるよ。個人的な感想だが、pythonの微妙に面倒臭いところが、
組み込みだと逆にぴったり使いやすいんだわ。説明しづらいけど。
Rubyの自由さは組み込み向けだと正直いらない。
0382デフォルトの名無しさん
2009/08/15(土) 13:30:14おおむね同意だが、>>349に対するレスはやや違うと思う。
漠然とスクリプトエンジンと題した場合、真っ先に求められるのは
書いたスクリプトをその場で実行できる手軽さであり、
必然的にインタプリタの要件を満たすことになる。
これに現在主流がバイトコンパイル式であることを勘案すると
言語まるごと(パーサ+VM)を組み込むことがほぼ確定になる。
まあオレがオレオレ処理系を作るときはスクリプトのコンパイラは
事実上のジェネレータとして実装して、
生成物は汎用のスクリプトの処理系に渡してしまうから
自作部分は純粋なコンパイラになるわけだが。
開発用にはそれとは別にスクリプトのタイムスタンプを見て
自動的にコンパイル作業を行う機能を追加することになるだろう。
0383デフォルトの名無しさん
2009/08/15(土) 13:32:25他の組み込み向け言語に比べると
だいぶめんどくさい方だと思うけどな
まぁライセンス云々はスレ違いだけど
0384デフォルトの名無しさん
2009/08/15(土) 13:58:23パーサーの要不要は用途次第かと
ゲーム用とかだと開発時は素早く試行錯誤したいが
リリース後は基本的にはスクリプトをいじる必要がないので
そういう場合パーサーは無駄なので最終的には外せる方が良い
実行環境がプアなものは特に
0385デフォルトの名無しさん
2009/08/15(土) 14:58:430386デフォルトの名無しさん
2009/08/15(土) 17:01:08要望ってこれからも大きいかな?
今のところメジャーなもので、実現したものってないような気がするけど。
0387デフォルトの名無しさん
2009/08/15(土) 17:41:29例えばPerlだと、実行せずに静的にパースすることは不可能なわけだし。
ttp://perlmonks.org/?node_id=663393&
0388345
2009/08/15(土) 18:25:09Pythonであれば、以下のようなカキコがあるから、
パーザとVMは分離できるように見えるけど、違うの?
Pytonにはevalは存在しないみたいだし(>>349参照)
>>371
>(用途によるが)配布の際にバイトコード化可能かいう点もある。
0389デフォルトの名無しさん
2009/08/15(土) 19:16:11> Forthは基本的にはライブラリ(辞書)管理もFILOだから、
> GCという概念がない。動的なデータ構造も(スタック以外)ないし。
それは嘘。
FORTHを採用する場合、
後置記法を採用するくらいだから、
非常に小さいインタプリタが必要とされている局面。
だからプアな処理系が多いと言うだけで、
GCをバッチリ実装した処理系はあってもいい。
データがFILOで済むというのも嘘。
辞書に登録したら不必要になる順序はプログラム次第。
0390デフォルトの名無しさん
2009/08/15(土) 19:56:550391387
2009/08/15(土) 20:03:53実際にPythonやRubyでパースが曖昧になるようなケースは知らないが、
evalがあると分離しにくいのは確かだろうね。ちなみにPythonにもevalはある。
0392デフォルトの名無しさん
2009/08/15(土) 21:33:030393デフォルトの名無しさん
2009/08/15(土) 21:35:35どんどん使えばいいと思うよ
0394デフォルトの名無しさん
2009/08/15(土) 21:45:110395デフォルトの名無しさん
2009/08/15(土) 21:50:200396デフォルトの名無しさん
2009/08/15(土) 22:02:090397デフォルトの名無しさん
2009/08/15(土) 23:35:530398デフォルトの名無しさん
2009/08/15(土) 23:43:000399デフォルトの名無しさん
2009/08/16(日) 00:05:29小さな独自Lisp系ならいくらでもあるよ(CLとかSchemeとかの規格準拠じゃなければ8ビット機でだって動くんだもの)
0401デフォルトの名無しさん
2009/08/16(日) 01:36:230403デフォルトの名無しさん
2009/08/16(日) 02:37:35LISPerは自分用のがあるから
他人の糞LISPなんて使わない
0404デフォルトの名無しさん
2009/08/16(日) 02:50:00というか、そんな結論ありきな考え方をするやつなら
そもそもこんなスレに来る必要がないわけだが。
0405デフォルトの名無しさん
2009/08/16(日) 08:26:25> 辞書に登録したら不必要になる順序はプログラム次第。
少なくとも伝統的なFORTHなら辞書は一方向リンクトリストで最後に
登録されたものから順につながってるし、最後に登録されたワードを
グローバルなワークエリアが指している。
FORGETワードは、特定のワード以降に登録されたワードを全部捨てて
しまう。
そういう構造だから、基本的にGCはない。
0406デフォルトの名無しさん
2009/08/17(月) 10:10:39ISLISP
0407デフォルトの名無しさん
2009/08/26(水) 22:10:050408デフォルトの名無しさん
2009/08/31(月) 11:13:52もしくは専用スレを立てる?
0409デフォルトの名無しさん
2009/08/31(月) 11:40:060410408
2009/08/31(月) 11:58:13ng
: n=TOKEN (v=INT|v=FLOAT)
-> ^(PARAM $n $v)
;
ok
: n=TOKEN v=(INT|FLOAT)
-> ^(PARAM $n $v)
;
ngルールみたいな書き方はダメでしょうか?
antlrは通るのですが、C言語からそれを呼び出すと
セグメンテーションフォールトします。
0411408
2009/08/31(月) 11:59:43v=(INT|FLOAT)がNGで(v=INT|V=FLOAT)がOK.
ANTLR的にv=(INT|FLOAT)という書き方はNGなのでしょうか?
0412デフォルトの名無しさん
2009/09/06(日) 21:10:45手続き型言語作りたいんだけど
どのくらい大変なん
0413デフォルトの名無しさん
2009/09/06(日) 21:16:350414デフォルトの名無しさん
2009/09/06(日) 21:40:420415デフォルトの名無しさん
2009/09/06(日) 21:42:280416デフォルトの名無しさん
2009/09/06(日) 21:49:12なくても大差ないと思うよ
0417デフォルトの名無しさん
2009/09/06(日) 21:57:54LLで混乱しない文法なら問題ないんじゃないの?
このスレだったと思うけどμplanとかpascalの構文なら自己記述できるし
0418デフォルトの名無しさん
2009/09/06(日) 22:00:52どういうコードに落とし込むかってあたりが問題になる位で落としやすいVMを設計すれば32Kワードもありゃ言語コンパイラは書ける
UCSD p-systemとかが実際そんなものだ
案ずるより産むが易しってあたりの言語なら悩む前に書き始めてみればいい
コード公開してもいいのなら行き詰まってから助けを求めに此処に戻ってこい
0419デフォルトの名無しさん
2009/09/06(日) 22:09:00たいがいの言語ならちょいと工夫すればだいたいトップダウンパーザで書ける。
0420デフォルトの名無しさん
2009/09/06(日) 22:10:26PerlやRubyで書けば、素で描いてもまあ2週間くらいで。
0421デフォルトの名無しさん
2009/09/06(日) 23:56:560422デフォルトの名無しさん
2009/09/07(月) 00:03:580423デフォルトの名無しさん
2009/09/07(月) 00:42:090424デフォルトの名無しさん
2009/09/07(月) 12:57:23わからない単語がいっぱいでてきた
たくさんレスありがとう
>>416
そういうことです
>>418
Lispなら作れたからアルゴリズムで行き詰る事は多分無いんだけど
Lispに比べると全然ソース量が桁違いになりそうでヘタレてる・・・
>>420
2週間!!
以外と速い
頑張ってみます
0425デフォルトの名無しさん
2009/09/07(月) 20:43:590426デフォルトの名無しさん
2009/09/08(火) 07:46:380427デフォルトの名無しさん
2009/09/08(火) 10:19:06JavaとかのGC機能が前提の言語ならそんなに難しくないはず
コンパイラなら知らん
LISPのインタプリタと手続き型言語のインタプリタはつくりがまったく違うと思うけどなあ
0428デフォルトの名無しさん
2009/09/08(火) 11:44:230429デフォルトの名無しさん
2009/09/08(火) 11:57:33ただ、なぜいつまで経ってもLISP系が主要プログラミング言語にならないかの理由についても考慮すべき。
>>424
パーサー、構文木構築、構文木消化・変換、出力を順番に作って中間出力を目で確認する。
中間出力はPerlならData::Dumper、RubyならYAMLで。
この辺がC/C++ではしち面倒くさすぎてスクリプト言語でコンパイラを実装する理由。
よほど大規模なマイ言語のスクリプトを構築しない限りは速度面の不満も出ないしね。
0430デフォルトの名無しさん
2009/09/08(火) 12:03:55C++はSTLとかを使えば面倒な部分がなくなってスプリクト言語で実装するレベルにならない?
0431デフォルトの名無しさん
2009/09/08(火) 12:20:47Lispの処理系を書いたことがあるってことは、コンパイラ理論は知っているんだよな?
インタプリタ、中間コード吐いてVM上で動かす、ネイティブバイナリ吐く、
と色々パターンがあるが、基本はまず、再起下降パーサー書いて抽象構文木に
落として、実行するインタプリタを書く。それが出来たら(中間表現に落として
最適化して)コード生成。
0432デフォルトの名無しさん
2009/09/08(火) 12:33:59C++のSTLでYAML並みの読み書き柔軟性得るのにどれだけコストが必要か考えてみて。
0433デフォルトの名無しさん
2009/09/08(火) 14:11:550434デフォルトの名無しさん
2009/09/08(火) 14:19:380435デフォルトの名無しさん
2009/09/08(火) 14:33:52Pretty-printerを書いとけば十分
0436デフォルトの名無しさん
2009/09/08(火) 16:19:41シリアライゼイションを覚えたての子供ですね?
0437デフォルトの名無しさん
2009/09/08(火) 16:33:32このTOKENでDQを無視してSTRINGだけツリーパーサーで欲しいのですが…
SKIP()はセグメンテーションフォールトで落ちました.
TOKEN
: DQ STRING DQ ;
fragment
DQ : '"' ;
fragment
STRING : ( ES | ~('\\'|'"') )* ;
fragment
ES
: '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\');
0438デフォルトの名無しさん
2009/09/11(金) 21:46:52という文があった場合
BNFするとしたら、どうするのがカッコいいですか?
0439デフォルトの名無しさん
2009/09/11(金) 21:52:460440デフォルトの名無しさん
2009/09/11(金) 21:57:39ATSにする場合どうすればいいの?
0441デフォルトの名無しさん
2009/09/11(金) 22:39:180442デフォルトの名無しさん
2009/09/14(月) 19:04:290443デフォルトの名無しさん
2009/09/14(月) 20:50:35AST
AST
AST
たすけてください
0444デフォルトの名無しさん
2009/09/14(月) 20:53:290445デフォルトの名無しさん
2009/09/14(月) 21:01:21リスト(線形)でじゅうぶん。
0446デフォルトの名無しさん
2009/09/14(月) 21:02:35本当に "ADD" <NUM> "TO" <NUM> なのかでずいぶん違うよな
0447デフォルトの名無しさん
2009/09/14(月) 21:17:13なのです
その跡にFROMとかつくかもしれないのです
お願いします
0448デフォルトの名無しさん
2009/09/14(月) 21:23:580449デフォルトの名無しさん
2009/09/14(月) 21:30:25作ってみたいのです
お願いします
0450デフォルトの名無しさん
2009/09/14(月) 21:31:100451デフォルトの名無しさん
2009/09/14(月) 21:38:38COBOLみたいな構文もツリー構造じゃないから無理?
0452デフォルトの名無しさん
2009/09/14(月) 23:39:27要するに、
<式> :== <式> + <式>
とか
<文> :== <IF文> | ...
<IF文> :== "IF" <式> "THEN" <文> ("ELSIF" <文>)* ("ELSE" <文>)? "FI"
みたいな再帰的な構文があると、再帰的なデータ構造でないと
いけないわけで、木が必要になる。
アセンブラみたいなのだったらリスト(線形)で十分。
SQLってどうなの? 識者求む。
0453デフォルトの名無しさん
2009/09/15(火) 02:07:23ところで、ORACLEのマニュアルにある図ってなんって言ったっけ?
BNFが図になってる奴。
0454デフォルトの名無しさん
2009/09/15(火) 03:14:360455デフォルトの名無しさん
2009/09/15(火) 10:36:28Factor ::= Num | "(" Expression ")"
Num ::= "0".."9"+
かもしれん。
これならツリーになる?
0456デフォルトの名無しさん
2009/09/15(火) 10:49:330457デフォルトの名無しさん
2009/09/15(火) 11:25:21その構文のインスタンスはツリーに出来る。
その構文そのものは再帰があってDAGになる。
0458デフォルトの名無しさん
2009/09/17(木) 02:22:52・字句解析=Chain Of Responsibility
・構文解析=Interpreter
のように作っていてうまくいっているのですが、
意味解析はどのパターンを使えばいいでしょうか?
どこかのサイトでVisitorを使うとか見たような気がするのですが。
0459デフォルトの名無しさん
2009/09/17(木) 08:28:50先に仕様があってそれから設計を施していくわけで、
手段と目的を混同しちゃいかん。
誰も君のコンパイラの設計がどうなってるのかなんて知らんだろ。
0460デフォルトの名無しさん
2009/09/17(木) 09:34:27手続き型言語の場合, パーサジェネレータ使った方が
早い処理系ができるだろうに………
0461デフォルトの名無しさん
2009/09/17(木) 10:02:39それは文法によるだろう。
言語処理系の書きやすさを第一に考えて言語を設計した場合、
手書きの再帰下降パーサでも十二分な速度が出ることはD言語などで実証されている。
0462デフォルトの名無しさん
2009/09/17(木) 10:08:28どういう設計なのか知らんがVisitorとInterpreterは相互変換できるからどっちかに統一するべき
0463デフォルトの名無しさん
2009/09/17(木) 12:13:30手書きパーサが不利で、パーサジェネレータが有利なのは以下のような点。
・構文規則とアクションがすっきり分離させて記述できる
・LL(1) に収まらない文法を記述するためのテクニックに煩わされない
・規則をあれこれ変更するのが簡単
あと現代的なテクニックをかじりたいならパーサコンビネータライブラリとか使ってみたら?
0464デフォルトの名無しさん
2009/09/17(木) 17:32:14電卓の次に思い浮かぶ使い道がコンパイラとかインタプリタになってしまう。
その間ぐらいで、手ごろな練習のネタって無いものかなぁ?
0465デフォルトの名無しさん
2009/09/17(木) 18:49:33発想の出発点を見直せば、その人なりのネタは見つけられると思うけどね。
自分だと、最近はRubyでツール作りする機会が多いから、そのコマンド引数
(サブコマンドやオプション指定の組み合わせ)を解釈するのにRaccを使うことがある。
他にも差分記述のある知識表現にPrologのDCGで簡単なDSL(ドメイン固有言語)を作ってみたり、
同じ発想で差分記述のできるテストデータ記述言語をRaccで記述したり。
極端な例だと、Webアプリのプロトタイプ開発で、画面遷移を制御するためにyaccを使い、
画面(フォーム)定義言語もyaccで実装するというマニアックな設計をしたことも。
要は「パーサ」イコール「言語処理系」という思い込みを捨て、単なる再帰的な
データ構造の処理に適した「道具」にすぎないと考えれるのがいいのではないかと思う。
0466デフォルトの名無しさん
2009/09/17(木) 18:52:17オレだったらそういう用途の処理用データはXMLやらYAMLやらで定義ちゃうだろうな。
0467デフォルトの名無しさん
2009/09/17(木) 19:15:33おまえUNIX板のyacc&lexスレの>>120だろ
0468デフォルトの名無しさん
2009/09/17(木) 20:08:43・ ラムダ式の使える関数電卓
・ 文字列がメールアドレスとして正しいかチェックするプログラム(コメントのネストにも対応)
・ 装飾をネストできる独自Wiki
・ テンプレートエンジン
0469465
2009/09/17(木) 20:21:28最初は同じ事を考えていたんだ。でも、自分一人で作る/使うぶんにはいいんだけど、
他のメンバが使う/使わせることを考えると、エラー処理(構文検査)も考えなけりゃならない。
XMLならDTDやRELAX-NG、YAMLならKawflyみたいなスキーマ定義が必要になる。
そこまでするくらいなら、汎用パーザを使うのがいいんじゃないかと、最終的に判断した。
パーザで適切な構文木さえ構築してしまえば、あとはVisitorパターンを駆使することで、
XMLでもYAMLでも(Latexでも....)出力形式の切り替えは簡単な処理で実現できるからね。
>>467
あたり
0470デフォルトの名無しさん
2009/09/17(木) 21:00:25なるほど、使い道としては面白いですね。ちょうど今、コマンドライン解析のあたりやってるし。
でも、勉強としてやってるんで、これが正解ってのがあるほうがいいです。
仕様も自分で考えるんだと、パースしやすいような仕様にしてしまうんで。
>>468
メールアドレスって、[email protected]だけじゃなく、"foo" <[email protected]>, …のほうですよね。
それはやりがいがありそうなネタですね。
0471デフォルトの名無しさん
2009/09/17(木) 21:10:01・PCRE(Perl 5 Compatible Regular Expression Library)の正規表現のパーズ。
・POSIX shellの文法のパーズ。
0472デフォルトの名無しさん
2009/09/17(木) 23:33:28Interpreterパターンって構文解析の為のパターンじゃないの?
0473デフォルトの名無しさん
2009/09/17(木) 23:39:58ASTをそのまま実行するパターンだよ
あらかじめ構文解析を行ってASTを作っておく必要がある
0474デフォルトの名無しさん
2009/09/19(土) 03:37:23ウィキペディアには
Interpreter パターン = 構文解析のために、文法規則を反映するクラス構造を作る。
って書いてあるんだけど。
0475デフォルトの名無しさん
2009/09/19(土) 04:51:050476デフォルトの名無しさん
2009/09/19(土) 05:27:58あらかじめ構文規則に沿ってオブジェクトを配置する必要があるのは事実だけど、
それは構文解析とは別の話しだし、(yaccみたいな)パーザジェネレータも同じだから。(>>473)
最近はデザインパターンから入る若者が多いから、ごっちゃにして考えやすいけどね。
まあ、デーザインパターンなんて大層なもんじゃないという意見に同意するよ。(>>775)
0477デフォルトの名無しさん
2009/09/19(土) 06:03:46君はたぶんいろいろと間違って理解してるからGOF本をしっかり読みなおした方がいいよ
確かにデザインパターンは大層なものじゃないとは思うが、間違った理解は周りの人を
混乱させてむしろ害悪だから
0478デフォルトの名無しさん
2009/09/19(土) 06:12:44具体的にドゾー
0479デフォルトの名無しさん
2009/09/19(土) 06:44:13>VisitorとInterpreterは相互変換できる
できない
VisitorとInterpreterでは全く目的が異なる
>InterpreterはASTのノードに自分自身と子の評価を行う処理を直接埋め込むことで
>ASTをそのまま実行するパターンだよ
処理を直接埋め込むこと、そのまま実行することは必須ではない
(GOF本「実装」欄の2.を参照)
>あらかじめ構文解析を行ってASTを作っておく必要がある
ASTの生成方法までは定義されていないが、Interpreterパターンと言った場合、
(ASTを生成する)Clientオブジェクトもパターンの構成要素に含めて考える方が一般的
(GOF本「構成要素」欄と「実装」欄の1.を参照)
0480476,478
2009/09/19(土) 07:03:29自分は>>462,473じゃないヨ
>>479
まったく、その通りだね
ところで、GOF本のアレをInterpreterパターンと呼ぶのはどう思うかな?>>all
自分にはインタプリタという言葉のニュアンスから違和感があるんだけど
と、スレらしい話題に戻してみる
0481デフォルトの名無しさん
2009/09/19(土) 13:20:31ASTインスタンスの生成を行うのは、interpreter patternの仕事だけど、
(ASTインスタンス生成は解釈の特殊な形態の一つ)
parsingそのものはInterpreter patternの仕事じゃない。
単純な例だと一体化しているので、混同しているケースが結構多い。
日本語版wikipediaの記述がその例。(これは古い英語版を元にしている)
GoFより
> The pattern doesn't address parsing. When the grammar is very complex,
> other techniques (such as a parser) are more appropriate.
0482デフォルトの名無しさん
2009/09/19(土) 18:12:250483デフォルトの名無しさん
2009/09/19(土) 18:24:39訂正してくれてるだけでしょ?
0484デフォルトの名無しさん
2009/09/19(土) 20:17:370485デフォルトの名無しさん
2009/09/23(水) 08:13:49同じものですか?
0486デフォルトの名無しさん
2009/09/23(水) 08:33:39正規表現は形式言語の一種である、という解釈でだいたい合っていると思う。
C言語はプログラミング言語の一種である、と同じ解釈ね。
あと、そういう言い方をするなら、正規表現ではなく正規言語だろうね。
0487デフォルトの名無しさん
2009/09/23(水) 08:48:280488デフォルトの名無しさん
2009/09/23(水) 09:02:34コンパイラの理論の基になっているのは生成文法なんですか?
もし、チョムスキーが生成文法を発表しなかった世界があったら
その世界で使われているコンパイラはどんな物だと思いますか?
COBOLとFORTRUNとlispですか?
0489デフォルトの名無しさん
2009/09/23(水) 09:11:110490デフォルトの名無しさん
2009/09/23(水) 10:16:49周囲に変なことを吹き込む人がいるか
釣りか
なんにせよ調べる気はあるまい
0491デフォルトの名無しさん
2009/09/23(水) 10:20:380492デフォルトの名無しさん
2009/09/23(水) 10:22:29じゃないの?
本やネットってゴミ情報が多すぎて
知りたい情報にたどりつくまで
手間と時間がかかりすぎるからさ
知ってる人にズバリ答えてもらうのが一番なのよ
0493デフォルトの名無しさん
2009/09/23(水) 10:36:03必死になって文献を読みあさっていた、過去の自分を思い出すw
0494デフォルトの名無しさん
2009/09/23(水) 11:51:45strlen()が'\0'にたどりつくまで
手間と時間がかかりすぎる
って話を思い出した
0495デフォルトの名無しさん
2009/09/23(水) 15:01:14自分で勉強するつもりが無いのならこんなスレ覗くなボケ
ttp://www.bing.com/search?q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%81%A8%E6%AD%A3%E8%A6%8F%E8%A8%80%E8%AA%9E%E3%81%A8%E6%AD%A3%E8%A6%8F%E6%96%87%E6%B3%95&FORM=ADDLVD&src=
ttp://www.google.co.jp/search?q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%81%A8%E6%AD%A3%E8%A6%8F%E8%A8%80%E8%AA%9E%E3%81%A8%E6%AD%A3%E8%A6%8F%E6%96%87%E6%B3%95&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
0496デフォルトの名無しさん
2009/09/23(水) 15:05:34チョムスキーが発表しなくても、同様の概念(TMとか再帰とか翻訳とか形式体系とか)はあるから
結局は同じようなものに落ち着くような気がする。
0497デフォルトの名無しさん
2009/09/23(水) 15:43:240498デフォルトの名無しさん
2009/09/23(水) 15:56:410499デフォルトの名無しさん
2009/09/23(水) 16:02:390500デフォルトの名無しさん
2009/09/23(水) 16:06:520501デフォルトの名無しさん
2009/09/23(水) 17:21:39ソースコード → 字句解析 → トークンリスト → 構文解析 → 構文木
トークンリストはトークンクラスのリストと表せますが、
構文木はどのような形になると思いますか?
0502デフォルトの名無しさん
2009/09/23(水) 17:36:260503デフォルトの名無しさん
2009/09/23(水) 17:38:260504デフォルトの名無しさん
2009/09/23(水) 17:45:32昔インド人の先生に尋ねたら俺の耳にはパニニーと聞こえたが。
てかBNFはバッカス(と、本人はあまり乗り気でないようだがナウア)の功績だろ一応はやっぱ。
0505デフォルトの名無しさん
2009/09/23(水) 20:01:100506デフォルトの名無しさん
2009/09/24(木) 00:29:140507デフォルトの名無しさん
2009/09/24(木) 00:35:57インド人と言っても様々だ
が、日本人がインド人の発音を聴き取るのは慣れないと無理
驚くというか途方に暮れるぞ
0508デフォルトの名無しさん
2009/09/24(木) 01:41:420509デフォルトの名無しさん
2009/09/24(木) 02:38:16そこでインド人を右へ
0510デフォルトの名無しさん
2009/09/24(木) 05:56:310511デフォルトの名無しさん
2009/09/24(木) 14:00:01ザンギュラのスーパーウリアッ上
でした
0512デフォルトの名無しさん
2009/09/24(木) 14:23:330513デフォルトの名無しさん
2009/09/25(金) 20:00:42中学生の息子の机に数学のノートが開いていた。
なんと、数式にビックリマークを付けて遊んでいた。
出てくる数字はほとんどが1桁の整数のかけ算。
しかも答が間違ってる。
小学校の九九の復習にもなってない。
本当に嘆かわしい...。
0514デフォルトの名無しさん
2009/09/25(金) 20:16:35ゆとり教育でなければ九九ができるようになるはずだという発想がすでにおかしい
人任せにしてないで、自分で教えてあげたら?
多分、どっかでつまずいてそのままになってるんだと思うよ。
0515デフォルトの名無しさん
2009/09/25(金) 20:22:54ネタにマジレス、カコワルイ。
ここは息子インタプリタが自然数の階乗をパースして計算していると考えるんだ。
0516デフォルトの名無しさん
2009/09/25(金) 21:06:420517デフォルトの名無しさん
2009/09/25(金) 22:11:00九九じゃなくて二五六二五六やらせるべき
0518デフォルトの名無しさん
2009/09/25(金) 22:30:373!×5!=720
0519デフォルトの名無しさん
2009/09/25(金) 22:40:000520デフォルトの名無しさん
2009/09/25(金) 22:40:490521デフォルトの名無しさん
2009/09/26(土) 00:53:30解剖されたカエルには誰も興味を示さないし、カエルは死ぬ」
0522デフォルトの名無しさん
2009/09/26(土) 01:15:17説得力のある文体に騙されそうになるけど
0523デフォルトの名無しさん
2009/09/26(土) 01:25:100524デフォルトの名無しさん
2009/09/26(土) 08:36:520525デフォルトの名無しさん
2009/09/26(土) 23:45:56[0-9]{1,16}
ってどうやって書けばいいの?
0526デフォルトの名無しさん
2009/09/27(日) 04:32:51有名な研究室ってどこ?
0527デフォルトの名無しさん
2009/09/27(日) 09:31:33コンパイラ site:ac.jp で検索してみるとか。
0528デフォルトの名無しさん
2009/10/01(木) 23:19:37今月末に出るけど
0529デフォルトの名無しさん
2009/10/02(金) 20:43:42自分で買ってきて報告しろやヴぉけ
0530デフォルトの名無しさん
2009/10/02(金) 22:48:49どうよ?厨はいつだって人から貰うだけ
0531デフォルトの名無しさん
2009/10/03(土) 00:06:040532デフォルトの名無しさん
2009/10/03(土) 00:14:320533デフォルトの名無しさん
2009/10/03(土) 05:55:580534デフォルトの名無しさん
2009/10/03(土) 07:23:00されるよ?厨はいつだって人から貰うだけ
0535デフォルトの名無しさん
2009/10/03(土) 12:42:47フリーのプロトコルコンパイラ知りませんか?
0536デフォルトの名無しさん
2009/10/03(土) 14:04:03いいのかい?ホイホイ突いちまって
0537デフォルトの名無しさん
2009/10/03(土) 14:39:57preccsのドコが腐っていると感じたのかな?
自分は初見だったのでググってみて、CSPというかOccamの実装という印象を持った。
そのうえで、予想される「腐って」いそうな点をあげてみる。(実際には触っていないヨ)
・コンパイラの実装がバグだらけ
・マルチスレッディングに対応していない
・デバッグが難しい
・プロトコル記述(状態遷移)が直感的ではない
・メッセージ処理機能が不十分
・プロトコル定義の網羅性に欠ける
あと、このスレよりもネットワークプログラミングスレ向きな話題かも。
このスレだと「自分の好みに合ったコンパイラを作れ!」なレスが中心になってしまう気がする。
0538デフォルトの名無しさん
2009/10/04(日) 04:03:23コンパイラですらない
インタプリタでもない
0539デフォルトの名無しさん
2009/10/04(日) 10:59:490540デフォルトの名無しさん
2009/10/05(月) 13:04:03自作のスクリプトでそのコマンドを呼び出すという仕組みで処理系を構築してる。
すでにある程度動いてるんだが、
現状手動で作成してるコマンドの一覧をPythonのプログラム側からどうやって吐き出そうかなと考えているところ。
sed/awkあたりで簡単に切り貼りできるような形式を用意できるといいかなぁ。
できればコマンドのマニュアルも一緒に生成できるといいんだが。
現在固定になってるコマンド一覧は実際にはXMLファイルで、
コンパイラがデシリアライズの形で一括で読み込める仕組みにしている。
XMLを手作業で編集するのはしんどいので、シリアライズで書き出す簡単なプログラムを用意して、それを毎回手で編集してる。
0541デフォルトの名無しさん
2009/10/05(月) 13:38:45JavaDocみたいに定型のコメントを書くのはどうですか?
0542デフォルトの名無しさん
2009/10/05(月) 14:02:580543デフォルトの名無しさん
2009/10/06(火) 12:51:07Pugsが出てからずいぶん経つのにPerl6まだ出ない
0544デフォルトの名無しさん
2009/10/06(火) 13:45:27そんな漠然としたレベルの話だと、好みでとしかいいようがないんじゃ。
ただ、Haskellの論理的な記述能力は空恐ろしいものがあるな。
例えばYAMLパーサのリファレンス実装はHaskell製だ。
HTMLの仕様書用意されてはいるが仕様の詳細までは網羅されておらず、参考程度にしかならない。
で、ソースコードみてみたら、ほとんどBNF式そのまんま。
これをネイティブで解釈するんかHaskellは……。
0545デフォルトの名無しさん
2009/10/06(火) 13:51:06パーザ以外の部分は知らん
0546デフォルトの名無しさん
2009/10/06(火) 22:35:37優先順位を付けて。それが例えinfixでも。
出来る奴が書いたコードの記述力は破壊的。
Parser Combinatorの発明は、奴等ならではだろう。
0547デフォルトの名無しさん
2009/10/06(火) 22:44:43> Haskellは新しく演算子をユーザ定義できるからな。
> 優先順位を付けて。それが例えinfixでも。
それPrologでもできるよ。何十年も前から
0548デフォルトの名無しさん
2009/10/06(火) 23:00:45単純にパーザ記述の容易さを比較するならPrologに軍配があがる。
0549デフォルトの名無しさん
2009/10/07(水) 01:01:43そのままLISPの処理系速度で実行できるし
0550デフォルトの名無しさん
2009/10/07(水) 06:15:440551デフォルトの名無しさん
2009/10/07(水) 07:25:050552デフォルトの名無しさん
2009/10/07(水) 07:28:15ほかは糞
0553デフォルトの名無しさん
2009/10/07(水) 08:38:22こんどはOcamlでスクリプティングやってみるかなぁ。
静的型付言語の割りにコンパイラが賢いので
人間はあまり型を気にする必要がないというところがよさげだな。
0554デフォルトの名無しさん
2009/10/07(水) 10:28:43DCGはいいものだったけど、
元になっているPrologが独自すぎて流行らなかったな。
一時はちょっとややこしい構文解析はDCGの独壇場だったのに。
0555デフォルトの名無しさん
2009/10/07(水) 13:25:28スレ違いになるけど、Prologがブームだった頃「PrologはAI言語である」みたいな解釈の
説明が多かったため、AIブームの終焉と一緒にPrologへの関心も冷めてしまったように
感じてる。Prologなんて記号処理言語の一つで、「道具」にしかすぎないはずなのに。
DCGが自然言語研究の中から生まれたのは事実だけど、パーザ記述向けの「道具」として、
今でも有効に活用できるものだと思う。固定観念さえ捨てることができれば....。
とりあえず、Prologによるコンパイラ開発に興味を持った人向けに書籍を紹介する。
・Prologの技芸, L.Sterling&E.Sharpiro著, 共立出版
Prolog中級者向けの内容で、全体で557ページ、DCGには12ページ、コンパイラ(構文解析/
コード生成/アセンブラ)に関しては24ページが割り当てられている。
0556デフォルトの名無しさん
2009/10/07(水) 13:50:43載ってるウェブページあったなぁ。
0557デフォルトの名無しさん
2009/10/07(水) 18:58:110558デフォルトの名無しさん
2009/10/07(水) 23:58:17スークリですね解ります。
0559デフォルトの名無しさん
2009/10/08(木) 09:23:150560デフォルトの名無しさん
2009/10/08(木) 09:24:400561デフォルトの名無しさん
2009/10/09(金) 11:08:270562デフォルトの名無しさん
2009/10/12(月) 19:10:260563デフォルトの名無しさん
2009/10/12(月) 20:32:29良書かどうかは分からないけど、とりあえず手持ちの書籍を紹介。
・lex & yacc, John R,Levine他共著, アスキー出版局(O'Reilly本)
この本ではCUI向けのメニュー生成言語、言い換えるとCUI向けメニュー生成処理に特化した
DSLの開発手法が紹介されている。 本全体が429ページで、そのうち33ページがDSL。
あるいは設計しようとしているDSLの適用分野(ドメイン)が明確になっていて、
それをここで提示できるのなら、その分野における類似したDSLを紹介したり、
その類似DSLに関する書籍を紹介したりすることができるかもしれない。
もし適用分野が明確ではなく、一般的なDSL設計技術を勉強したいという話であれば、
残念だけど「一般コンピュータ言語設計論」みたいな題名の抽象的で難解な書籍を
探すしかないと思う。自分は紹介できないや。
ただし、発想を変える事で参考になるやり方もある。
最近ではXMLで様々なデータやルールといった情報を表現することが
普通に行われていると思うけど、そのXMLで表現するタグ構成というのは、
目的とする分野に特化したDSLの一種であると考えることもできる。
だから「XML文書設計法」みたいな題名の書籍を読むことが、参考になるかもしれない。
# ほとんど参考にできるレスじゃなくてゴメソ
# あるいは、推薦図書/必読書のためのスレで質問してもいいのでは?
0564デフォルトの名無しさん
2009/10/12(月) 20:42:01いずれ書籍になる予定
http://martinfowler.com/dslwip/
0565デフォルトの名無しさん
2009/10/12(月) 20:50:00http://martinfowler.com/dslwip/
http://github.com/nealford/presentations
http://homepages.cwi.nl/~arie/papers/dslbib/
どうもっすこの辺ちょっと読んできます。
0566563
2009/10/13(火) 10:06:24DSLという用語だったのね。このスレでの質問だったから、
てっきりパーザでミニ言語を作りたいのだと思い込んでしまったぜ。
漏れは釣られたのか?....orz
0567デフォルトの名無しさん
2009/10/13(火) 10:18:50何を言い出すのだお前は?
0568デフォルトの名無しさん
2009/10/13(火) 10:19:51baka
0569デフォルトの名無しさん
2009/10/13(火) 10:44:070570デフォルトの名無しさん
2009/10/13(火) 17:52:37internal DSLとexternal DSLと呼び分けるのが一般的かと
0571デフォルトの名無しさん
2009/10/14(水) 19:30:41マーチン・ファウラーがいうDSLを実装するにも、
lex&yaccは必要になることがある。
0572デフォルトの名無しさん
2009/10/14(水) 19:39:160573デフォルトの名無しさん
2009/10/14(水) 21:16:500574デフォルトの名無しさん
2009/10/14(水) 23:12:14俺言語でS式&逆ポーランド&三項演算子というのをやったことあるけど、なかなか良い感じだった。
0575デフォルトの名無しさん
2009/10/14(水) 23:26:02と
(x 2 ^ 3 x * + 4 +)
あなたはどっちが好きですか
0576デフォルトの名無しさん
2009/10/15(木) 00:09:22俺言語だとこんな感じかね
x 2 ..pow 3 x ..multi ..plus 4 ..plus
0577デフォルトの名無しさん
2009/10/15(木) 00:15:34自分用・ギーク向け・趣味用途ならS式でも逆ポーランドでもいいけど
スーツ/エンドユーザー向け・パッケージソフトだったりすると流石に無謀だろ。
0578デフォルトの名無しさん
2009/10/15(木) 04:29:11(x + 3) * x + 4
0579デフォルトの名無しさん
2009/10/15(木) 04:30:180580デフォルトの名無しさん
2009/10/15(木) 20:27:14引数の数を演算子の前のドットの数で表してるんですね。
それって >>576 氏の発明ですか?それともそういった処理系がありますか?
0581デフォルトの名無しさん
2009/10/15(木) 21:52:050582デフォルトの名無しさん
2009/10/16(金) 00:18:11前後逆か?
.*で不定長引数とか
0583デフォルトの名無しさん
2009/10/16(金) 00:19:400584576
2009/10/16(金) 01:17:54俺の発案。forth系なんて流行ってないから誰もこんなこと考えないって。
コロンも活用すればそこそこ大きな引数でも使えるから実用的だよ。
.one ..two .:three ..:four
こういうのもWordレベルで一意になるから解析が楽チン。
4 3 2 1 ..sum // 3
4 3 2 1 .:sum // 6
4 3 2 1 ..:sum //10
0585576
2009/10/16(金) 01:27:49それは考えた。Wordレベルで一意になるから良さげだった。
…………普通はデフォルトの戻り値で十分なので後ろピリオドは要らないけど。
他にもこんなことを実装したんだけど、プロセス実行をどうするか考えているので実装は進んでない。
..func //デフォルトの戻り値
..func: //戻り値2つ
..func:. //戻り値3つ
..func[] //戻り値無し(廃棄)
..func[0] //配列型戻り値(全体)
..func[1] //配列型戻り値の1番目を返す
..func[-1] //引数を返す
0586デフォルトの名無しさん
2009/10/16(金) 02:04:29あんまり突っ込むのも無粋だが、
.2sum とか .8sum とかの方が
見やすくて短くて解析も楽な気がしねぇ?
0587576
2009/10/16(金) 02:23:54個人的にはwordの中に数字が入るのが嫌なんでね…………
0588デフォルトの名無しさん
2009/10/16(金) 08:36:34階乗とかfib関数作るところまでで、たいてい飽きるの俺法則
0589デフォルトの名無しさん
2009/10/16(金) 14:07:02そうでしたか。 >>576 氏は天才だと思います。
FORTHみたいな言語を自作するときは参考にさせてもらいます。
0590デフォルトの名無しさん
2009/10/16(金) 18:34:44昔のFORTRANの文字列(5HHELLO とか)みたいでなんかヤだなぁ。
Verilogのビット幅指定がそうなんだけど。
0591デフォルトの名無しさん
2009/10/17(土) 12:19:17聞いたことも、無かったけど、自分で、思いついてた、、、
0592デフォルトの名無しさん
2009/10/17(土) 13:23:530593デフォルトの名無しさん
2009/10/17(土) 13:55:45変なことを考える中学生に今少し学問があれば
0594デフォルトの名無しさん
2009/10/17(土) 14:01:40「お前が思いつくようなことは、すでに誰かが思いついてる」
ベッコアメの社長が親父に言われたんだったかな?
大昔に見た記事だから忘れたけど
0595デフォルトの名無しさん
2009/10/17(土) 15:25:19しかし思いついたことを実現まで持っていく奴はなかなかいなくて、大抵
思いついた数年後に世の中のどこかからそれを実現させた会社がでてくる。
0596デフォルトの名無しさん
2009/10/18(日) 00:19:130597デフォルトの名無しさん
2009/10/18(日) 11:29:402から3を引く
3を2から引く
どちらも日本語として自然ですが、RPNとしてはどちらかが間違いですよね?
一見そう見えるというだけだと思います。
0598デフォルトの名無しさん
2009/10/18(日) 11:37:482から3を引く --> -1
3を2から引く --> 1
どちらもRPNとして正しいと思うが?
0599デフォルトの名無しさん
2009/10/18(日) 11:38:57それは機能語である助詞の機能によって、
語順が変えられるのだとすぐ気づくだろう。
0600デフォルトの名無しさん
2009/10/18(日) 12:07:45おい
0601デフォルトの名無しさん
2009/10/18(日) 12:11:40>3を2から引く
これは日本語として自然か?
漏れにはえらく不自然に見えるが....。
逆にRPN(Forth系言語)なら "から" を減算元属性付加、"を" を減算先属性付加という
ワードであると考え、ワード "引く" ではスタック上の属性値を参照することで、
演算対象値を決定できる。これなら3と2が逆でもオケー。以下は例。
3 :スタックに3をPUSH
を :スタックの先頭値に演算先属性を付加
2 :スタックに2をPUSH
から :スタックの先頭値に演算元属性を付加
引く :スタックから値を2個POPし、減算子(演算元値 - 演算先値)を評価して、結果をPUSH
0603デフォルトの名無しさん
2009/10/18(日) 16:24:140604デフォルトの名無しさん
2009/10/18(日) 21:56:46Java上で動くスクリプトエンジンを作ろうと思ったのですが、
・・何から始めたらいいんでしょうか。
スクリプトに使う言語はLuaにしようと思っています。
0605デフォルトの名無しさん
2009/10/18(日) 22:23:290606デフォルトの名無しさん
2009/10/18(日) 22:59:000607デフォルトの名無しさん
2009/10/18(日) 23:01:28おいおいおい、日本語が逆ポーランドの構造しか持っていないなんて言ってないぜ。
日本語の特徴の一つ(述語を中心とした後置型)が逆ポーランドに似ているということだよ。
〜して、〜して、〜して、……。といった感じでだらだら続けられるのも日本語の特徴だよな。
そういや、各国の言葉の特徴をイラストにしたのがあったな。日本は渦巻だっけ?
0608デフォルトの名無しさん
2009/10/19(月) 10:57:43逆ポーランド記法から夢が膨らむネット言語学者乙
英語でもできるし、日本語よりもっと簡単なぐらいだ。
新聞などではさすがに極端なのはないが
小説でも眺めてみるとよい。
見るからに馬鹿そうな著者を選ぶのがポイント。
0609デフォルトの名無しさん
2009/10/19(月) 11:05:220610デフォルトの名無しさん
2009/10/19(月) 12:57:180611デフォルトの名無しさん
2009/10/20(火) 02:04:38日本語よりも柔軟に組めるの?
0612デフォルトの名無しさん
2009/10/24(土) 13:47:52日本語で曖昧さがなく読みやすい長い文を書くのには
読点の使い方や語順を工夫したりとか技術がいる
0613デフォルトの名無しさん
2009/10/24(土) 15:33:340614デフォルトの名無しさん
2009/10/24(土) 20:47:50西洋人にとってのラテン語にあたるものが日本で学ぶ漢文なのよ(割とマジで)
0615デフォルトの名無しさん
2009/10/24(土) 20:47:560616デフォルトの名無しさん
2009/10/24(土) 23:22:44いや漢文じゃなくて古文の方だろjk
0617デフォルトの名無しさん
2009/10/24(土) 23:32:570618デフォルトの名無しさん
2009/10/24(土) 23:46:080619デフォルトの名無しさん
2009/10/25(日) 08:19:24漢文です。ていうか常識ないなおまい
0620デフォルトの名無しさん
2009/10/25(日) 12:52:170621デフォルトの名無しさん
2009/10/25(日) 13:10:32北部ヨーロッパだと別の民族の言葉だな。
0622デフォルトの名無しさん
2009/11/02(月) 20:00:31どっちもドンラーポとしては正常だよね。
0623デフォルトの名無しさん
2009/11/03(火) 12:31:290624デフォルトの名無しさん
2009/11/06(金) 11:41:090625デフォルトの名無しさん
2009/11/06(金) 12:25:59冗談はともかくとして、とりあえず Racc 使い方、で検索するとか。
先頭に出てくるページは、今なんか落ちてるようだが。
ていうか言語内DSLじゃダメなの?
0626624
2009/11/06(金) 13:27:03”Rubyを256倍使うための本 無道編”というraccの解説本がありましたが絶版でした。
どこかに良い資料はないでしょうか。
最終的には俺言語、俺コンパイラ、俺VMが作りたいです。
0627デフォルトの名無しさん
2009/11/06(金) 13:44:05ttp://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
0628デフォルトの名無しさん
2009/11/06(金) 14:10:12ネットで見つかる資料でとりあえずいいと思うんだけど。
0629デフォルトの名無しさん
2009/11/06(金) 14:36:41早く2部を作ってくれ。
KENJIの独り言 ttp://www.ne.jp/asahi/kenji/pda/
0630デフォルトの名無しさん
2009/11/06(金) 15:39:48...ゲームスクリプトエンジンとして、インタプリタがセーブ・ロードをサポートする所の考察は面白いが。
アセンブラのような文法(ベタッとした、入れ子になった構造がない言語)なら、
それでも構わないけど、どうやら if や式に現れる入れ子構造をどうやって処理したら
いいか、わからなくって手詰まりになっちゃったんじゃないかな?
> もし、複雑な物を使いたい場合、
> スクリプトコンパイラを使うに乗っている拙作の acc.exe を使うか、lexとyaccで作った方が良いと思います。
と本人が言ってるように、yaccも使わないし、再帰降下パーザを手で書くわけでもなく、
シンプルに済ませたいなら、if や while なんかの入れ子なんぞもっての他、
式も (1 + 2) * (3 + 4) なんて複雑な式はきっぱりあきらめる、と。
それくらい割りきらないとダメっつーか。
まぁ昔のFORTRANや、BASICインタプリタは、なんだかんだのテクニックを使って、
そういうのを実装してたわけなんだけどさ。
0631デフォルトの名無しさん
2009/11/06(金) 16:43:44変数名を(固定プリフィクス+数字)の形でしか表せないように見える。
管理するの大変そうだ。
0632デフォルトの名無しさん
2009/11/06(金) 17:29:15MASMライクな#macroの2種類があり、もちろん様々な条件コンパイルも出来、
最終的にプリプロセッサは、式(逆ポーランド)と
DD,DW,DB,stringにスクリプトを解析してコンパイラに渡す。
よって、プリプロセッサの大きさに比べてコンパイラの大きさは小さい。
そして強力な文字置換により、文字セットもプリプロセッサ時、コンパイル時、実行時の3段階で解決される。
本人曰く、
21年プログラマやってて、13年同じシステムを使ってるって
と書かれてるから、さすがにそんなチープな物じゃないんじゃない?
しかし、カナ入力なんてじじいかよw
0633デフォルトの名無しさん
2009/11/06(金) 17:33:360634デフォルトの名無しさん
2009/11/06(金) 18:10:460635デフォルトの名無しさん
2009/11/06(金) 18:25:090636デフォルトの名無しさん
2009/11/06(金) 18:55:05> 管理するの大変そうだ。
アルファベット2文字とかそういう制限ならわかるけど、
わざわざそんな制限つけるとか考え辛いし、そういう名前で変数を管理する
世界にいる、ないしそういう環境で学んだ人ってことなんじゃないかな?
ドラゴンブックと中田先生の本(どれ? 厚い奴薄い奴ペーパーバックの奴と
いろいろあるけど)って、結構わかってるじゃないかw
一昔前なら市販品だったようなレベルのCコンパイラだって書けるぞ。
つまり >>629 のコンテンツは覚醒前に書いたっつーことかね。
ぜひ今の知識とノウハウを注ぎ込んで書き直していただきたい。
masmのマクロって俺よく知らないんだよな。構造化アセンブラみたいな記述が
できるようになるマクロセットを作れたりとか結構すごいらしいんだけど。
0637デフォルトの名無しさん
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命令などの呼び出しが必用になり、
ゲームシステムとしては使い物になりません。
式関連は最適化もしています。
コンパイラ自体は以上の実装なので、
ウチで作った携帯電話用のゲームシステム等ともマクロを変えて併用しています。
0638デフォルトの名無しさん
2009/11/06(金) 19:48:09#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:
0639デフォルトの名無しさん
2009/11/06(金) 19:49:13#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:
0640デフォルトの名無しさん
2009/11/06(金) 19:50:27#popnum localcase
#define local0 "if_{localn}_{localcase}"
#unstr local0
local0:
local1:
#else
#error end文の対応が異常です
#endif
#endm
0641デフォルトの名無しさん
2009/11/06(金) 19:55:12ttp://www.ne.jp/asahi/kenji/pda/
の2部以上の物を作っているみたい。
マクロで言語を作るのって、意味あるんかい
と思ったら、携帯電話へも流用してるのね。
面白いアプローチだ。
0642デフォルトの名無しさん
2009/11/06(金) 20:02:19複雑な構文をマクロに委ねるってアプローチはありだと思うけど
括弧はイヤだ
0643デフォルトの名無しさん
2009/11/06(金) 20:05:24> ドラゴンブックと中田先生の本(どれ? 厚い奴薄い奴ペーパーバックの奴と
> いろいろあるけど)って、結構わかってるじゃないかw
> 一昔前なら市販品だったようなレベルのCコンパイラだって書けるぞ。
かなり古くさいスタイルの仕様、実装になってしまっていることと、
概論で終わっているような本を参考文献に挙げることは、対応していると思う。
0644デフォルトの名無しさん
2009/11/06(金) 20:06:36みんな理解できるのか?
だったとしたら、みんなが普通で俺がバカと言うことになるw
0645デフォルトの名無しさん
2009/11/06(金) 20:12:30ほう、そうなのか。
しかしこの仕様なら、リンカさえ作れば色々なCPUの実行型を作れて面白そうだな。
>>643
関数型言語みたいだね。現代のoopには対応できないのかね。
まーエロゲのスクリプトみたいだからこれでもオーバースペックだよな。
0646デフォルトの名無しさん
2009/11/06(金) 20:16:26中間スクリプターは地獄だな。
多分本人が作ってるんだろうけど。
0647デフォルトの名無しさん
2009/11/06(金) 20:31:07確かにlisp的だ
0648デフォルトの名無しさん
2009/11/06(金) 20:46:570649デフォルトの名無しさん
2009/11/06(金) 20:56:54の言うとおりoopではない。
言語仕様としては古くさいのでは?
しかし、ゲームのシナリオを入力するだけの物にoopは必要ない。
携帯電話のゲームにも流用しているみたいだから
この人の場合は>>643の言うことは見当外れで>>647の言うことが正しい。
0650デフォルトの名無しさん
2009/11/06(金) 20:58:15気に障ったか、ならば言い換えよう
マク…モゴモゴ テンプレートさえ作ればいくらでもメタ言語を拡張出来る
確かにC++的だ
…?
0651デフォルトの名無しさん
2009/11/06(金) 21:07:5817才からエロゲプログラマーか。
俺がやったゲーム、何本か作ってるw
0652デフォルトの名無しさん
2009/11/06(金) 21:10:040653デフォルトの名無しさん
2009/11/06(金) 21:38:13>>643にはoopじゃないから古くさいとは書いてないが?
0654デフォルトの名無しさん
2009/11/06(金) 21:40:32649じゃないけどさ、
じゃあ何が古くさいの?
アンチドラゴンブック派?
0655デフォルトの名無しさん
2009/11/06(金) 21:42:430656デフォルトの名無しさん
2009/11/06(金) 21:45:43>>655
アンタの文章は何を言いたいのかさっぱり解らんのよ。
0657デフォルトの名無しさん
2009/11/06(金) 22:00:23>>655
>>かなり古くさいスタイルの仕様、実装になってしまっていることと、
>>概論で終わっているような本を参考文献に挙げることは、対応していると思う。
仕様と実装が古い、そして参考文献が対応してるって書いてあるから、
643はドラゴンブックを古いと思っていることは拙い文章だけど解る。
0658デフォルトの名無しさん
2009/11/06(金) 22:07:16>>637はエロゲや携帯電話のゲーム用のスクリプトだぞ。
それにしては強力だし妥当な言語仕様だと思うぞ。
0659デフォルトの名無しさん
2009/11/06(金) 22:35:14実際にやる奴が居たなんて…
0660デフォルトの名無しさん
2009/11/06(金) 23:08:03マクロの全容とサンプルソースを見てみたいね。
0661デフォルトの名無しさん
2009/11/07(土) 02:32:060662デフォルトの名無しさん
2009/11/07(土) 02:48:16プロはそんなところまで考えないといけないのか。
大変だな。
0663デフォルトの名無しさん
2009/11/07(土) 05:55:04メイドゲーの始祖の殻の中の小鳥のプロデューサーでありプログラマのKENJI氏か。
年下だけどオレがこの道に入った元凶の1人だ。音楽プログラムが凄い人だ。
こうなったらシステムを公開して欲しいって言ったら、罰が当たるよね。
過去に関わったタイトルも100以上で、オレが買ったのも10は下らない。
天才っているもんだね。
CG,WAV圧縮もオリジナル、それら全てにMAKE内蔵って事は
100本以上というタイトルを考と公開されているKMAKEと言うのを見てみれば分かるが高性能。
DOSもK-DOSとか言う物がゲームに入ってて、さらにUMBメモリツールのUMBCNFGの作者。
うーん、システムを公開して欲しい。
>>661
2版が出るんですか。1版を持っている自分は買わないですが、
立ち読みはしてみたいですね。
中田先生はいつまでたってもエネルギッシュですね。凄い!
0664デフォルトの名無しさん
2009/11/07(土) 10:19:34確かに関数型言語の実装のしかたがわかる文献となると、まだ論文とかが頼りかなぁ。
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
ってことでいいのかな?
0665デフォルトの名無しさん
2009/11/07(土) 10:50:01>>663
俺がやったエロゲも作ってたw
メモリツールも使ってた。同一人物だったとはね。
>>664
あの分厚い最適化の本は2版が出てもいらんわ。
まだ最初の奴、読み終わってないからなw
中田が監修した本の2版なら絶対買わない。
>それら自身は<文>なんだよね。
>詳細を埋めると、
ブログを見る限りだと文の区切りは改行臭い。
ネストできない事はさすがに考えられないからそれで正しいと思う。
0666デフォルトの名無しさん
2009/11/07(土) 10:54:39関数型言語実装本は何冊も出てるよ。訳本がないだけで。
0667デフォルトの名無しさん
2009/11/07(土) 10:57:230668デフォルトの名無しさん
2009/11/07(土) 12:32:45後、東大やJAISTの講義で使われているから、その講義資料や学生の個人HPを漁るもよし。
もしも英語が読めれるなら、ググるといくらでも論文は見つかるんだけどね。
まったくインターネット万歳、いい時代になったもんだと思う。
0669デフォルトの名無しさん
2009/11/07(土) 13:15:540670デフォルトの名無しさん
2009/11/07(土) 13:17:41makeを内蔵したのは、
別exeにするとどうしても読み込みのオーバーヘッドが無視できなくなるからです。
マスターアップの時にはデーターが完成するのが当日とか当たり前にあります。
自分のシナリオコンパイルは1fileで1秒前後、自分のwavファイルで0.1秒前後です。
特にwavファイルは最後に入ってくることが多いので、wav圧縮は0.1秒前後のため、
外部makeを呼び出していると1万fileだと相当なオーバーヘッダがつきます。
ですので内蔵しております。oggだとこうはいきませんよね。
1万fileで外部makeだと少なくとも5時間は掛かります
0671デフォルトの名無しさん
2009/11/07(土) 19:00:35中田先生のコンパイラの構成と最適化第2版が20日に出版
http://www.asakura.co.jp/books/isbn/978-4-254-12177-3/
0672デフォルトの名無しさん
2009/11/07(土) 19:09:28依存型じゃなくって単体ファイルの比較なのね。
たしかにWAVの圧縮には依存型じゃない方が良いと思う。
MAKERだとWAVFILEを2ヵ所に記述しないといけないからね。
マクロはMAKERとほぼ同じだね。
この仕様でフルアセンブラなんて凄いね。
DISKへスワップ機能を入れたりUMBCNFGと言い、
MAKE時のFREEMEMORYをよっぽど空けたかったんだろうね。
0673デフォルトの名無しさん
2009/11/07(土) 19:22:231版を持って無いから買いたい。しかし高いな。
>>672
makeはさすがにスレチ。自重してね。
0674デフォルトの名無しさん
2009/11/07(土) 20:55:50普通makeといったらMakefileを動かす実行プログラムのことを言うと思うんだが。
0675デフォルトの名無しさん
2009/11/07(土) 21:16:58それでokだと思うよ。
kmakeはmakefileを動かすプログラムみたいだね。
それをスクリプトコンパイラやwav圧縮に統合してるみたいだ。
面白いアプローチだし、0.1秒の速度を万単位のファイルの圧縮に使って
マスターアップの時間を稼いでるみたいだね。
しかし、エロゲーってwavファイルがマスターアップの直前に来るのか。
少しでもスピードを稼ぎたいのは分かるが、
もっと余裕を持ったスケジュールで作れない物なのかね。
0676デフォルトの名無しさん
2009/11/07(土) 22:01:09ねーよ。
収録完了後2日〜1週間後が納期。Waveでもoggでも注文した形式で作ってくれるよ。
よっぽどアレなスケジュール組んでるんじゃね?
スレの内容に即したことをいうなら、Advの演出みたいなやたらと巨大な量になるスクリプトなら、
マクロで計算式を埋め込むことなんかよりも、むしろ計算式をスクリプトから外に出してしまうことをオレなら考えるな。
0677デフォルトの名無しさん
2009/11/08(日) 01:28:13ブログ見ても書き方が簡素な演出方法と細かい演出方法を用意している、
よっぽどタイトなスケジュールなんだろう
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
0678デフォルトの名無しさん
2009/11/08(日) 01:29:21move 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
0679デフォルトの名無しさん
2009/11/08(日) 01:31:04正)KENJI氏の所は今年6本だからね。しかも延期は今のところ1本も無いみたい。
0680デフォルトの名無しさん
2009/11/08(日) 01:46:26破綻してるスケジュールじゃなくて
スクリプトの簡素化とwav納期の短縮でこなしてる。
マクロを使いまくって、バグを出にくくする体制にしてるんだろう。
0681デフォルトの名無しさん
2009/11/08(日) 02:02:550682デフォルトの名無しさん
2009/11/08(日) 02:40:02久々にエロゲ板をみてみたら規制で大変なことになってるみたいだな。
0683デフォルトの名無しさん
2009/11/08(日) 03:20:56全容をみてみたい。
0684デフォルトの名無しさん
2009/11/08(日) 05:51:46FREEMEMORYじゃなくてコンベンショナルメモリでしょ。
0685デフォルトの名無しさん
2009/11/08(日) 06:14:310686デフォルトの名無しさん
2009/11/08(日) 06:24:09シューティングのキャラの移動にも使える。
と思ったら、17才の時にセーラー服戦士フェリス(ヴァリスのパクリ?)で敵の
移動パターン制御に何かしらの言語を使っていた可能性も有るのか。
21年前か。いまだに現役か。
悪いけど言語仕様は古いと思うが21年前の17才が何かしらの言語を
作ったと考えると、今のマクロ主体のシステムは実測論による今までの集大成か。
素直に凄いと思う。
しかし自分がプログラマーだと思うとオブジェクト指向を入れて欲しい。
0687デフォルトの名無しさん
2009/11/08(日) 06:29:59if not 式 goto,if 式 goto,goto
の3命令で表せると実証してるしな。
構造文のサンプルだけでもみたいな。
0688デフォルトの名無しさん
2009/11/08(日) 07:41:43うぜえんだよ
LISPでもやってろ
0689デフォルトの名無しさん
2009/11/08(日) 09:47:10見習うべきは吉里吉里(KAGはちょっと微妙)とか、バンナムの中の人が作ってるXtalとか、
ソースも手に入るんだし、いくらでもあると思うんだが。
採用実績だってXtalはともかく、吉里吉里は相当のものがあるし。
kikyou.info がつながらん...
0690デフォルトの名無しさん
2009/11/08(日) 10:32:53> しかし、作ってるのがエロゲ屋ってのが、そんなに感銘を受けるものなのかね?
たしかにそこに惹かれてるとしか思えないような糞言語だな。
0691デフォルトの名無しさん
2009/11/08(日) 10:37:470692デフォルトの名無しさん
2009/11/08(日) 11:48:00俺には無理だ。
0693デフォルトの名無しさん
2009/11/08(日) 11:55:23DOS時代からの生き残りか。
0694デフォルトの名無しさん
2009/11/08(日) 12:06:250695デフォルトの名無しさん
2009/11/08(日) 12:07:33見事に全ての構造文を 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
実際のマクロ記述については長いので省略。以下をみてね。
http://kenjikakera.asablo.jp/blog/2009/11/04/4676336#c
0696デフォルトの名無しさん
2009/11/08(日) 12:16:54> 見事に全ての構造文を if not,if,goto で記述している
ifとgotoにメモリがあればTuring完全なわけだし。
0697デフォルトの名無しさん
2009/11/08(日) 12:20:210698デフォルトの名無しさん
2009/11/08(日) 12:21:54高度なマクロ機能があれば、whileとかforとかswitchとかを
全部ifに変換するようなマクロとか考えられるよね。
0699デフォルトの名無しさん
2009/11/08(日) 12:30:20あの頃はコンベンショナルメモリが広くないと動かないゲームがあったんだよな。
音源ドライバもMSDRVとレコンポーザ互換で複数画面が使えるんで重宝した。
たしか音源ドライバは118音源の2OPモードが使える唯一のDOSドライバだったんだよな。
そして分裂守護神トゥインクルスターと殻の中の小鳥か。
分裂守護神トゥインクルスターはなぜACT2がでなかったか不明だった。
あの変身シーンをまた見たい物だよ。ニコ動にはないんだよな。
殻の中の小鳥はメイドブームの始祖だよな。
それに、よくネタにされるセーラー服戦士フェリスか。
ニコ動でみたけど、当時の98シューティングってこういう感じなのか。
こういったゲーム開発を支えたのがmacro志向言語でmake内蔵か。
LISPの思想を継承してると思ったが、見てみたらプリプロセッサ命令の山。
面白い物だ。
0700デフォルトの名無しさん
2009/11/08(日) 12:33:49特攻しました。
0701デフォルトの名無しさん
2009/11/08(日) 12:33:56スクリプト で検索したら既にいくつかスレあるな。過疎ってるしw
ゲーム用スクリプトの話題はそっちに分ける?
0702デフォルトの名無しさん
2009/11/08(日) 12:49:27いやgoto用ラベル管理が必要になるだけで、
後はCのマクロレベルで問題なし。
0703デフォルトの名無しさん
2009/11/08(日) 12:55:27Cマクロレベルだとネストの管理が出来ないだろう。
それに#defineマクロは記述性が悪い。
0704デフォルトの名無しさん
2009/11/08(日) 13:06:24あの当時の98ユーザーなら知ってるとして、
セーラー服戦士フェリスはパッケージにRPGって書かれてたんだぜ。詐欺だよ。
しかもスピードが速すぎてマシンクロックを落とすか
ファンクションキーでスピードを落とさないとゲームにならないんだよ。
フェリスの後継のコズミックサイコは音楽CDが付属していて
今でも高値で売られてるんだよ。
0705700
2009/11/08(日) 13:07:50金曜日から質問攻めが凄いですね。
1人の方なのでしょうか?
それともどこかで話題になっているのでしょうか。
どこかで話題になっているようでしたら教えていただけると幸いです。
質問の答えですが、半角英文が先頭に来るメッセージの場合
mes game start
と記述するか、#defineでmesをm辺りに定義して
m game start
とでも記述してください。
半角英文が日本語の中に来るときはそのまま半角文字を記入してokです。
まあしかし、ゲーム中には全角英文字しか使わないので滅多に出番がありませんが。
start_game 1とexit_gane 1はstart_game(1)とexit_game(1)とも記述出来ます。
後はこの場合メインループの外側でstart_game(local)やexit_game(local)の様に外部に登録します。Cとは違い、前方参照も出来ます。
0706デフォルトの名無しさん
2009/11/08(日) 13:16:550707デフォルトの名無しさん
2009/11/08(日) 13:19:52ラベルをスタックで管理。> ネスト
0708デフォルトの名無しさん
2009/11/08(日) 13:22:17こういった内部でしか使われない言語が表に出ると反応が様々で怖いな。
俺がスクラッチから作った言語がこのスレに晒されたらと思うと怖いな。
0709デフォルトの名無しさん
2009/11/08(日) 13:23:42それじゃあ、if not goto,if goto,gotoだけじゃないじゃん。
0710デフォルトの名無しさん
2009/11/08(日) 13:24:230711デフォルトの名無しさん
2009/11/08(日) 13:31:40それはターゲット言語であって、処理系の話じゃないでしょ?
その辺はちゃんと区別できないと。
0712デフォルトの名無しさん
2009/11/08(日) 13:34:130713デフォルトの名無しさん
2009/11/08(日) 13:35:27おいおい、C言語の力を使ったら何だって出来るだろ?
マクロだけで実装してるから話題になっているわけで、趣旨が違うぞ。
>>708
フツーの人はそうだよ。言語処理系のソースコード公開するのも怖いし。
吉里吉里の人は特別だよ。
0714デフォルトの名無しさん
2009/11/08(日) 13:51:17吉里吉里スクリプト自体は、仕様としてはさほど大したものではない。
仕様を真似して似たようなオブジェクト指向スクリプト言語を構築してみたが、
コンパイラ+VMで2週間くらいでできたよ。
吉里吉里がすごいのはKAGというADVゲーム開発環境一式が公開されていることと、
それによる市販ソフトの実績が十分にあるところだな。
0715デフォルトの名無しさん
2009/11/08(日) 13:55:40そのマクロ機能実現に、ラベルのスタック管理が必要だってことでしょ?
popしてるじゃん。そのマクロのコード読めてないの?
0716デフォルトの名無しさん
2009/11/08(日) 14:01:39VMの性能はおいといてもコンパイラをスクラッチで2週間で組めるのならあんた十分凄いよ。
吉里吉里というのは自分は知らんが、KAGというのは吉里吉里上のラッパかな?
ここに出ているマクロ言語は自分には6人月の仕事だ。
0717デフォルトの名無しさん
2009/11/08(日) 14:09:14いや、だから言語の仕様上だけで実装してるのがすごいんじゃん。
ああ、わかった。#defineマクロ機能を完全にとpop機能を実現するコンパイラを
作れば同じ事が出来るって言いたいんだな。
LISP信者には悪いが可読性の悪いLISPや#defineマクロよりmasm似にたマクロを
使えた方が可読性は増す。
あと、Cの#define中って、#ifdefとか#ifって使えたっけ?
使えるのならCの#defineの実装って結構やっかいそうだな。
0718デフォルトの名無しさん
2009/11/08(日) 14:12:100719デフォルトの名無しさん
2009/11/08(日) 14:19:02最近は48時間な時代だからなあ
0720デフォルトの名無しさん
2009/11/08(日) 14:21:54複数スナップショット取れる風な恒久化っていうのはいいね。
俺言語を作ろうとすると文字列のサポートとかマンドクさくなるので
こういう状態遷移管理専用言語もおもしろそうだ。
昔、bitか何かで「ある番地(A)からある番地(B)のデータを引いて0になったらある番地(C)へ飛ぶ(だったっけ?)」な
命令が1つあれば、他の命令はこれの組み合わせで実装できるとかあって1つしか命令無いんだから、
A, B, Cのアドレスを並べておくだけでいいとか。
0721デフォルトの名無しさん
2009/11/08(日) 14:24:09アセンブラのマクロといえば、NASMのマクロがラベルのプッシュ・ポップとかの
機能をもってたかな。
0722デフォルトの名無しさん
2009/11/08(日) 14:30:340723デフォルトの名無しさん
2009/11/08(日) 14:31:050724デフォルトの名無しさん
2009/11/08(日) 14:32:15#calc __cmd_num __cmd_num+1
#define local1 "f_{__cmd_num}"
こんな命令が有るようだとさすがに#defineとpush/pop程度の実装では無理だよ。
全ての条件文にユニークなラベルを発効する命令だと思う。
>>721
Lispは高性能なのは分かるが記述性が自分には難点。
Wizerd級になると一瞬で判別できるみたいだけどね。
0725デフォルトの名無しさん
2009/11/08(日) 14:34:09それがラベル管理でしょ。
ワンパスコンパイラのコード読んだことないの?
0726デフォルトの名無しさん
2009/11/08(日) 14:37:400727デフォルトの名無しさん
2009/11/08(日) 14:40:370728デフォルトの名無しさん
2009/11/08(日) 14:45:21LispはメジャーだけどForthはダメだなぁ。
こういったシナリオ系のスクリプト言語と相性良いと思うんだけどね。Forth。
0729デフォルトの名無しさん
2009/11/08(日) 14:46:16バイトコード吐いてもいいし、
まずはJavaコード生成でもいいし。
0730デフォルトの名無しさん
2009/11/08(日) 14:47:31完全な#define命令とpush/popだけでは無理だよ。いい加減諦めな。
>>719
天才は日本の財産だ。体に気をつけろ。
>>720
>よって、プリプロセッサの大きさに比べてコンパイラの大きさは小さい。
>そして強力な文字置換により、文字セットもプリプロセッサ時、コンパイル時、実行時の3段階で解決される。
文字セットも3種類必用だそうだ。逆にめんどくさくないか?
>>721
一時期LISPにはまったが、やみつきになる言語だよな。RPNもやみつきになったな。
>>722
ここも天才だけが来るスレじゃないし、仕方がないんじゃん。
間違えを認められれば先に進めるし、反論だけの奴はその程度の奴だし。
>>723
わりい、忘れてた。
>>724
そんなにいきり立つなよ。言ってることが正論でも相手が受け入れなくなる。
新言語で週末は面白かったけど、特攻は>>697レベルの事でするのは相手に失礼。
まあ、なんだ。ここは天才が比較的多いんだから、
もっと柔軟に楽しく言語を作ろうぜ。
言語を作るってのはプログラミングにおいてOSを作るのに匹敵し、
神になれるんだからさ。
0731デフォルトの名無しさん
2009/11/08(日) 14:50:14今更ラベル管理を言ってもまあむりだ。
最初の#defineとpush/popだけで実装はどこへ行った。
0732デフォルトの名無しさん
2009/11/08(日) 14:51:05> いやgoto用ラベル管理が必要になるだけで、
> 後はCのマクロレベルで問題なし。
0733デフォルトの名無しさん
2009/11/08(日) 14:54:16おっちゃん、言ってることがどんどん増えて行ってるよ。
あんたの負けだよ。
0734デフォルトの名無しさん
2009/11/08(日) 14:54:52これじゃ言ってることわからん奴もいるわな。
0735デフォルトの名無しさん
2009/11/08(日) 14:55:25相手の言ってることのうち都合の悪いところを忘れたもん勝ちの
口喧嘩でもしてるなら別だけど。
0736デフォルトの名無しさん
2009/11/08(日) 14:58:33>>696は実行系の話だろ?
>>733は区別付いてないじゃないの?
作ったことない人は混同しがちだけど。
0737デフォルトの名無しさん
2009/11/08(日) 14:59:43一端ゆっくり考えて、#defineと何が必用だか1つのレスに分かり易くまとめてくれないか。
IDが出ないもんでぶつ切りの主張だと何言っても通用しないぞ。
while-endの仮想コードでも良いよ
0739デフォルトの名無しさん
2009/11/08(日) 15:01:23IDが出ないなら、相手を同一人物だと思わないほうがいいんじゃないの。
735は俺だけど、少なくとも今日は初めて書き込んだぞ。
0740737=733
2009/11/08(日) 15:02:10ただ、同じ奴が言ったとは分からなかった。
0742デフォルトの名無しさん
2009/11/08(日) 15:07:39仮想敵と戦わなければいいだけ。
0744デフォルトの名無しさん
2009/11/08(日) 15:17:30http://catb.org/retro/cfoogol.shar.gz
500行弱だな。
0745デフォルトの名無しさん
2009/11/08(日) 15:17:50やたら興奮気味に、仮想敵だとか見えない敵云々言ってるのがいたら、そいつは
「ズバリ言い当てられけど隠れ蓑があるから上手く逃げてやるぜざまあ見ろ」
的な昂ぶり方をしている可能性もある。
0746デフォルトの名無しさん
2009/11/08(日) 15:20:490747デフォルトの名無しさん
2009/11/08(日) 15:27:02nを初期化し忘れてやがるw > サンプルコード
0748デフォルトの名無しさん
2009/11/08(日) 15:29:58C/C++でブログのプリプロセッサ並の物を作るとしたら、どれくらい時間がかかる?
ラベルはハッシュ管理かね、HPとコンパイルスピードを見る限りは。
大量のラベルが生成されるだどうね。
SAVEデーターとバグFIXで増える文字列はどうやって解決してるのだろう。
あと、未読既読機能。VMの力も使ってるんだと思うけど。
0749デフォルトの名無しさん
2009/11/08(日) 15:35:05C言語で集中的に出来るんなら1週間でマクロの仕様を考えて、1ヶ月でプログラムかな。
C++ならもうちょっと短くできる。
0750デフォルトの名無しさん
2009/11/08(日) 15:36:54エラーがあるとreturnしちゃうのが新鮮かな?
ttp://catb.org/retro/
logoはなんとなくSMC-70で使った覚えがあるがpilotってどんなのだっけ?
0751デフォルトの名無しさん
2009/11/08(日) 15:36:57PythonとかGCある言語なら二週間くらい。
ただああいうのは言語機能そのものよりも、
ドメインとマッチしているかどうか、
実務支援のリソースが豊富かどうかで
良し悪しが決まってくる。
0752デフォルトの名無しさん
2009/11/08(日) 15:41:16http://rpilot.sourceforge.net/rpilot.txt
0753デフォルトの名無しさん
2009/11/08(日) 15:42:17focalは「きだあきら版」じゃないか。
0754デフォルトの名無しさん
2009/11/08(日) 15:47:37仕様を考える時間が結構かかりそうだな。
3段階の文字列解決とかコンパイラ本体とVMの全ての仕様を同時に考えないといけない。
作りながら仕様変更等もありそうだから、一概には言えないな。
0755デフォルトの名無しさん
2009/11/08(日) 15:55:13やはりプリプロセッサ、コンパイラ、VMとの兼ね合いがあるから日数は簡単に出せないな。
0756デフォルトの名無しさん
2009/11/08(日) 16:06:56こういう用法はやめてくれ
0757デフォルトの名無しさん
2009/11/08(日) 16:07:440758デフォルトの名無しさん
2009/11/08(日) 16:16:340759デフォルトの名無しさん
2009/11/08(日) 16:26:02多分インラインを使いまくってるんだろう。
そこから推測すると、シナリオファイルのコンパイルと圧縮が1秒というのは
コードのチューンに相当時間をかけている。多分インライン使いまくりだろう。
JAVAで良いのであれば1ヶ月もあればプリプロセッサを作れるが、
プリプロセス、コンパイル、VM、その間の仕様決め、
そして最適化となると単純にプリプロセス時間だけを計ってもしょうがない。
0760デフォルトの名無しさん
2009/11/08(日) 16:26:16言語仕様では、それらが簡易に記述できれば嬉しいなとか言語ワナビの俺が言うんだから間違いはない
>wav変換にかかる時間
コンパイル時間が短ければ、リリースも早くできるんじゃないか?
0761デフォルトの名無しさん
2009/11/08(日) 16:26:50標準が定義するところの「プリプロセッサトークン」を正確に認識し、
展開結果に、またマクロが現れるとかそういう場合についてのふるまいを、
正確に標準に定められた通り動作するものを実装しようと思ったら、
どれだけかかるかわからないな。
0762デフォルトの名無しさん
2009/11/08(日) 16:32:38でも、この人は一度プログラマーを辞めようとしてるんだよな。
酒や薬(安定剤?)、そしていくつもの会社を渡り歩き、今は経営者兼任。
プログラマーとしては天才だが、人生の天才ではないな。
俺なら凡人で良い。
新しい書き込み
_ KENJI ― 2009/11/08 16:15
書き忘れましたがインクルードは
#include <w95gd.mac>
#include "h00win0.mac"
として、標準マクロと標準命令はw95gd.mac、
そのゲーム専用のマクロはh00win0.macに記述します。
0763デフォルトの名無しさん
2009/11/08(日) 16:34:30> いや、音声wavの圧縮が0.1秒というのは相当早い。
> 多分インラインを使いまくってるんだろう。
0.1秒はライブラリの仕事じゃないの?
処理系関係ない。
1万ファイルだから外部プログラムの呼び出しコストを下げたいと書いてある。>>670
0764762
2009/11/08(日) 16:35:160765デフォルトの名無しさん
2009/11/08(日) 16:35:28なんも分かってないな。
0766デフォルトの名無しさん
2009/11/08(日) 16:41:29この会社の圧縮はCG,WAV,シナリオ全てオリジナルだよ。
ゲーム分解ツールで見たことがある。
多分、他人のコードが入るのを嫌う、昔気質のオールドタイプだよ。
KMAKEもフルアセンブラだから、インラインも使いまくりだろう。
圧縮に必用なビット演算はアセンブラが一番強いからね。
もしかすると、フルアセンブラかもね。
オールドタイプだから、斬新だけど古めかしいスクリプトコンパイラなのだろう。
推測ばっかだなw
0768デフォルトの名無しさん
2009/11/08(日) 16:44:56オリジナルかどうかって事じゃなくて、
インラインだろうが、呼び出しだろうが、ライブラリだよね?
>>748のお題は「ブログのプリプロセッサ並の物」だから別の話。
0769デフォルトの名無しさん
2009/11/08(日) 16:47:16例えば0.1秒もかかる処理1万件、
これの何をインライン展開すると速くなるわけ?
外部プログラム呼び出しを辞めたのは>>670にある。
0770766
2009/11/08(日) 16:48:34それだったらCで2ヶ月かな。
0772デフォルトの名無しさん
2009/11/08(日) 16:52:27それともKMAKEで圧縮関数書いてあるの?
0774デフォルトの名無しさん
2009/11/08(日) 16:55:18ただスレ違いかと…
0775デフォルトの名無しさん
2009/11/08(日) 17:25:11KENJI ― 2009/11/08 17:13
CG,WAV,シナリオの圧縮はオリジナルです。
昔は全てアセンブラで組んでいましたが、
最近は移植性のため一度C言語で組んでそれをインラインアセンブラ化します。
圧縮のビット操作関係とプリプロセッサとコンパイラのラベル解決のプログラムはC言語版は残したままで1からインラインアセンブラで組み直しています。
インラインアセンブラの採用で圧縮展開は5倍、コンパイラは2倍くらいのスピードになります。
ゲーム本体は展開以外はほぼ同じスピードなので、インラインアセンブラを積極的に使ってません
_ KENJI ― 2009/11/08 17:19
未記入様。
ご報告、有難う御座います。
読んでみると自分のせいで荒れているみたいですね。
申し訳ないです。
ここでの質問は紳士的でしたので、問題はありません。
0776775
2009/11/08(日) 17:29:26>コンパイラのラベル解決のプログラム
というのはHPでhashで説明してますが、hash以上の性能のアルゴリズムって有ります?
0777デフォルトの名無しさん
2009/11/08(日) 17:36:03トライがある
まあただのトライ木ではないだろうけど
0778デフォルトの名無しさん
2009/11/08(日) 17:40:45トライを実装する場合ってことね
トライ構造にした上で、シンボル化する
シンボルってのは、LISPのアレね
こうすると、新規のラベルかどうかはトライでインクリメンタルに、
既成のラベル同士ならアドレスの比較だけで済む
0779デフォルトの名無しさん
2009/11/08(日) 17:40:59キーをどうやって生成してるか分からないが、
2倍というのは凄いな。
0780デフォルトの名無しさん
2009/11/08(日) 17:57:560781デフォルトの名無しさん
2009/11/08(日) 18:00:240782デフォルトの名無しさん
2009/11/08(日) 18:06:39一意なんだからアドレスの比較も不要だな
ユーザープログラム上で比較する時は、の話
0783デフォルトの名無しさん
2009/11/08(日) 18:09:38ハッシュだと一度文字列レベルに落とし込む必要がある
文字列処理にハッシュが使われない理由でもある
0784デフォルトの名無しさん
2009/11/08(日) 18:40:580785デフォルトの名無しさん
2009/11/08(日) 19:21:27三行で頼む
0786デフォルトの名無しさん
2009/11/08(日) 19:25:15子供がエロゲの作成過程を知って興奮
0787デフォルトの名無しさん
2009/11/08(日) 19:59:290788デフォルトの名無しさん
2009/11/08(日) 20:03:27VHSがアダルトビデオのおかげで普及したという神話もあながち…
0789デフォルトの名無しさん
2009/11/08(日) 20:45:33それはうわさじゃなくて事実
0790デフォルトの名無しさん
2009/11/09(月) 01:00:34概要で良いからどれだけ素晴らしい言語を実用レベルにしてるか見て欲しいよ。
こういう事言っても誰もやってくれないんだよな。
口先だけだと思われたくなければやってよ。
0791デフォルトの名無しさん
2009/11/09(月) 01:10:160792デフォルトの名無しさん
2009/11/09(月) 01:14:50コンパイルスピードの遅い実用的にならない物だけだろ?
コンパイルスピードを極限まで早くするためにmakeを内蔵し
アセンブラを豊富に使っているプロと比べものになるわけ無いよ。
しかも言語仕様が柔軟でエロゲだけではなく
携帯電話のゲームのコンパイラにもなるんだぜ。
そんなのここのスレの住人の一握りしか出来ないよ。
0793デフォルトの名無しさん
2009/11/09(月) 01:16:54今まで作ってきた言語の仕様の一部を晒せば良いんじゃないか?
じゃないと糞とか古いとか言っても説得力がない。
0794デフォルトの名無しさん
2009/11/09(月) 01:19:19コンパイルスピードは目をつぶる。
0796デフォルトの名無しさん
2009/11/09(月) 01:24:200797デフォルトの名無しさん
2009/11/09(月) 01:30:13皮肉だと思うが、スレに期待しすぎ。
0798デフォルトの名無しさん
2009/11/09(月) 01:39:51不毛だこと
0799デフォルトの名無しさん
2009/11/09(月) 02:00:39未だにコンパイルスピードとか言ってる人もいるんだな
0800デフォルトの名無しさん
2009/11/09(月) 02:05:430801デフォルトの名無しさん
2009/11/09(月) 02:45:02ゲームがらみだからボルテージ上がってる子供がいるだけ
0802デフォルトの名無しさん
2009/11/09(月) 06:15:43この人のコンベンショナルメモリのツール等を使って639kb空けたよなぁ。
この人は何やるにしても究極を求めちゃうんだろうな。
0803デフォルトの名無しさん
2009/11/09(月) 07:25:480804デフォルトの名無しさん
2009/11/09(月) 08:34:12http://pc11.2ch.net/test/read.cgi/gamedev/1005114698/l50
http://pc11.2ch.net/test/read.cgi/gamedev/1012824335/l50
0805デフォルトの名無しさん
2009/11/09(月) 08:50:42この話題無くなったらまたシーンとするだけだし、積極的に他へ追いやることもないよ。
誰も居なくなったこのスレを眺めて「よし、俺の仕事によってスレの純度が保たれた!」と
悦に浸ってもしょうがないし。
0806デフォルトの名無しさん
2009/11/09(月) 09:12:07「それと吉里吉里などもっと凄い言語が公開されていますので、
ソースコードなどはそちらを参考にした方がよいと思います。」
と、おっしゃっていることは都合良く見落としてないかね?
0807デフォルトの名無しさん
2009/11/09(月) 09:38:490808デフォルトの名無しさん
2009/11/09(月) 09:43:37ボルテージって言葉が好きなんだね
0809デフォルトの名無しさん
2009/11/09(月) 10:52:23マクロで構文を作りMAKE内蔵のコンパイラが有るって言うのが分かって、
LISP信者の俺は嬉しい。
OHPの方は本当に素人向けに説明しようとして放置しているみたいだな。
0810デフォルトの名無しさん
2009/11/09(月) 10:55:40だが、それが良い。
特定言語の信者は何故それが分からん。
0811デフォルトの名無しさん
2009/11/09(月) 12:11:010812デフォルトの名無しさん
2009/11/09(月) 12:46:48べつにそれがわからんから信者なわけじゃないだろう。
何故それが分からん。
0813デフォルトの名無しさん
2009/11/09(月) 14:15:19巨大なファイル多数を高速にコンパイル、optasmやTurboCを思い出す。
マクロで構文を作るってスピードの面でずいぶん不自由だと思うが、
ゲームで敵の移動アルゴリズムや、
リンカを作ってexe/comファイルの出力だかを多量に高速で出来るのか。
面白そうだし、是非公開して欲しいね。
構造化pic-basic見たいのを作りたいよ。
0814デフォルトの名無しさん
2009/11/09(月) 14:21:34スキルが低い知り合いだったのだろう。
なぜスクリプトコンパイラとスクリプトエンジンの分割をした方が良いとか、
ラベルの前方参照の解決方法とか、このスレじゃ当たり前のことを丁寧に
解説している。
HPも再開して欲しいな。
0815デフォルトの名無しさん
2009/11/09(月) 14:23:29picじゃ逆ポーランドは荷が重すぎないか?
0816デフォルトの名無しさん
2009/11/09(月) 15:02:13趣味でPICではないですがAVRのリンカを作っています。
その為に、単純比較式 r0==0 とかを1byteで記する命令を作っています。
しかしPICは変数の割り当てが難しいのでVMを作るのは大変だと思います。
0817デフォルトの名無しさん
2009/11/09(月) 15:46:19なんか信者的な意見も飛び出してるしなぁ
# さっきまで規制食らってたからニヨニヨしてるしか無かったが
0818デフォルトの名無しさん
2009/11/09(月) 22:24:56構造文もマクロで記述、MAKE内蔵、ハイスピードコンパイル。
これを実装してるんだから良いネタだよ。
それに古いとか糞とか言う奴と賛美している奴がいて楽しかったよ。
おれは古く見えるが、仕様用途にマッチした実装だと思うよ。
このプログラマが何でも組めるというのは事実だけど天才は言い過ぎかな。
0819デフォルトの名無しさん
2009/11/09(月) 23:50:22教えてくれ
Directorもついでに教えてくれ
お願いします
0820デフォルトの名無しさん
2009/11/10(火) 00:18:16ググれば分かり易いサイトが結構あるけど。
0821デフォルトの名無しさん
2009/11/10(火) 00:22:33このスレにこんなに活気が溢れたのは久しぶりだ。
0822デフォルトの名無しさん
2009/11/10(火) 01:58:470823デフォルトの名無しさん
2009/11/10(火) 06:16:030824デフォルトの名無しさん
2009/11/10(火) 07:06:460825デフォルトの名無しさん
2009/11/10(火) 07:22:42他人のコンパイラがはき出すOBJをEXE(PE)にするのが好きなんだよ。
コンパイラよりリンカを作る方が好きなんだ。何故か分からんけど。
0826デフォルトの名無しさん
2009/11/10(火) 07:30:480827デフォルトの名無しさん
2009/11/10(火) 08:38:20変な嗜好だな
リソース含めたりDLLとかは厄介だったりするけど、
それも含めて好きなの?俺はごめんだわ
0828825
2009/11/10(火) 09:09:23そう言えばリソースエディタもC/C++とほぼ同じ性能のマクロが記述できるよね。
0829825
2009/11/10(火) 10:05:51また新しい言語を作りたくなるよね。
0830デフォルトの名無しさん
2009/11/10(火) 11:01:55しかし、ここ最近の言語仕様は実践的だな。
0831デフォルトの名無しさん
2009/11/10(火) 11:17:35たぶん、アルゴリズムとインラインアセンブラの力だろう。
現代のコンパイラでも、ビット演算が得意な言語はまず無いからな。
キャリーフラグが無いのも痛い。アセンブラを使って高速化する適材適所だな。
0832デフォルトの名無しさん
2009/11/10(火) 13:50:32アッセンブラには敵わない。
この人はホットスポットを見つけてインラインアッセンブラ化。
昔では当然のことをやっているだけだ。
KMAKEごときも昔の人ならアッセンブラで作る。tasm,turboc,optasm様々だ。
しかし言語体系は面白いし、色々な分野のプログラムを精力的に組んでいるところは評価できる。
でも一度プログラムを辞めたり信念が感じられない。
自信が無いのだろうか。
0833デフォルトの名無しさん
2009/11/10(火) 16:25:27当時の98エロゲを知るオレには波瀾万丈で面白い人生だと思ったよ。
本人はそう思ってないだろうがw
0834デフォルトの名無しさん
2009/11/10(火) 17:56:08プログラムの話はほとんど無かったね。
知っているゲームはCALと殻の中の小鳥。
それとPC98時台にエロゲでシューティングが有るって話を聞いてたから3本か。
UMBCNFGの作者さんでもあるんだね。
0835デフォルトの名無しさん
2009/11/10(火) 18:50:38| || ロロロロロロ || がしゃーん
| || ・ ・・・ ・・ ||
| || ロロロロロロ ||
| || Coca Θ.|| がしゃーん
| ||口口口□||
|ミ||====||
 ̄ ̄ ̄ ̄
自動販売機だよ
自動で販売してくれる凄いやつだよ
0836デフォルトの名無しさん
2009/11/10(火) 19:45:1040才にもなるオヤジが今まで
エロゲーのプログラムしか作ってないんだから
正直、恥ずかしくて市にたくなるレベル
0837デフォルトの名無しさん
2009/11/10(火) 19:53:21社員の悪口と暴露話ばかりで
気分が悪くなった
0838デフォルトの名無しさん
2009/11/10(火) 20:13:57逆に勿体ないよ。こんな人物がエロゲー会社に埋もれてるなんて。
結局、トップになったから安定を選んだのか。
所であんたは何の仕事してる?
俺は悪名高きコ○ミでサブとツールを作ってる。コンパイラもね。
>>837
エロゲスレやPC-98のスレを見ていてこのブログの存在は知っていたが、
エロゲスレでは英雄、PC-98スレではスタジオトゥインクルからの脱退までは
よくぞ話してくれたと言う雰囲気。
スタジオトゥインクルからの脱退は賛否両論で色恋での脱退説が濃厚だった。
その後の殻の中の小鳥を作って以降は同情だったな。
0839838
2009/11/10(火) 20:17:54外圧で陵辱ゲームを規制したソフ倫の理事が規制を無かったことにして暴走中。
0840デフォルトの名無しさん
2009/11/10(火) 20:25:590841デフォルトの名無しさん
2009/11/10(火) 20:33:04コナミってゲーム作るところじゃないの?
ゲーム作らせてくれないの?
0842838
2009/11/10(火) 20:34:31コ○ミではスクラッチでコンパイラ作ってたよ。
関わったソフトがほんとーにたまたま売れて社長賞とかいうのももらった。
変な会社だよ。
0843デフォルトの名無しさん
2009/11/10(火) 20:35:42壊れてんだよ。
0845デフォルトの名無しさん
2009/11/10(火) 20:37:58嫉妬は醜いよ。
0847デフォルトの名無しさん
2009/11/10(火) 20:42:390848838
2009/11/10(火) 20:46:57でも、見た目はスタイリッシュな奴が多いよ。
前の会社のア○ラスでは、オタクっぽい恰好の奴が多かった。
0849デフォルトの名無しさん
2009/11/10(火) 20:57:21コナミ?にしたのは何で?
0850デフォルトの名無しさん
2009/11/10(火) 20:58:53エロゲと言うだけで一等下に見られるのか。
作ったプログラムで見るべきじゃないのかな。
ここではコンパイラの出来で見ないと自分の品が落ちるぞ。
>>837
悪口なんて書いてないじゃん。どこが悪口?
0852デフォルトの名無しさん
2009/11/10(火) 21:01:210853デフォルトの名無しさん
2009/11/10(火) 21:05:100854デフォルトの名無しさん
2009/11/10(火) 21:08:27いやもう見る人が見れば特定できると思うけど。
ゲロしちゃいなよ。
0855デフォルトの名無しさん
2009/11/10(火) 21:10:5098時代はメモリツールで有名で、
思想は古いがコードを組む能力は凄く秀でている。
しかもポルシェ乗り回して2つの会社経営者。
そしてなんと言ってもメイドブームの始祖の殻の中の小鳥のプロデューサー兼プログラマ。
今もここやエロゲ規制スレでは名が通っている。
俺も何か後世に残せる物を作りたかったが、無理だった。
今はケツに火が付いたコンシューマゲーム屋の管理職。
コンパイラのプログラムを日曜にちまちま組むぐらいだ。(土曜も出社)
0856デフォルトの名無しさん
2009/11/10(火) 21:20:21かなりスレ違いだがw
0857KENJI
2009/11/10(火) 21:22:07せっかくの良スレが台無しです。
コンパイラを組める方々が集まってきているスレですので、
自分よりもっと凄い方も多いと思います。
そんな中でスレタイにそった話しは自分が引き合いに出されても
しょうがないですが、スレ違いの話は少なくとも自分については
あまりしないでいただけると嬉しいです。
かな入力からローマ字入力に切り替えたばかりなので時間がかかるかも
しれませんが、自分個人的なことはブログで質問なり罵倒なり
していただけると嬉しいです。
0858デフォルトの名無しさん
2009/11/10(火) 21:24:28殻の中の小鳥がメイドブームの始祖。
メイド喫茶は殻の中の小鳥の影響を受けたPiaキャロが始祖。
0859デフォルトの名無しさん
2009/11/10(火) 21:25:09本人?
0860デフォルトの名無しさん
2009/11/10(火) 21:30:52せめて雑談スレとか
0862デフォルトの名無しさん
2009/11/10(火) 21:45:38これまでのメイド萌えを牽引してきたのは雪さんだよ!
0863KENJI
2009/11/10(火) 22:10:10掲載されて10万とか貰えて嬉しかったのです。
その延長で高校時代にアルバイト紙を見ていたら
エロゲー会社の求人が合ったので飛び込んでみました。
しかし、本当はエロゲー制作は学生時代だけにして、
ロボット関連の仕事に就きたかったのです。
でも作っていくうちにユーザーの反応がアンケートハガキやネットで
ダイレクトに返ってくるエロゲーのプログラムも面白いと思い、
最終的には成り行きで会社を作ることになってしまいました。
会社の資金を獲得するために、
本当に様々な言語で様々なプログラムを組みましたが、
一番楽しいのはユーザーとの距離が近いエロゲーと言うことを
再確認させられ、未だに会社をやっています。
あと、単純にエロいシチュエーションなどを
考えるのが好きというのもあります。
最後に、スレタイにそった話題として、
エロゲなどの演出では大量にラベルが発生します。
その上、自分のVMはwindows apiのラッパーみたいな物で、
メッセージ1行表示するには20個のlocal label、
簡易版のcgの表示では100個ものlocal labelが生成されます。
ですのでラベル解決には高速なアルゴリズムと高速なプログラムが必用です。
ですので、トライ木をインラインアセンブラで組んでいます。
VMの実装方法はエロゲー会社、各社色々見たいですね。
コンパイラも最初の1文字が#だとcg表示とか、様々なようです。
0865デフォルトの名無しさん
2009/11/10(火) 23:37:54吐気がする
0866デフォルトの名無しさん
2009/11/11(水) 00:41:09何故か一言で罵倒する人が数人いるが、理由は何だ?
0867デフォルトの名無しさん
2009/11/11(水) 00:45:450868デフォルトの名無しさん
2009/11/11(水) 00:57:550869デフォルトの名無しさん
2009/11/11(水) 01:07:31しかし、品のない言葉は発言者自身の品格を下げるから、我慢しなよ。
0870デフォルトの名無しさん
2009/11/11(水) 01:46:12http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%8A%E3%83%9F#.E3.82.B3.E3.83.8A.E3.83.9F.E3.81.AE.E7.9F.A5.E7.9A.84.E8.B2.A1.E7.94.A3.E6.88.A6.E7.95.A5
こういう会社だから?
0871デフォルトの名無しさん
2009/11/11(水) 02:46:35最近変な雰囲気になっていると思ってたら
やっぱり本人が来てたな。
0872デフォルトの名無しさん
2009/11/11(水) 03:56:40エロゲ板のシステムを考えるスレから信者が来たんだと思う
ブログも賛美の嵐。
反ソフ倫のよりどころだからな。
0873デフォルトの名無しさん
2009/11/11(水) 04:12:5512月に出る、ソフトをより過激に変更してる最中なんだからこんな所で油売ってる暇なんてないでしょ。
まったくもうw
0874デフォルトの名無しさん
2009/11/11(水) 04:19:530875838
2009/11/11(水) 06:05:05>>854
そういうの、あんまり気にしない社風。同僚が読んでいたらばれてるだろうな。
飲みの時に自分から話しちゃうから気にしないけど。
以前知り合いがスクエニ辞めてパチンコ/パチスロの下請け会社を作ったんだけ
ど、
前は超羽振りが良かったのが少し羽振りが良い程度に落ち着いたから、
パチンコ/パチスロ業界も下火になっていくだろう。
羽振りが良いままなら入れてもらおうかと思ったけど。
>>870
そう言う会社。早く辞めたいけど給料が良い。
シャワーを浴びて会社に行く前にスレでも巡回するか。
自宅だと早起きさせられるのと結婚結婚うるさいのがガンw
プログラマ40才限界説って中田先生見てると嘘だなーって思う。
老後のため、まだまだ頑張らねば。
0876デフォルトの名無しさん
2009/11/11(水) 07:30:04殻の中の小鳥は10年前はコミケでも
コスプレ多数でジャンルとしても確立してたんだよ。
それはもう凄い人気だった。
あいにくブログやスレを読むまで、ヤマトで例えると
KENJI氏=西崎、栄夢氏と新井氏=松本レイジって
関係だったとは知らなかったよ。
0877デフォルトの名無しさん
2009/11/11(水) 09:05:590878デフォルトの名無しさん
2009/11/11(水) 09:32:130879デフォルトの名無しさん
2009/11/11(水) 10:07:43_ コンパイラスレ住人 ― 2009/11/11 04:41
自作自演、乙。
_ KENJI ― 2009/11/11 09:41
そう取られてもしょうがない流れでした。
迷惑をかけましてすみません。
_ (未記入) ― 2009/11/11 09:54
ソフ倫の裏切り者。
0880デフォルトの名無しさん
2009/11/11(水) 10:18:40お願いします
興味ないです
0881デフォルトの名無しさん
2009/11/11(水) 10:24:48中田先生は凄いですね。
第2版も面白そうなので買います。
内容も今までの集大成と最新技術を合わせたような感じで、期待が高まる。
念のため本屋で立ち読みして、
JBOOK(ポイントが付く)でクレカで買えばクレカポイントも付くしね。
>>879
有名税でしょうね。しかし謙虚で真摯な方だ。
ブログを読んでもメンヘルっぽさは出しているが、他人の悪口なんて言ってない。
やはりソフ倫という機構の方がこのスレに紛れ込んで人格攻撃に出てるんだな。
0882デフォルトの名無しさん
2009/11/11(水) 10:35:25この一連の書き込みはもう打ち止めで良いだろう。
相手も迷惑を被っているみたいだし。
しかしそうなるとシーンとなって寂しいか感じがw
0883デフォルトの名無しさん
2009/11/11(水) 12:39:40あえてマクロで構文を実装、汎用化も高める。
そしてスピードを補うためにmake内蔵、
ホットスポットのインラインアセンブラ化、
大量のラベル解決のためにトライ木をインラインアセンブラで書く。
チト古くさいが理想と実装を両立した言い言語だったな。
13年も使って、まだ色あせないか。
まとめるとこんな感じかな。これでこのお話はお終い。
HPの方で2部を再開してくれたりソースコードを公開してくれたりしたら
テンプレ入りしてもいいわだいだったが、本人にその気がないからお終い。
0884デフォルトの名無しさん
2009/11/11(水) 12:47:410885デフォルトの名無しさん
2009/11/11(水) 12:56:330886デフォルトの名無しさん
2009/11/11(水) 13:15:38かなり汎用性が高そうだから、
マルチスレッドの効率を重視した設計の言語(ex. Erlang)実装で、
BlocksとGrand Central Dispatchが流行るかもしれない。
http://developer.apple.com/mac/articles/cocoa/introblocksgcd.html
0887デフォルトの名無しさん
2009/11/11(水) 14:16:07FreeBSDは始まってるわけだが。
0888デフォルトの名無しさん
2009/11/11(水) 15:17:400889デフォルトの名無しさん
2009/11/11(水) 17:19:400890デフォルトの名無しさん
2009/11/11(水) 18:33:48(2)電卓みたいにその場で計算してしまうんではなくて、構文木を作る。
とか。
0891デフォルトの名無しさん
2009/11/11(水) 19:05:19UNIXのbcみたいなプチプログラムの書ける電卓
0892デフォルトの名無しさん
2009/11/11(水) 19:41:56サンキュウ。
RPNでやってたから機械的にコンバート出来てたから(2)をやってみるよ。
>(2)電卓みたいにその場で計算してしまうんではなくて、構文木を作る。
おまけに面白い記事。
67歳の美少女ゲームメーカー社長に話を聞いた
http://ascii.jp/elem/000/000/418/418376/index-2.html
67才でエロゲー会社社長って凄いね〜。
職業に貴賎は無いんだな。
0893デフォルトの名無しさん
2009/11/11(水) 20:34:17機械的にっていうとstackかな?
構文木でやってみるのも違いが分かって良いと思うよ。
……67才でエロゲー会社社長か。好々爺って感じでほのぼのするねw
確かに職業に貴賊はないね。
次はコンパイラ界の好々爺、中田先生の2版の話をしよう。
0894デフォルトの名無しさん
2009/11/11(水) 22:55:20どうせならスクリプトのドメイン特有のノウハウをもっと話題にしてくれ。
実装はあんまり興味無いから構文とかの話の方がいいな。
0895デフォルトの名無しさん
2009/11/11(水) 23:18:23その上、実装の話は嫌とかどんな我が儘。
ゆとりか?
エロゲはともかく実装の話はスレチじゃないだろう。
スレは君の物じゃ無いんだよ。
0896デフォルトの名無しさん
2009/11/11(水) 23:33:36どうすればいいの?
0897デフォルトの名無しさん
2009/11/11(水) 23:45:08流れで少しだけならわかるけどさすがに脱線しすぎだろ。
実装の話でもいいけど、ドメイン特有のチューニングの話されてもあんまり面白くないからなあ。
それだったら一般的な最適化の話とか>1とかの話の方が良いわけで。
>896
オブジェクトがそれぞれプロセス/スレッドを持つようにしたらどう?
効率悪そうだけど。
0898デフォルトの名無しさん
2009/11/12(木) 00:12:01上に出てるgoとlibdispatchを参考にして考えたら?
0899デフォルトの名無しさん
2009/11/12(木) 00:23:59FPGA上で極小CPU同士が通信するとか。
0900デフォルトの名無しさん
2009/11/12(木) 00:56:10超並列言語
実装
漠然としすぎているから、定義から始めますか
0901デフォルトの名無しさん
2009/11/12(木) 06:41:570902デフォルトの名無しさん
2009/11/12(木) 07:02:400903デフォルトの名無しさん
2009/11/12(木) 09:12:57現代最大のFPGAにはZ80が何個入るんだろう。
LSI-CやASM80でスレッド間通信すれば、
超並列処理の実行形を自分で作ることも可能だね。
_ KENJI ― 2009/11/12 05:22
ふう、コンパイラスレの方も一段落したみたいです。
もし、私の弁護のために書き込まれた方がいらっしゃたのでしたら
ああいう方法は逆効果です。何もせずそっとしておいていただけると嬉しいです
0904デフォルトの名無しさん
2009/11/12(木) 09:39:28>現代最大のFPGAにはZ80が何個入るんだろう。
すべてのインストラクションを使うつもりなら
丸ごとCPU入れるのも有りだが
使ってない機能が大半ならスペースがもったいないだけ
自作CPUなり必要な機能部分だけでマルチにする方が効率いいよ
0905デフォルトの名無しさん
2009/11/12(木) 10:08:140906デフォルトの名無しさん
2009/11/12(木) 10:49:420907デフォルトの名無しさん
2009/11/12(木) 12:07:23KENJI、お前のせいでみんなが迷惑するんだよw
0908デフォルトの名無しさん
2009/11/12(木) 13:07:45もしかして、ワンチップ LINKS-2 とか可能かなw
0909デフォルトの名無しさん
2009/11/12(木) 18:46:21何の事情か知らないが、とてつもなくキモイ。消えろ。
0910デフォルトの名無しさん
2009/11/12(木) 19:14:40マイクロPlanやSweet16みたいなVMのプロセッサとか昔よくあったスタックマシン系の小さいメモリを効率よく回すタイプのCPUを山のように搭載するのもありなのか?
0911デフォルトの名無しさん
2009/11/12(木) 19:19:22最新のFPGAを使えばJAVAVMを乗せたり、CISCを少量乗せたり、
単純なRISCを乗せたり出来そうだね。もちろんインオーダーで。
そうすれば、コンパイラも色々な可能性が出てくるね。
0912デフォルトの名無しさん
2009/11/12(木) 19:24:08ありじゃない。x86系はenter/leaveを実装してるけど、
遅いんで実装時には使われていないけど
本来、関数型言語やoopはstackをよく使い相性が良いよね。
>>911
誤)単純なRISCを乗せたり
正)単純なRISCを多量に乗せたり
0913デフォルトの名無しさん
2009/11/12(木) 19:28:27ありならOCCAM系で一つ遊んでみたいぜ
0914デフォルトの名無しさん
2009/11/12(木) 19:54:10X: ありならOCCAM系で一つ遊んでみたいぜ
O: ありならTransputer系で一つ遊んでみたいぜ
0915デフォルトの名無しさん
2009/11/12(木) 19:56:40一応スレタイくらい汲んでほしいって配慮じゃないの?
0916911
2009/11/13(金) 01:10:53コンパイラの歴史が変わるのは決まってるね。
言語もメニイコア用の言語が出来るんだろうね。楽しみだ。
ソフ倫って奴らは本当にクズ揃いだな。
0917911
2009/11/13(金) 08:29:06実行モジュールのループをVMが管理して、走らせているスレッド単位に割り当てるとか。
実装は困難を極めそうだな。
メニーコア用のコンパイラの論文って日本語である?
http://qiufen.bbspink.com/test/read.cgi/hgame/1258009910/137-
漢だ。
0918デフォルトの名無しさん
2009/11/13(金) 11:33:420919デフォルトの名無しさん
2009/11/13(金) 13:08:53GPUのメニイコア用言語って、
●Cg(C for graphics)
●HLSL(High Level Shader Language)
●GLSL(OpenGL Shading Language)
とかがあるけど汎用性が無いし、
ループの展開を自動割り当てなんてVM、聞いたことがない。
面白い発想だと思うけど。
0920デフォルトの名無しさん
2009/11/13(金) 13:12:51GPUはmany coreっていう範疇とは少し違う気がする
演算素子がたくさんあるんだけど、フローの数が少ないと思うの
0921デフォルトの名無しさん
2009/11/13(金) 22:37:140922911
2009/11/14(土) 14:28:280923デフォルトの名無しさん
2009/11/14(土) 14:42:34地球シミュレータよりあとは、頂点も裾野もズタボロじゃねーか。
0924911
2009/11/14(土) 16:40:56AMDのクラスタにさえ負けてる。
0925911
2009/11/14(土) 16:43:04レンホウのせいで世界最高峰レベルの日本のスパコン界も壊滅。
しかしAMDのクラスタにすら負けている状態なので当然か。
0926デフォルトの名無しさん
2009/11/14(土) 17:53:140927デフォルトの名無しさん
2009/11/14(土) 20:21:56世界最速になる予定だった。
だけどアメリカがそれを上回る速度のものを先にだす予定を組み
日本はアメリカの次になり国別で2位。
でも世界最高峰レベル。
民主党はそれを中止させたという話ではないの?
0928デフォルトの名無しさん
2009/11/14(土) 21:15:30文科省「京速コンピュータつくろうぜ」
民間「おう、世界一目指そうぜ!」
文科省「2千億かかるから民間も半分出せよ」
民間「まあ、しかたねーな」
〜〜2008年 アメリカ IBM Roadrunner 1PFLOPS
〜〜今年5月
NEC「去年3千億の赤字、今年はトントンの予定で
追加の100億が出せそうにない。スマンナ」
(富士通のプロセッサ採用するなら、残ってる意味ないし…)
日立「NECがやめるならうちも降りる」
理研・富士通「白紙から設計し直さなきゃうわああ…」
〜〜今年7月 アメリカ 1EFLOPS級スパコンの研究開始
〜〜今年10月 中国 天河1号完成(理論値1.2PFLOPSに対して、実測値563TFLOPSのお粗末さ)
〜〜今年11月
民主党「gdgdすぎるからもうやめれ」 ←いまこのへん
0929デフォルトの名無しさん
2009/11/15(日) 02:19:05専門家でもないのに、よく「これで日本のIT技術は終わり」なんて自信満々に言えるよ
0930デフォルトの名無しさん
2009/11/15(日) 02:25:270931デフォルトの名無しさん
2009/11/15(日) 02:31:33まあ科学予算でスパコンつくってる国が、国防予算でやってる国に張り合えるはずがないんだけどね
0932911
2009/11/16(月) 08:46:41ここまでぐだぐだなら、国と大学メンツはおいといて、一度クールダウンする必用があるな。
それだけ金をつぎ込んでNo1に成れないのであれば、メンツも糞もない。
スカラー型とベクトル型でベクトル型に固執する日本。
ピークスピードはベクトル型がまさるがスカラー型の方が平均性能が上。しかも今はピーク時も上。
所詮、莫大な軍事予算を投入するアメリカにはいつまで経っても追いつけない。
アメリカはベクター型と専用機又はスカラー型の組み合わせも考えている
0933デフォルトの名無しさん
2009/11/16(月) 08:48:280934デフォルトの名無しさん
2009/11/16(月) 08:51:550935デフォルトの名無しさん
2009/11/16(月) 13:33:04それでやっと最高性能だけどけど、
日本はC,Fortranで開発できて使いやすい高性能という方向を
目指しているってことじゃないの?
0936デフォルトの名無しさん
2009/11/16(月) 15:00:47京速はスカラ・ベクトル型だったからこそ意義があった。
0937911
2009/11/16(月) 16:31:58逆じゃね?
スカラー型の方がコンパイラを作り最適化するの大変だぞ。
それより難易度の高い遅延分岐命令のコンパイラも
ゲーム業界ではいっぱい作られてるから問題ないかもしれないが。
0938デフォルトの名無しさん
2009/11/16(月) 22:08:060940デフォルトの名無しさん
2009/11/17(火) 05:01:220941デフォルトの名無しさん
2009/11/17(火) 06:12:030942デフォルトの名無しさん
2009/11/17(火) 06:15:240943デフォルトの名無しさん
2009/11/17(火) 07:36:23911氏の発言はクレイバーで問題ないと思うが。
ソフ倫関係の話もついでだし、当時PC98でLSI-Cやエロゲをやっていた者には興味深い。
0944デフォルトの名無しさん
2009/11/17(火) 07:43:34だから数字コテは続けてくださいと言っておろうが
0945デフォルトの名無しさん
2009/11/17(火) 07:58:57すまん。
911氏も読みたくない奴はNGして欲しいから敢えてやってると思う。
自分も911氏と同じようにベクター型よりスカラー型の方がコンパイラを作りにくいと思う。
manycoreの実行モジュールのループをVMが管理して、走らせているスレッド単位に割り当てるとかスカラー型に有利な発想もしている。
0946デフォルトの名無しさん
2009/11/17(火) 08:19:59911じゃ他のスレでも引っかかるから迷惑だ。
暇そうだしコテハンも付けて有名になれよ。
自意識過剰さんにはぴったりだ。
0947デフォルトの名無しさん
2009/11/17(火) 08:43:09喫煙は違法じゃないがどこで吸っても良い訳じゃないだろ?
0948911
2009/11/17(火) 11:38:07有名になる気はないし、自意識過剰でもないよ。
コテハン付けるだけで何でそんなことを推測できるか教えて欲しい。
NG設定にするか読み飛ばすかのどちらかにすれば良いんじゃない?
>>947
禁止されている場所では吸えませんよね。
しかしここでは禁止されてますか?
せめてTPOをわきまえろとでも言って欲しかった。
0949デフォルトの名無しさん
2009/11/17(火) 12:04:26トリップ付けたらそれでNG設定できるの
ただの数字コテではNG設定に困るの
これで通じますか?
0950911
2009/11/17(火) 12:09:22禁止はされていませんよね?
禁止されれば辞めますよ。
スレ違いで周りに迷惑をかけますので、あまり長引かせないでくださいね。
0951デフォルトの名無しさん
2009/11/17(火) 12:16:500952デフォルトの名無しさん
2009/11/17(火) 12:21:430953デフォルトの名無しさん
2009/11/17(火) 12:22:330954デフォルトの名無しさん
2009/11/17(火) 12:30:410955デフォルトの名無しさん
2009/11/17(火) 12:30:51他人の言論を封じ込め、色々なレッテルを貼り見苦しいよ。
>>952
放置して、スレタイに準じたことを話してよ。
>>953
スレを無駄に使うことは禁止されていないけど、殺人が禁止されてなかったら隣人を刺す人?
0956デフォルトの名無しさん
2009/11/17(火) 12:32:230957デフォルトの名無しさん
2009/11/17(火) 12:37:020958デフォルトの名無しさん
2009/11/17(火) 12:38:010959デフォルトの名無しさん
2009/11/17(火) 12:39:46いい加減自演すんなよ
おめーのカキコは丸判りなんだよ
0960911
2009/11/17(火) 12:45:32>>937
例えるなら、PS3とXBOXで、XBOXの方が(DirectXと言うのもあるが)作りやすく平均的なスピードを出せるが、
CELLのPS3はカリカリにチューンすれば高速だけど、プログラムを組むのが難しい。
>>957
一番説得力がある。
0961デフォルトの名無しさん
2009/11/17(火) 12:46:18変なのが常駐してるから次スレはリサイクルでどうだ
次スレ候補
新C言語を作ろう
http://pc12.2ch.net/test/read.cgi/tech/1185010023/
0962デフォルトの名無しさん
2009/11/17(火) 12:57:17KENJI氏blog無断コピペ
↓
自称コ○ミ社員
↓
エロゲ雑談
↓
911
最後はテロリズムか。
次スレは911禁止で立てるわ。
0963デフォルトの名無しさん
2009/11/17(火) 13:00:09…数字コテハンをみんなでいじくってるのか。
スレが無駄だから辞めてくんない?
0964デフォルトの名無しさん
2009/11/17(火) 13:21:400965デフォルトの名無しさん
2009/11/17(火) 13:30:33俺も乗せられてスレを無駄図解したぜ。
0966デフォルトの名無しさん
2009/11/17(火) 13:39:43「コンパイラ・スクリプトエンジン」相談室14
http://pc12.2ch.net/test/read.cgi/tech/1258431145/
0967デフォルトの名無しさん
2009/11/17(火) 13:51:04まわりが遊んでただけじゃん。
新スレの削除依頼だしといたわ。
0968デフォルトの名無しさん
2009/11/17(火) 13:55:520969911
2009/11/17(火) 13:56:30禁止されたのであれば従い、コテ無しに戻るだけですから。
0970デフォルトの名無しさん
2009/11/17(火) 14:01:02そうか。俺にはおまいさんに不備が有ったとは感じなかったけどな。
あえて言えば、トリップ付けてればこんな事にならなかっら次からそうしてくれ。
0971デフォルトの名無しさん
2009/11/17(火) 14:14:39見えない敵と戦ってただけだよ。スレ全体の意志じゃ無いんだから、
スルーすれば良かったのにバカだな。
こんな時間から2chに張り付き、コンパイラを作るなんて、
バカと天才は紙一重って事だよ。
0972911
2009/11/17(火) 15:04:44NVIDIAはFermi系で、内部のマルチスレッディングやメモリの構造を、
より汎用アプリケーションに最適な形で再編したことになる
ttp://pc.watch.impress.co.jp/docs/column/kaigai/20091105_326442.html
ttp://pc.watch.impress.co.jp/docs/news/20091116_329409.html
>>970&>>971
気をつけるよ。
0973911
2009/11/17(火) 15:13:16IntelとNEC、スパコン技術の共同開発に合意
NECがベクトル型スパコンの開発で培った経験と、Xeonプロセッサーの性能や機能、
Xeonに搭載される計画のベクトル演算向け拡張命令群「Advanced Vector eXtentions(AVX)」を組み合わせていく。
これにより、Intel Architectureに基づいたスパコンでより高い実効性能を提供する。
ttp://pc.watch.impress.co.jp/docs/news/20091117_329468.html
0974デフォルトの名無しさん
2009/11/17(火) 15:24:56そういうのはこっちへ行けばいいと思うんだ
【スパコン】スーパーコンピュータ関連情報3【HPC】
http://pc11.2ch.net/test/read.cgi/hard/1255529941/
0975911
2009/11/17(火) 15:42:55サンキュウ。
超並列CPUでのコンパイラの話題の一環のつもりで書いた。
並列度が上がれば上がるほど、有効利用の方法が難しくなるね。
チップ密度が高くなりシングルスレッドだと、勿体ないし、
CPUの一部だけが使われてピンポイント発熱の問題も出てくる。
並列度を有効利用するにはOSとコンパイラのサポートが必用になってくるね。
発熱の問題はセンサーで感知し、OS側でCPUの代替コア操作が必用になってくるね。
超並列コンピューティングが中小企業や家庭レベルまで来るのはもう少しだけど、
OSとコンパイラのサポートは当分先になりそう。
それまでは、企業で複数のOSを同時に走らせ、
物理的なコンピューターの数を削減するくらいしか役に立たなさそう。
こんな事はここにいる人ならすぐ思いつく話だと思うけど。
0976デフォルトの名無しさん
2009/11/17(火) 15:42:570977デフォルトの名無しさん
2009/11/17(火) 15:58:22>>975
動的に、たとえばあなたが言っていたloopの並列化をすればするほど
バス・アービトレーションにより無駄が多くなり、リニアに性能は上がらないね。
特に細かく並列化をすればするほど無駄が多くなるね。
データベースやgoogle等のマルチユーザーアプリケーションや
社内クラウドコンピューティングには有利だね。
すべてをクラウド化する事には災害時やサービス会社の倒産時の面から反対だけど。
0979デフォルトの名無しさん
2009/11/17(火) 18:49:07おまえみたいな変人が居るスレは俺等もごめんだ
0980デフォルトの名無しさん
2009/11/17(火) 19:18:58こらこら。勝手に変な番号名乗るんじゃない。
このスレの303はお前じゃなくてオレだ。
0981デフォルトの名無しさん
2009/11/17(火) 19:52:21偽物乙
0982デフォルトの名無しさん
2009/11/17(火) 19:56:323行でよろしく。
0983デフォルトの名無しさん
2009/11/17(火) 19:57:32三行もいらなかった
0984デフォルトの名無しさん
2009/11/17(火) 19:59:290985デフォルトの名無しさん
2009/11/17(火) 20:09:42しかもOSやスクラッチでコンパイラを作っている奴らは自分以外のコードを入れたく無かったりして偏屈。
どうしてわかるかって?
俺がそうだから。
0986デフォルトの名無しさん
2009/11/17(火) 20:26:39色々な人が関わってるコンパイラ、OSはいくらでもある。
0987デフォルトの名無しさん
2009/11/17(火) 20:53:33その「新C言語をつくろう」のスレを参照してみ。
0988デフォルトの名無しさん
2009/11/17(火) 20:54:480989デフォルトの名無しさん
2009/11/17(火) 23:25:160990デフォルトの名無しさん
2009/11/18(水) 00:10:10OSをつくろうのひげぽん氏やRUBYのまつもとゆきひろ氏、吉里吉里のW.Dee氏
はどうなの?
0991デフォルトの名無しさん
2009/11/18(水) 01:03:360992デフォルトの名無しさん
2009/11/18(水) 04:01:36一部の独善的な人達が行動に出ただけだと信じたい。
>>986
偏見の固まりですね。事例を挙げて理論的に反論すべき。でないのなら己の品のなさを自ら公言していると言えよう。
コンピュータの黎明期にも、そして今にもそう言った手法を使い、結果を出している方がごまんと居ます。
0993デフォルトの名無しさん
2009/11/18(水) 04:16:56そのスレの303氏の発言を見たが実装のことなど考えていないし
既存のプログラマが積極的に移行する価値がない(混乱する)ように思える。
C99、又はD言語からGCを取り去った言語だ。
未だに現場ではC言語が生き残り、
実用的な言語になるのに、多少泥臭くとも巨大なソースを高速にコンパイル出来ることが必用なのに、
実装に精通していない。
例え完成したとしても使い物にならない可能性が高いと私は思う。
私見なのでいくらでも反論をどうぞ。
0994デフォルトの名無しさん
2009/11/18(水) 05:29:35価値ある情報の2つに分類されてるんだ?
あと実装を考えない理想論も多いか。
0995デフォルトの名無しさん
2009/11/18(水) 05:35:51プログラマーだから
0996デフォルトの名無しさん
2009/11/18(水) 05:46:22ごく一部の実践的コンパイラを作った奴と大多数のバカの集まりだから。
しかも大多数のバカが実権を握ってるという矛盾。
だれも自分の言語を公開しない。仕様すら公開しない。
もし、まぐれでオリジナル言語が出来たとしても、
本に載ってたサンプルを改悪した取っつきにくい文法、
実装も>>993の言うとおり
巨大なソースを高速にコンパイル出来ることが出来ない物しか作れない。
だからここから有名になった人は皆無かほんの一部のみ。
0997デフォルトの名無しさん
2009/11/18(水) 05:53:21まあ落ちつけ
0998デフォルトの名無しさん
2009/11/18(水) 06:32:40価値ある情報うんぬんをあんまり強調しすぎるのもクレクレと変わらん
受動的な割にスレの状態を気にする男の方って
0999デフォルトの名無しさん
2009/11/18(水) 06:40:42今このスレは酷い自演家とそれに付き合える暇人が集ってるだけだ。
恐らく価値ある情報と思ってるのも君だけじゃないかと。
意図の汲めないスレ違い長文カキコを延々とやられたら居なくなる。
早めにトリップ付けるべきだったね。
1000デフォルトの名無しさん
2009/11/18(水) 06:50:1510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。