1 名前:デフォルトの名無しさん [2007/09/02(日) 08:13:36 ] プログラミング言語処理系の開発に興味のある人達のスレッドです。 字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン, SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化, JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。 意味論に関する話題も歓迎です。 過去スレ 1 pc.2ch.net/tech/kako/981/981672957.html 2 pc2.2ch.net/test/read.cgi/tech/1021136715/ 3 pc5.2ch.net/test/read.cgi/tech/1070089173/ 4 pc5.2ch.net/test/read.cgi/tech/1100097050/ 5 pc8.2ch.net/test/read.cgi/tech/1106129164/ 6 pc8.2ch.net/test/read.cgi/tech/1115335709/ 7 pc8.2ch.net/test/read.cgi/tech/1129287390/ 8 pc8.2ch.net/test/read.cgi/tech/1131273918/ 9 pc8.2ch.net/test/read.cgi/tech/1135082582/ 10 pc8.2ch.net/test/read.cgi/tech/1146844753/ 11 pc11.2ch.net/test/read.cgi/tech/1160879890/ 関連リンクは多分 >>2-10 あたり
2 名前:デフォルトの名無しさん [2007/09/02(日) 08:14:32 ] Wikiのまとめページ www6.atwiki.jp/compilerandscriptengine/ ★コンパイラ一般 ・色々なツールの紹介 catalog.compilertools.net/ ・コンパイラ関連のリンク集 www.ulis.ac.jp/~nakai/rel_web_compilers.shtml ・スクリプティング言語資料室(仮) (リンク集) www.kt.rim.or.jp/~kbk/ ・Compiler Construction www.ie.u-ryukyu.ac.jp/~kono/lecture/compiler/ ・情報システム工学実験 III コンパイラ・コンパイラ math.cs.kitami-it.ac.jp/~fuchino/proin/experimentIII-2000/jikken.html ・OS/Programming 簡単な C コンパイラ www.csg.is.titech.ac.jp/~chiba/lecture/os/ ・正規表現 hp.vector.co.jp/authors/VA007799/viviProg/doc_regexp.htm ・コンパイラ研究・開発情報の一集積所 compilers.cs.uec.ac.jp/ ・Links and Selected Readings www.gnu.org/software/gcc/readings.html ・国産のコンパイラ共通インフラストラクチャCOINS www.coins-project.org/
3 名前:デフォルトの名無しさん [2007/09/02(日) 08:15:05 ] ★字句・構文解析 ・Lex and YACC primer/HOWTO (邦訳) ttp://www.linux.or.jp/JF/JFdocs/Lex-YACC-HOWTO.html ・Turbo Pascal Lex/Yacc 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を同時に使う guppy.eng.kagawa-u.ac.jp/2005/SysProg/both.html ・KITE_ASM (yacc,lex) 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 www.cs.princeton.edu/~appel/modern/java/ (JLex, CUP) ttp://www.jflex.de/ ・SableCC ttp://www.sablecc.org/ ・¬<><∪∪ (notavacc)LALR(1) ne.cs.uec.ac.jp/~koto/notavacc/ ・boost::spirit(C++のテンプレートでEBNFの構文を模倣) spirit.sourceforge.net/ ttp://boost.cppll.jp/HEAD/libs/spirit/index.html(マニュアル日本語化プロジェクト) ttp://www.fides.dti.ne.jp/~oka-t/cpplab-boost-spirit.html
4 名前:デフォルトの名無しさん [2007/09/02(日) 08:15:35 ] ★ごみ集め ・GC FAQ -- draft www.iecc.com/gclist/GC-faq.html ・A garbage collector for C and C++ www.hpl.hp.com/personal/Hans_Boehm/gc/ ・一般教養としての Garbage Collection www.is.s.u-tokyo.ac.jp/vu/jugyo/processor/process/soft/compilerresume/gc/gc.html ・Garbage Collection : Algorithms for Automatic Dynamic Memory Management www.amazon.com/exec/obidos/ASIN/0471941484/ ★処理系,スクリプト ・kikyou.info (吉里吉里というゲームのスクリプト) kikyou.info/ ・tiny C コンパイラ (C) www.watalab.cs.uec.ac.jp/tinyCabs.html ・6809用 Micro C コンパイラ www.axe-inc.co.jp/pds/mc09.html ・Portable Object Compiler (Obj-C >> C のトランスレータ?) users.pandora.be/stes/compiler.html ・自作コンパイラの部屋(PL/1, Pascal等) www.tokumaru.org/ ・『Rubyソースコード完全解説』サポートページ i.loveruby.net/ja/rhg/ ・『やさしい Lisp の作り方』『やさしい Java インタプリタ の作り方』 www.okisoft.co.jp/esc/go.html ・MSによるPEフォーマット仕様書(日本語) www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/intro.html
5 名前:デフォルトの名無しさん [2007/09/02(日) 08:16:57 ] ★学会 ・PLDI research.microsoft.com/conferences/pldi06/ コンパイラの研究に関する最新成果を知りたければまずはここ。 ・POPL www.cs.princeton.edu/~dpw/popl/06/ PLDIよりは理論寄りだが大いに参考になる。 ・ICFP icfp06.cs.uchicago.edu/ 関数型言語に関する学会。とても難しい。 ・OOPSLA www.oopsla.org/ オブジェクト指向言語に関する学会。最近はやや低調? ・ICCC www.st.cs.uni-sb.de/cc/ ヨーロッパ系。派手さはないが堅実。
6 名前:デフォルトの名無しさん [2007/09/02(日) 08:17:40 ] ★参考書籍 ・コンパイラ 原理・技法・ツール 1&2 www.amazon.co.jp/exec/obidos/ASIN/4781905854/ www.amazon.co.jp/exec/obidos/ASIN/4781905862/ 通称ドラゴンブック。バイブル。 ・コンパイラ構成法 原田 賢一 www.amazon.co.jp/exec/obidos/ASIN/4320029224/ www.hara.cs.keio.ac.jp/kCompiler/ (ソース、正誤表のダウンロード) ・プログラミング言語処理系 岩波講座 ソフトウェア科学〈5〉 佐々 政孝 www.amazon.co.jp/exec/obidos/ASIN/4000103458/ 一冊で済ませたい人へ。 ・コンパイラの構成と最適化 中田 育男 www.amazon.co.jp/exec/obidos/ASIN/4254121393/ 最適化がメインだが、構文解析からコード生成までの基本事項も解説されている。 ・コンパイラの仕組み 渡邊 坦 www.amazon.co.jp/exec/obidos/ASIN/4254127081/ 薄い奴(185p)を読みたい人に。 ・21st Century Compilers (Alfred V. Aho, Sethi, Ravi Sethi, Jeffrey D. Ullman, Monica Lam) www.amazon.co.jp/exec/obidos/ASIN/0321131436/ まだ出ていない。 ・スモールコンパイラの制作で学ぶプログラムのしくみ www.cbook24.com/bm_detail.asp?sku=4774121770 初心者向けの優しい解説本。 以上
7 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 12:08:54 ] おつ
8 名前:デフォルトの名無しさん [2007/09/02(日) 12:28:37 ] spiritってコンパイラスクリプトエンジンに使うのにどうなんだろ? っていうか、再帰下降パーサ自体どうなんだろ?
9 名前:デフォルトの名無しさん [2007/09/03(月) 08:26:48 ] Bison -y Exr.yでy.tab.cを作って gcc y.tab.c -ly -o E でEという構文解析プログラムを作りました。 で、./E[enter] して 1+1とか式を入れるとSyntax Errorが出ます。 原因としては何が考えられるでしょうか?Cygwin使ってます。 文法プログラムは「コンパイラ構成法」p21の %% input : expr '\n' ; expr : expr '+' term | expr '-' term | term ; term : term '*' factor | term '/' factor | factor ; factor : 'i' | '(' expr ')' ; %% yylex() { return getchar(); } です。
10 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 08:42:46 ] >>9 そりゃ1+1はその文法に合わない入力だからじゃね。i+iなら通る。 試験するときは文法に適う入力かどうかを考えないと。 つまり、1+1でsyntax errorになったのは正しい動作だったということだ。 文法を定義する時に自分でどういうものを受け入れるかは分かっているんじゃないのかね? それとも、どこかからサンプルを持ってきて適当に改造したから、 何をやっているか自分でも分からないとか?
11 名前:10 mailto:sage [2007/09/03(月) 08:56:53 ] あ、あと、 input : expr '\n' ; って定義だと例えば'i' '+' 'i' '\n'の入力で受容された後は、 何が入力されてもsyntax errorになるのは分かってるよね?
12 名前:デフォルトの名無しさん [2007/09/03(月) 09:02:33 ] 10さんありがとうございます。自分がやってることが分かってませんでした。 いまいじくって理解しました。
13 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 14:53:26 ] HaskellでScheme処理系を実装するチュートリアル「Write Yourself a Scheme in 48 Hours」 halogen.note.amherst.edu/%7Ejdtang/scheme_in_48/tutorial/overview.html
14 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 13:37:10 ] ゲーム開発用にC言語の文法がそのまま使えるスクリプト言語を作ってるのですが、 配列や構造体の初期化処理をどうスマートに実装しようか悩んでます。 特に、ローカル変数の初期化時に変数を用いて初期化する点など。 なにか良い方法や参考資料とかないでしょうか?
15 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 14:34:35 ] >C言語の文法がそのまま使えるスクリプト言語 普通にC言語使うのとどう違うのか。 まぁコンパイルが面倒いとか安全性とかあるんだろうけど。 ちなみにこんなものもある。 root.cern.ch/twiki/bin/view/ROOT/CINT 配列や構造体の初期化は、内容が固定ならmemcpy、変数が混ざってるなら1個ずつ代入するしかないんでない? 実際のCコンパイラが吐くコードを見てみたらいかが。
16 名前:14 mailto:sage [2007/09/08(土) 15:31:16 ] > 実際のCコンパイラが吐くコードを見てみたらいかが。 確かにw、ちょっと調べてみます。 > 普通にC言語使うのとどう違うのか。 一応、ゲーム用に文法を拡張して使用する予定。 並列処理(ノンプリエンプティブ)用の文法と、イベント処理用の文法は組み込みたいな、と。 あと、データ構造定義のヘッダーをCとスクリプトで共有するのも目的です。 CINTは本も持っているのですが・・・、挫折しました。
17 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 16:27:14 ] >>13 これ良さそうですね。 ちょうどHaskellでそれなりの規模のプログラムを作ってみたかった所なので これにそってやってみます。
18 名前:デフォルトの名無しさん mailto:sage [2007/09/09(日) 15:39:13 ] >>14 LuaとかSquirrelじゃダメなん?
19 名前:14 mailto:sage [2007/09/09(日) 19:50:01 ] Squirrelは初めて知りました。参考にさせてもらいます。 VCで配列や構造体のローカル変数の初期化をアセンブリ言語に吐き出してみたんですが、 既値での初期化でも思いのほか代入の羅列処理でした。 あんまり悩まずに、この方法で実装してみます。
20 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 12:52:50 ] tcc: tiny c compiler fabrice.bellard.free.fr/tcc/ 出遅れたがコンパクトで追いやすいと思う
21 名前:14 mailto:sage [2007/09/10(月) 19:03:29 ] > tcc: tiny c compiler ありがとうございます。 これも参考にさせてもらいます。
22 名前:デフォルトの名無しさん [2007/09/23(日) 01:43:08 ] pc11.2ch.net/test/read.cgi/gamedev/1005038080/
23 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:57:37 ] bisonとflexを組み合わせて使う場合、 bison側のコードからyyinを参照するにはどうしたらいいのでしょうか? extern FILE *yyin; main(){ while(!feof(yyin)){ yyparse(); } } 上のような感じで使おうとしたところ「yyinは宣言されていない」 という旨のエラーが出てしまいました。
24 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 13:26:55 ] Ginってどうよ???
25 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 14:52:17 ] ご自分で判断なされては
26 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 22:23:37 ] (´;ω;`)ブワッ
27 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 16:16:32 ] Low Level Virtual Machine - Wikipedia ja.wikipedia.org/wiki/Low_Level_Virtual_Machine The LLVM Compiler Infrastructure Project llvm.org/ これは外出?
28 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 01:39:02 ] 俺はGin見て、アイデアが思い浮かんだのでありがてぇ思っただよ
29 名前:デフォルトの名無しさん [2007/10/05(金) 12:57:30 ] Ginって?
30 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 21:19:06 ] >>29 javascriptのパーサジェネレータです。 nanto.asablo.jp/blog/2007/09/12/1793275
31 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 23:33:45 ] やれやれだぜ もうパーサジェネレータの話は禁止しようぜ ここからパーサジェネレータから先の話だけな
32 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:38:24 ] 勝手に決めるなよ
33 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 01:00:16 ] ANTLR 3 をC言語で扱うサンプルないかな? それかANTLR3に近いパーサないかな?
34 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 21:18:42 ] >>27 まじ凄いんじゃね? というぐらいしか俺にはわからんが 詳しい人解説たのむ
35 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 23:51:33 ] 解説も何も見たままだが。 用語が判らんとかなら>>6 の本でも読め。
36 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 10:35:55 ] そういえば、parrotって完成する日が来るんだろうか
37 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 13:06:34 ] >>27 は、最適化されたVMを提供するようだが、 使っている人のサイトとかみると、 実際はまだまだ未完成でバグバグみたい
38 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 13:39:44 ] LL(1)は構文木作るの面倒だな。
39 名前:デフォルトの名無しさん [2007/11/11(日) 12:18:03 ] コンパイラ構成法 原田 賢一著 を読んでいっているのですが、理解できないところが多々あります。 演習問題の解答、解説等が載っている本などはありませんか?
40 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 06:37:16 ] >>6 は切れてるな あきらめろ
41 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 00:11:12 ] 東京大学の言語処理系(mini-Python)を作る講義資料 2006年版 www.logos.ic.i.u-tokyo.ac.jp/lectures/enshu2006/index.php?%B9%D6%B5%C1%BB%F1%CE%C1 2007年版 www.logos.ic.i.u-tokyo.ac.jp/lectures/enshu2007/index.php?%B9%D6%B5%C1%BB%F1%CE%C1 俺にもPython作れる気がしてきた
42 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 11:23:55 ] >41 中身まだ全部見てないけど面白そう。こういう講義受けたかったな。 新しい方(2007年版)って今講義中なのか。
43 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:10:46 ] LALRのパーサー使ってきたけど、文法が複雑になると、Shift-Reduce衝突を除去するのに 一苦労。で、LL(*)のパーサーを使い始めたが、左再帰除去しないといけないので可読性に多少難あり。 でも、慣れれば、複雑な文法定義するのにLL(*)のパーサーの方が開発しやすいのかも。そんな予感。
44 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 21:34:15 ] いいなあ東大。めっちゃ楽しそう 俺の頭では入れなかったよ
45 名前:43 mailto:sage [2007/11/25(日) 22:08:15 ] Expr = OrExpr OrExpr = AndExpr { "OR" AndExpr } AndExpr = NotExpr { "AND" NotExpr } NotExpr = "NOT" NotExpr | CompExpr CompExpr = AddSubExpr { ("="|"<"|">"|"<="|">="|"<>") AddSubExpr AddSubExpr = MulDivExpr { ("+"|"-") MulDivExpr } MulDivExpr = Primary { ("*"|"/") Primary } Primary = NUMBER | ("+"|"-") Expr | "(" ExprList ")" ExprList = Expr { "," ExprList } これで、優先順位OR<AND<NOT<比較演算子<2項+-<2項*/<単項+-で括弧付きが最優先になるよな?・ 後、単なるスカラー値のみじゃなく、(3,4) = (2,3)や((3,4),(5,1)) + (5,1) などもacceptできるよな? LL(*)のやっぱ、楽そうだな。
46 名前:43 mailto:sage [2007/11/25(日) 22:11:57 ] いや、上の文法だと単項+-と括弧付きの優先順位まずいかも。うむむ。
47 名前:43 mailto:sage [2007/11/25(日) 22:14:56 ] ExprList = Expr { "," ExprList } は ExprList = Expr { "," Expr } だった。
48 名前:43 mailto:sage [2007/12/01(土) 13:31:25 ] MulDivExpr = UnaryExpr { ("*"|"/") UnaryExpr } UnaryExpr = [("+"|"-")] Primary Primary = NUMBER | "(" ExprList ")" だった。 LLパーサー何気にいいんだけど、セマンティックアクションの実行されるタイミングがようわからん。 例えば、 AddSubExpr = MulDivExpr { ("*"|"/") MulDivExpr (. アクション .) } で、"*"まではパース成功して、右のMulDivExprで失敗してもアクションが実行される。 うーん。構文チェックだけならいいけど、構文木作ると、エラー時に上手くか書かないと 迷子のノードができて、メモリリークなる。orz
49 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 13:44:32 ] 確保したメモリをすべてグローバル変数にリンクリスト形式で繋いでいって、パース終了後にまとめて解放、とか
50 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 00:02:14 ] Objective-Cで書かれたLisp風のプログラミング言語「Nu」 programming.nu/ Java VM上で動くLisp風のプログラミング言語「Clojure」 clojure.sourceforge.net/
51 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 00:10:14 ] Lisp風の言語ならそっくりLispの方がありがたいんだが要するにLisp1等価って事だよな?(RnRSに従わないCommonLispは満たさない)
52 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:47:00 ] ClojureはASMっていうバイトコードジェネレータを使ってるんですね。 ASMはBCELやSerpより軽量で高速でgroovyでも使われてて サイズがBCELが350KB、SERPが150KB、ASM 2.2が33KB だそう。GroovyやJRuby等で使われてるみたい。
53 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 00:41:53 ] MikoScript 言語 www.venus.dti.ne.jp/mw31/miko/index.html
54 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:17:51 ] 箱?
55 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:29:19 ] 何用の言語なんだろ? オレオレ言語としては機能が充実してるけど、 何かに特化してるわけじゃなさそうだし。
56 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 01:11:04 ] 自作エディタに使ってるみたい ttp://www.venus.dti.ne.jp/mw31/apsaly/index.html
57 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 01:19:08 ] >>53 『本格的なオブジェクト指向プログラミング』って書いてあるけど、 何が出来たら本格的なんだろうか。そこに書いてある限りでは、 クラスが定義出来てインスタンスが生成出来て継承関係を作れる みたいだけど、リフレクションとかインスペクトが出来るわけでは なさそう。
58 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 16:22:45 ] プロトタイプベースのオブジェクト指向に対して クラスベースのオブジェクト指向を本格的といってるのかもしれませんね。
59 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 16:44:08 ] 本格的とか元祖とかを付けるとウケがいいからだろう 特に意味を考えてるとは思わない
60 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 16:49:40 ] 自分の言語ならそのへんはこだわりを持ってるのが普通じゃないか? 「本格的オブジェクト指向ってなんですか」とでも訊けば語ってくれるよ多分。
61 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 16:52:28 ] あくちぶべーちっくは本格的ですか?
62 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 07:42:19 ] そもそもオブジェクト指向みたいな現場から発生した醜いパラダイムに 本格的も糞もないだろうにw
63 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 09:22:44 ] ほー、PARC は現場なのか。へー。
64 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 09:37:58 ] そうだよ
65 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 12:55:53 ] >>62 をゴールドバーグ女史が読んだらなんと言うだろう
66 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 14:01:54 ] 申し訳ない、私は日本語は読めないんです という主旨のことを言うのでは
67 名前:デフォルトの名無しさん [2007/12/19(水) 22:55:40 ] HTTPのRFCを見るとヘッダの文法がBNFで書かれていました。なので、yaccとlexを使えばHTTPヘッダを解析できるかなと思った のですがlexで入力をトークンに分割するのが難しそうで行き詰まりました。Java等のプログラム言語だと、コメント部分でもない 限りトークンの区切りは空白文字でよいし、+を見たらPLUSとか適当なトークンとして認識すればよいしで字句解析部分はわりと 簡単そうですが、HTTPだと、たとえばAという文字を見たときに、UPALPHAと認識すればよいのか、HEXと認識すればよいのか、 それとも状況(lexの状態?)に応じて、数文字まとめて別のトークンとして認識したほうがよいのか、よくわかりません。UPALPHA とかHEXというのは、rfc-ref.org/RFC-TEXTS/2616/chapter2.html に載ってる終端記号名です。 こういう場合、どう字句解析を行うのがよいでしょうか?どういう細かさのトークンをyaccに上げればよいでしょうか? 練習として、BNF通りのヘッダであればどんなに複雑なものであってもパースできるパーサを作ってみたいのです。 アドバイスをお願いします。
68 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 22:58:51 ] まずは日本語をしっかりな。
69 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 06:11:47 ] BNFで表現してあったって文脈自由とは限らないと思うんだぜ。 まあパーサからレクサへ状態を渡すとかするんだけど、それはそれで大変だし 何もlex使わなくてもパーサを手書きすればいいじゃん。 自分で手書きできない人だったらlex/yacc使ってもあまりいい目は見ない気がする。
70 名前:デフォルトの名無しさん [2007/12/20(木) 11:16:55 ] >>69 BNFで表現できるのは文脈自由文法であると習いましたが違うんですか??? パーサ手書きでもいいんですが、たとえばどのような構成にするのでしょうか?
71 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 18:06:38 ] とりあえず、英大文字・小文字は1文字づつyaccにあげればいいんじゃ? で16進数の構文をyaccで定義すれば?
72 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 18:23:56 ] yacc デカルチャー
73 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 18:59:52 ] >>72 なんつー古さだ(20年前ぢゃねぇか:実はperlネタのところでも見かけた)
74 名前:デフォルトの名無しさん [2007/12/20(木) 21:00:53 ] >まあパーサからレクサへ状態を渡す こんなことできたっけ?
75 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 22:10:24 ] レクサーを自前なら可能だけど、lexではできない。flexはしらね
76 名前:デフォルトの名無しさん mailto:sa [2007/12/20(木) 22:18:47 ] (f)lexはlexer内で状態遷移できるよ。Cのコメント分を字句解析するときに使う奴。
77 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 22:51:15 ] >>71 本当に1文字づつ以外読まないのなら、字句解析を一切していないのと変わらないと思うんだがw
78 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 03:07:51 ] >>73 最近よく見かけるようになったのは 再放送してるからだろうw
79 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 07:11:04 ] >>77 字句解析一切していないからってそれがどうしたんだよ。
80 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 13:48:08 ] 字句解析が不要ってこと?
81 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 18:55:50 ] え?字句解析してない?しまった〜〜下手こいた〜〜〜 ズン・ズン・ズン・ズン
82 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 19:00:40 ] ツマンネ
83 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 02:32:43 ] >>53 MikoScript面白いですね。 リレー型関数コール演算子は、Rubyみたいに、下手な既存classの拡張をせずとも、 メソッドを追加したように見せかけたり、 既存の関数を、作成したclassのメソッドのように見せかけたりできる。 puts("hoge"); を "hoge"'puts; と書いたり、 a = int(1234.56) を a = 1234.56'int と書いたり。 代入型の関数コール形式は、 言語仕様としては、シンタックスシュガーの域を出ないが、 全てがオブジェクトではない、言語にはよさそうな仕様。 コマンド型の関数コール形式は、ま、いらんなw ところで、箱がいまいちわからん???
84 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 02:33:12 ] > 代入型の関数コール形式は、 > > 言語仕様としては、シンタックスシュガーの域を出ないが、 > 全てがオブジェクトではない、言語にはよさそうな仕様。 代入型の関数コール形式も、 言語仕様としては、シンタックスシュガーの域を出ないが、 全てがオブジェクトではない、言語にはよさそうな仕様。 ミス・・・
85 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 03:49:24 ] どのへんが本格的なの?
86 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 13:42:40 ] xtal code.google.com/p/xtal-language/
87 名前:デフォルトの名無しさん [2008/01/01(火) 16:03:44 ] >>41 こんな感じで他の大学も講義の資料公開(?)してくれると嬉しいな。 講義で使ってる本の紹介だけでもいい。 アメリカみたいに講義をpodcastで公開してくれなくてもいいから 雑誌も減ってきてるし、なかなか体系だって勉強できるネタが少ないのが最近の悩みだから
88 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 16:14:04 ] おっぱいそん入門 ぷりんとぼいん ”こんにちは おっぱい!”
89 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 16:16:58 ] >>87 ガベージコレクションが気になった mallocをGC_MALLOCに変えるだけでfleeいらずとはこれいかに
90 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 16:29:50 ] >>89 Keep your dog free from flea!
91 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 16:32:08 ] >>90 OK. I understand!!! Thanks. :D
92 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 19:07:36 ] これいかに、ってベームGCだろ条項
93 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 01:25:54 ] ぼえーむじーしーと読んでたのは俺とお前だけの秘密だぜ
94 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 01:53:27 ] La BohemeGC
95 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 02:08:29 ] ぼへむじーしーってよんだmした><
96 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 10:16:26 ] オペラだったらボエームって読んでええんでないの?
97 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 16:06:38 ] BGCか
98 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 23:46:38 ] ふと思ったんだが、バイトコードのコンパイラって可能? 例えば、Javaとか.NETのソースをコンパイルしてできた、バイトコードをネイティブ形式にコンパイルする
99 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 23:49:11 ] GCJはclassファイルをネイティブにコンパイルしてるよ
100 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 00:03:08 ] >>98 なんのための JIT なんだ?
101 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 02:19:59 ] >>99 にわかですまんが ネイティブってことは逆にVMじゃ動かんの?GCとかどうしてんだ?
102 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 11:57:23 ] gcjでネイティブコンパイルしたら本物のネイティブコードになるのでVM上では動かない GCとかは実行ファイルにリンクするランタイムライブラリ(libgcj)に含まれてる
103 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 14:22:38 ] >>101 更にgcjのランタイムにはJVM相当機能も含まれてて.classの実行もできる. なのでjarの動的ロードとかも可能になってる. # クラスライブラリ足りなくて実用するのは大変だが…
104 名前:101 mailto:sage [2008/01/13(日) 15:38:31 ] >>102-103 なるほど、ありがとう。 しかし、 ttp://www.shudo.net/article/Fedora-Core-Expert-200507-GCJ/#performance ↑を見る限りパフォーマンスでのメリットがないw
105 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:17:52 ] caperのなかのひとサルでも分かるチュートリアルつくってorz 特に構文木のところがサパーリ
106 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:26:04 ] 105じゃないけど、caperべんりです、ありがとさんです。
107 名前:デフォルトの名無しさん [2008/01/13(日) 20:39:18 ] caperって?
108 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:32:28 ] ググレスカ
109 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:33:42 ] Cygwinいんすこして、bison-2.1.exeとflex-2.5.4a-1.exeをいんすこしたんだけど、 flexを動かそうとすると、bash: flex command not foundとでます どーやれば、うごかすことができるんすか?
110 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:40:22 ] >>104 今のJVMは起動時間はクソ遅いけど処理自体はそれなりに速いからねぇ… gcjでネイティヴバイナリ化するとアプリの起動時間はJVMより速くなる. が,処理時間は正直速くならんね…
111 名前:デフォルトの名無しさん [2008/01/14(月) 12:39:53 ] www.shudo.net/article/Fedora-Core-Expert-200507-GCJ/#performance でもいい話を聞いた。 VMでどのOS上でも動かせるJAVAがネイティブコンパイルで多分単体で実行できるなら配布しやすいし 多分DirectX使った高速化も・・・・ けどここのサンプルシューティングは動かん。 IE用JavaMV入れただけだけどコマンドラインでJAVA呼び出せるんだけどなんでだろ。 www.hcn.zaq.ne.jp/no-ji/game/game.htm
112 名前:デフォルトの名無しさん [2008/01/14(月) 13:31:46 ] Cygwinいんすこして、bison-2.1.exeとflex-2.5.4a-1.exeをいんすこしたんだけど、 flexを動かそうとすると、bash: flex command not foundとでます どーやれば、うごかすことができるんすか?
113 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:14:45 ] >>105-107 caperおもしろいな あとは、軽い汎用VMでもあれば、お手軽自作言語が簡単にという夢を見た
114 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:35:25 ] VMは作るのだけならそんなに難しくないよ。 むしろ既存のVMに乗せる方が困難なんじゃないだろうか。
115 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:59:03 ] >>114 同意。 組み込みでメモリ制限がきつい時にマクロの一種としてVM作ること多いんだけど、マジでそう思う(VMも似通ってるけど特殊なプリミティブが組み込み対象別なのでメモリ制限の関係でいまいち統一的に扱えない)
116 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:22:07 ] Pコードか!
117 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:43:14 ] 似たようなもの。 セルフコンパイル、自己デバッグくらいは処理できる(実機ではそんなメモリないけど、エミュをデスクトップ機上に簡単に作れるのでそちらでデバッグ) 32KワードくらいのRAMのうち16K自由にできれば自己完結環境になれるからね>>pcodeがUCSDのだとすると
118 名前:デフォルトの名無しさん [2008/01/16(水) 19:58:47 ] p2cコンパイラをcygwin環境で動かすにはどうしたらいいですか?
119 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 03:01:23 ] GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ) wiki.livedoor.jp/author_nari/d/GC 日本語のGC解説は珍しいね
120 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 11:59:22 ] おー 簡単な物は大学の授業や演習の資料とかではあるけど ネット上でブラウザで閲覧可能でまとまってるものはごくわずかだからなぁ
121 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:55:09 ] MS-DOSのバッチファイルのBNFってどこかに落ちてませんかね。 googleしてみた限りでは見つからないのですけれども・・・。
122 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:57:32 ] バージョン違いがあるし、難しいんじゃないかなあ? そもそもコマンドベース言語だし。 過去、バッチを読み込むプログラムは存在してるから、 その作者に連絡とってみるとか。
123 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 20:00:41 ] テンプレにある、コンパイラ構成法の正誤表がアクセスできん。
124 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 20:19:09 ] GCって昔読んだ説明から、何ひとつ進歩してないような気がする。 気のせいか?
125 名前:121 mailto:sage [2008/01/24(木) 21:12:43 ] >>122 レスありがとうございます。 引き続きもうちょっと色々と調べてみようと思います。
126 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 00:58:25 ] >>124 > GCって昔読んだ説明から、何ひとつ進歩してないような気がする。 > 気のせいか? 最近の動向を含んだ解説がまだあまり出回ってないから。 個人的に記憶に残っているものをいくつか。 ・理論系 ・ttp://home.pipeline.com/~hbaker1/ThermoGC.html ・タイトルが思い出せないのだが、リファレンスカウントと ガベージコレクションは双対である、とかなんとかそんなの。 ・実装系 ・ttp://www.nminoru.jp/~nminoru/java/cms/pauseless_gc.html ・ttp://sdc.sun.co.jp/java/performance/GCinJava/index.html
127 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:47:41 ] >>124 の言う昔が僕の言う昔と違うことだけはわかる。 ここ5年だったらあんまりかわらんが、10年だとだいぶ違う。
128 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 20:14:12 ] statements や expression や leftvalue(左辺値) などの意味は分かるのですが、 primary とはどういった時に使われるのでしょうか? あるいは、どういったものをいうのでしょうか?
129 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 20:51:11 ] primary expression (一次式) なら定数や変数など それ以上分解できない式のことだが
130 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:49:24 ] GCが進歩したのはJavaのおかげ。 Lispだけではとてもとても。
131 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 23:39:24 ] >>129 そういう意味でしたか、どうもありがとうございました。
132 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 23:49:21 ] > ・タイトルが思い出せないのだが、リファレンスカウントと > ガベージコレクションは双対である、とかなんとかそんなの。 A Unified Theory of Garbage Collection
133 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:53:05 ] >>130 Lisper(笑)
134 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 05:35:37 ] LisperはN64で使われてるとかいろいろ誇らしげに言うからな GCは進歩したのもLispのおかげなんだよ
135 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 08:00:39 ] >>134 GCに一番寄与したのってSUNのプロダクトだとjavaよりselfじゃないのかな?
136 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:57:09 ] 「A Scala Tutorial for Java programmers」日本語訳 (PDF注意) homepage.mac.com/takashi_miyamoto/scala/ScalaTutorial.pdf オブジェクト指向+関数型なScalaのチュートリアル こういう言語の話題はどこもってけばいいんだ
137 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:02:00 ] ここ(笑) とは趣旨が違うよなぁ。 なにか新しい言語を、作りたい人じゃなくて使いたい人のためのスレか。
138 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:21:02 ] OOP言語統合とか、関数型統合とかないからねえ OOはネガティブなスレしかないw
139 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:24:11 ] >>119 のid:authorNari がGC本の翻訳希望者つのってる。本気かいな・・・てか需要あるんかいな・・・
140 名前:デフォルトの名無しさん [2008/01/30(水) 23:36:23 ] LISP使いの人が一番だなって感じたことがあるんだけど、 それは、 プライドの高さ。(マジ
141 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 00:04:15 ] >>140 なんで? どの辺が??? そんなプライド高くねぇとおもうぞ……… 少なくとも俺のしってる奴は, みんな, C とかアセンブラとか書けるし… そう言う問題とはちゃう?
142 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 00:06:54 ] >>140 ワシはLisp使いだがプライドって旨いのか? まだ食った事ないぞ
143 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 00:21:07 ] Lisp を貶せば自分が高みに上がれると思ってる奴ってまだ居たんだな この多言語時代に、とっくに絶滅したと思ってたよ
144 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 00:50:57 ] にじみ出るプライドが俺を呪い殺そうとしている^p^
145 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 05:49:48 ] せっかく煽ったのに、内容がここまで勘違い全開だと恥ずかしいな。
146 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 09:00:35 ] >>145 馬鹿が見る豚のケツって言葉を思い浮かべた
147 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 15:59:54 ] lisp = 鮫島事件 おや?誰か来た様だ
148 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:44:45 ] 俺はJavaとか使ってる奴とは違う。
149 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:50:39 ] かわいそうに、java屋以下とは……
150 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 07:25:09 ] 馬鹿さ比べでjava屋以下になっても あんまり悔しくないよなぁ
151 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 08:28:16 ] 所詮Windowsなんて使ってる以上、どちらも一緒
152 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:47:22 ] ruby v.s. php か
153 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:52:37 ] お前ら >>1-6 を読め ただのLL談義はスレ違いだ
154 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:28:11 ] LL談義は、こちらで盛り上がってるのでどうぞ 【Perl,PHP】LLバトルロワイヤル【Ruby,Python】 pc11.2ch.net/test/read.cgi/tech/1188997302/
155 名前:デフォルトの名無しさん [2008/02/03(日) 22:16:59 ] 質問です。 bisonで、下のリストのconflictがどうしても消せません。 通常の式と、定数式を別に扱いたいんですが、両方にある単項マイナスが 解決できないようです。 %precを使ってもうまくゆきません。 どうにかならないでしょうか? -- %token tkNUM tkVAR %left EXPC %left '+' %right '-' %% /* 式 */ exp: expc %prec EXPC | tkVAR | exp '+' exp | '-' exp ; /* 定数式 */ expc: tkNUM | expc '+' expc | '-' expc ; %%
156 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:26:05 ] >>31
157 名前:デフォルトの名無しさん [2008/02/03(日) 22:42:43 ] ところでみんな、コンパイラ/インタプリタを作るにあたり、 C言語とアセンブリ以外の言語で、という条件だったら、 どの言語使う?
158 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:46:21 ] C++
159 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:48:48 ] なんか %prec の使いどころがようわからんのだけど、 単項マイナスのためのおまじないとしか俺理解してないので なんか変じゃないの? としかアドバイスできない。
160 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:49:14 ] Cみたくネイティブコードコンパイラがあって Cよりずっと型安全な言語がいいなぁ どんな言語があるかよく知らないが
161 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:52:15 ] GCJ?
162 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:52:22 ] >>160 その条件だと SML, OCaml, Haskell が該当する。 これらの言語は処理系の実装によく使われるけど、 ランタイムの制約が大きいので要注意。
163 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:52:22 ] 何も考えずにHaskell
164 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:54:36 ] ランタイムの制約って何?
165 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:59:35 ] >>164 自前で GC を用意したいとか、Int は 32bit ないと嫌だとか、 細かい処理系の実装を弄りたい向きには合わない 楽したいならむしろ良いのかもしれんけど
166 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:03:38 ] >>165 なるほど、インタプリタの話か コンパイラ書くことしか考えてなかった 真面目にインタプリタを書くなら、Haskellで書かれたバイトコードコンパイラ+Cで書かれたバイトコードインタプリタ みたいな構成にすれば良いかな
167 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:16:27 ] %prec EXPC が変だな。
168 名前:155 mailto:sage [2008/02/03(日) 23:29:15 ] >>167 %precがないとexpの'+'とexpcの'+'でconflictが起きるんです。
169 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:44:41 ] expとexpcを混ぜて定義しようとするからconflictするわけで exp: tkVAR | tkNUM | exp '+' exp | '-' exp expc: tkNUM | expc '+' expc | '-' expc
170 名前:155 mailto:sage [2008/02/03(日) 23:54:08 ] >>169 それだと定数式もexpになってしまいます。 要するに、 a + 2 + 3 を、 tkVAR + expc としてパースしたいんです。 パーサの段階で定数式を最適化したいんです。 難しいですかね?
171 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:45:31 ] パーサの時点で定数式の最適化って 2 + a + 3 とか最適化できなくね?
172 名前:155 mailto:sage [2008/02/04(月) 01:27:57 ] >>171 それはできなくて良いです。 つか>>155 のやり方でもうちょっと書いてみたけど、 演算の優先順位でも問題が発生したのでやっぱり 諦めることにしました。 面白いアイディアだと思ったんだけどなぁ…
173 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:27:58 ] 「パーサの段階で定数式を最適化したい」んならアクション中で最適化すればいいだろ 文法レベルで最適化する意味が分からん
174 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 09:49:13 ] 構文のレベルで弁別しといたほうが楽、という理由はあるかも。 優先順位付けで誤魔化すんじゃなくて、きちんと優先順位を組み込んだ 構文規則にして、あと、何かテクニックがあったような気がするんだけど...
175 名前:155 mailto:sage [2008/02/04(月) 12:01:23 ] >>173 tkVAR '=' exp tkCONST '=' expc みたいに書けると良いかなと思ったんですよ。 >>174 > 何かテクニック 参考になる資料があれば是非教えて頂きたいです。
176 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:30:58 ] Haskellでインタプリタか・・・ Haskellってメモリ気にし無さすぎだからヤバそうなイメージがあるけど、 実験用と以外で使われているんだろうか
177 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:31:41 ] ああああ、アホか俺は。 そんなのは処理系依存だよな。 スマソ。
178 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:14:06 ] %right '-' も変でないか その構文では2項演算子じゃないよね
179 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:33:08 ] 確かに
180 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:49:25 ] 衝突の消し方は、Rubyを256倍使うための本 無道編、で読んだような気もする。記憶が正しいという自信はない。 とりあえず衝突が出なくなるところまでコナしてみたわけなのだが、これで希望する構文規則になっているだろうか。 %token tkNUM tkVAR %% /* 式 */ exp: exp_ | expnc '+' expc_ | expc '+' expnc_ ; exp_: expnc | expc ; expnc: expnc_ | expnc '+' expnc_ ; expnc_: tkVAR | '-' expnc_ ; /* 定数式 */ expc: expc_ | expc '+' expc_ ; expc_: tkNUM | '-' expc_ ; %%
181 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:58:18 ] %token tkVAR tkNUM %left '+' %right UMINUS %% program : | program line ; line : '\n' | exp '\n' ; exp : expr { printf(" expr\n"); } | cexpr { printf(" cexpr\n"); } ; cexpr : cexpr '+' cexpr { printf(" c+"); } | tkNUM { printf(" %c", $1); } | '(' cexpr ')' | '-' cexpr %prec UMINUS { printf(" cneg"); } ; expr : expr '+' expr { printf(" +"); } | expr '+' cexpr { printf(" +"); } | cexpr '+' expr { printf(" +"); } | tkVAR { printf(" %c", $1); } | '(' expr ')' | '-' expr %prec UMINUS { printf(" neg"); } ; %%
182 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:58:50 ] 続き int yyerror(char *msg) { printf("%s\n", msg); return 0; } int yylex(void) { int ch; while (isspace(ch = getchar()) && ch != '\n') ; if (isalpha(ch)) { yylval = ch; return tkVAR; } else if (isdigit(ch)) { yylval = ch; return tkNUM; } else { return ch; } } int main(void) { yyparse(); return 0; }
183 名前:デフォルトの名無しさん [2008/02/05(火) 16:31:40 ] メンバーアクセスと呼び出しの構文規則を考えていたんですが、 expr: mem-expr mem-expr: invoc-expr ['.' invoc-expr]* invoc-expr: prim ['(' [arg]* ')']* prim: ident |(expr) こんな感じで C++ や Java 風の式を評価できますか? 結合順とかは問題なさそうでしょうか?
184 名前:183 mailto:sage [2008/02/05(火) 16:36:02 ] 一応、こんなのは全部許したいです。不正なものは意味解析ではじく方向で。 foo.bar.baz; foo.bar.baz(); foo.bar.baz()(); foo.bar().baz; foo.bar().baz(); foo.bar()().baz; foo.bar()().baz(); foo.bar()().baz()(); foo().bar.baz; foo().bar.baz(); foo().bar().baz; foo().bar().baz(); foo()().bar.baz; foo()().bar.baz(); foo()().bar().baz; foo()().bar().baz(); foo()().bar()().baz; foo()().bar()().baz(); foo()().bar()().baz()(); (foo).bar.baz; (foo).bar.baz(); (foo).bar.baz()(); (foo).bar().baz; (foo).bar().baz(); (foo).bar()().baz; (foo).bar()().baz(); (foo).bar()().baz()(); (foo()).bar.baz; (foo()).bar.baz(); (foo()).bar().baz; (foo()).bar().baz(); (foo()()).bar.baz; (foo()()).bar.baz(); (foo()()).bar.baz()(); (foo()()).bar().baz; (foo()()).bar().baz(); (foo()()).bar()().baz; (foo()()).bar()().baz(); (foo()()).bar()().baz()();
185 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:14:41 ] うぜえ・・ それぐらい自分で判断しろ 半年ぐらい既成の文法眺めてろ
186 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:33:07 ] ヨミ肉w
187 名前:183 mailto:sage [2008/02/06(水) 08:45:44 ] >>185 既存の文法クレクレ
188 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:56:48 ] >>31
189 名前:183 mailto:sage [2008/02/06(水) 12:11:15 ] 再帰下降のパーサを手書きしてるからパーサ【ジェネレータ】の話じゃない。
190 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:10:11 ] java.sun.com/docs/books/jls/third_edition/html/syntax.html
191 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:58:18 ] >>183 Javaは関数ポインタないから(hoge)() とか hoge()() はできないよ。 Javaの構文規則みても、あんまし参考にはならないと思う。
192 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:17:49 ] C言語の本に書いてあるよ
193 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:34:15 ] 1.6で関数型ができるという話はどうなってるの? Java
194 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:24:46 ] そんな話ないよ
195 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:38:13 ] ごめん、7だった。
196 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:43:36 ] >>193 あれは func() じゃダメで func.invoke() とかやる事になってる。 名前空間汚れるから互換性捨てないと func() みたいな呼び出しは無理。
197 名前:jonigata mailto:sage [2008/02/07(木) 03:08:09 ] あごめん しばらく動きなかったからすっごい見てなかった >>105 どんな解説でしょうか? caperというよりもっと一般的な話であるなら、 すでにあるものよりうまく説明できる自身がまったくナイデス 256倍のraccのやつとか読むといいと思うけど まだ売ってるのかな >>106 用途とかバグとかウザいところとかあったら教えてください ..... 書き込みから20日もたってるのでいまさらだけどw
198 名前:jonigata mailto:sage [2008/02/07(木) 03:16:47 ] つーか今になって見ると 俺が読んでもわからんですね たとえばTutorial 1: > 7行目のupcastは、各非終端記号の型から、Parserのインスタンス化のときに > テンプレートパラメータとして与える「値集合すべてをあらわす型」への変換を提供する関数です。 > セマンティックアクション関数がひとつでもある場合、安全な型変換のために > この関数が定義されていなければなりません。 ハア? わけわかんねーよバカじゃねーの って感じw とはいえこれはこれで「yacc使ったことある人」対象であれば 簡潔にまとまっているような気もしないでもない 気が向いたら読み直して書き直してみます
199 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 06:12:26 ] なんかワロタ
200 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 16:25:28 ] 作者キター caperでJavaScript生成させると this.get_arg = function( base, index ) { return this.stack[ this.stack.length - ( 3 * ( base-index ) + 2 ) ]; } みたいなコードが出てくるけど this.get_arg = function( base, index ) { return this.stack[ this.stack.length - ( 3 * ( base-index ) ) + 2 ]; } の間違いじゃないすか?
201 名前:jonigata mailto:sage [2008/02/07(木) 21:58:54 ] javascript普段使わない上 3時間くらいで書いたコードなのでまったく思い出せない…… が そのようですね 現在のコードだと、 パーサは動くけど セマンティックバリューにぜんぜん意味わかんないものが返ってくるってことかな? >>200 さんはそれでわかったのでしょうか?
202 名前:デフォルトの名無しさん [2008/02/07(木) 23:36:20 ] え?どれを3時間だって?
203 名前:jonigata mailto:sage [2008/02/08(金) 11:48:35 ] >>202 jsジェネレータ(caper_generate_js.cpp)です。 といっても、自分に興味がほとんどないので 上のようなバグ出しちゃうわけですが…… C#やDのジェネレータを書いてくださった方もいらっしゃるので、 他の人でもさほど難しくなさそうですよ。 PHPも需要がありそうなんで挑戦しようとしたんですが PHPの仕様のアレさにやる気が失われました。 難しくはないと思うのですが。 週末久しぶりにバージョンアップしようかと思います。 上のバグ直してC#やDのジェネレータを取り込んだバージョン。
204 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:43:41 ] >>203 乙!
205 名前:jonigata mailto:sage [2008/02/10(日) 13:44:07 ] む、C#のジェネリクスってduck typingできないのか もらったコードバグっててちょっと使えないな…… C#はいったんなしにするか
206 名前:jonigata mailto:sage [2008/02/10(日) 13:49:27 ] Dは普通に動いたっぽい C#ジェネレータはundocumentedでだして 誰か得意な人に見てもらおう
207 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 17:31:53 ] スレチガイ
208 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:16:50 ] パーサジェネレータのスレってどこにあるん?
209 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:57:29 ] >>208 今のところここがもっとも近い、そういう意味じゃ>>207 は微妙な指摘というか言葉たらず。 独白に近いのでそういう事はBlogでやれって意味じゃまさに207の指摘どおり。
210 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 11:44:05 ] 趣味で(ほぼ無意味ですが)C++とほぼ同等のコンパイラを作っています。 当然テンプレートとかはないですが、文法がそっくりという意味です。 質問なのですがC++は何故、クラスの定義がファイルの行数的に先に行なわれていないとコンパイルエラーになるのでしょうか? 例えば CHoge test; class CHoge { }; こういう順番だと、CHogeって何?未定義なんだけど。ってエラーになりますよね。 ファイルの上から処理して言ってるのだから当たり前なのは分かってます。 ですが先に class などの定義系を先に処理してからにすれば回避できる問題かと思います。 「先に全ファイルをチェックして定義系を処理してから、再度全ファイルを処理する」 という2度処理が、C++が生まれたころのマシンスペックではもったいなかったのでしょうか?
211 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 11:53:55 ] 過去の名残。
212 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:09:17 ] >>210 Cのstructの仕様をそのまま引き継いでるだけかと。 C++というよりは、Cが生まれたころのマシンスペックだろう。
213 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:02:39 ] >>211-212 なるほど、ありがとうございました。 無理にそこを真似する必要はなさそうですね
214 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:39:58 ] 最初のC++コンパイラはCへのトランスレータだったような気がする。(SS1の頃でメモリも16M位が標準だった)
215 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:55:16 ] ttp://en.wikipedia.org/wiki/Cfront
216 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:35:10 ] 質問 Javaっぽい言語でスクリプト作ってたんですが、数値型に何も考えずに int, short, byte, long をつくったんですよ でもおかげでかなりVMやコンパイラの仕組みが複雑になってしまってコマってます 正直、shortとかbyteってみなさん使ってます? (メモリーをケチる目的以外で) バイナリファイルを解析する時とかはさすがにbyte単位で扱えなければ話にならないと思いますけど ByteArrayStreamみたいなものがあればそれでいいかなぁとか考えてるのですが…
217 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:42:31 ] Javaっぽいって…
218 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:47:14 ] >>217 すごい誤解招きそうな文章でしたね Javaっぽい文法でスクリプトを作ってたんですが〜としてください
219 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:16:56 ] byteやshortも過去の遺産じゃね? よっぽどメモリーがきつい環境で無い限り、演算もintのほうが速いわけでもあるしint使うわ
220 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:32:05 ] あるいは、メモリに常駐するデータ量が2Gか4Gかという差があるとかな
221 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:35:56 ] 確かにそれくらいメモリーの差が出るなら考えるなw まぁそれもByteArrayStream?があればそっちでいいわけで Javaのものだと仮定すれば、あれランダムシークもできるし(Byte型の配列とほぼ同義として扱える)
222 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:56:28 ] >>216 JavaVMも配列とかフィールドにはbyteやshortがあるけど、スタック中ではint扱いっすよ いちいち丸め処理が入るだけで long, float, double や参照は別扱いだけど
223 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:25:44 ] C でも汎整数拡張とかあって、 式中では勝手に int に格上げされるな。
224 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 22:23:46 ] でも、エンジニアリングモデルでは普通に使ってるよ。
225 名前:jonigata mailto:sage [2008/02/16(土) 12:32:02 ] 先週末にバージョンアップするとかいっときながら遅れましたが caperバージョンアップしました。 tinyurl.com/yefoxa 例によってうまく動かなかったらごめんなさい。 C#ジェネレータとか一応組み込んだけど 普段使わない言語でぜんぜん要領を得ないので 詳しい人がいたらここかブログ( d.hatena.ne.jp/jonigata/ )に なにかアドバイス等いただけるとうれしいです。
226 名前:デフォルトの名無しさん [2008/02/21(木) 23:44:59 ] 場違いかも知れませんが、宜しくお願いします。yacc/lexはc言語での 作りですが、perl言語で同様の処理をしたいのですが、処理系はあるの でしょうか? 以前は、随分と前に見た事はあるのですが、最近は見かけなくなりまし た。知っている方、どうかそのインストール方法...等アドバイス宜 しくお願いします。
227 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 23:56:50 ] Racc
228 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 09:04:34 ] kmyacc
229 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 08:45:05 ] 構文解析のアルゴリズムが沢山載っている「Parsing Techniques - Second Edition」 www.cs.vu.nl/~dick/PT2Ed.html
230 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 09:20:44 ] >>27 >>37 LLVMはMac OS XのOpenGLスタックで使われてるよ。 PyPyもターゲットの一つにしてる。 llvm.org/Users.html
231 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 01:53:45 ] gnu makeのBNFとかってありますかね?
232 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:32:59 ] やはり新しい言語の方が優れてるのですか?
233 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:42:55 ] 兄より優秀な弟などいない
234 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 15:05:15 ] >>233 イギリス皇室の方ですか?
235 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:16:19 ] >>233 ラオウ乙
236 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:48:49 ] >>235 ジャギでは
237 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 18:32:44 ] >>231 GNU Make のソースツリーの中に無いの? 知らないけど。
238 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:05:11 ] Lisp 最高〜!
239 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:03:56 ] そういえば、昔どこかのサイト(海外)で、 プログラミング言語の上下関係を図式化したものがあった。 そこでは確かに Lisp が一番上位に来ていたような… 何がいいのかさっぱりわからんがw
240 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 08:26:38 ] >>239 原文を見てない範囲での推測だが、 S式という情報の取扱形式が 全ての上位に来ると言う意味なら判らなくもない。 ただそういう比較は扱う人の主観でしか有り得ない。
241 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 13:19:49 ] ここにそれっぽいのがあるね ttp://www.geekpage.jp/blog/?id=2006/12/13
242 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:18:53 ] Adaのマルチタスクプログラミング舐めてるのか!
243 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:29:15 ] Lisp - C の連結はありえない
244 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 18:16:28 ] >>241 これは面白いな。 ところで、最近のマクロという名のプログラムはどこに?
245 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 18:23:52 ] 面白くないぞw
246 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 06:10:35 ] >>241 部分部分を見るとアレだけど、大まかな流れは頷けなくもない。 LanguagesではなくProgrammersを扱った図だからね。言語の宗教論争とはちょっと事情が違う。 「上位」プログラマは、多くの場合「下位」プログラマ"でもある"(その言語を使える)か、 あるいは"すぐにそうなれる"(パラダイムを十分把握していて、表面の違いを学ぶだけでいい)状態にある。 きっちり成立しているとは言わないけど、少なくとも、同じ事を上下逆に考えるよりは成立している。 だから全体を、あくまで曖昧なレベルで、クラス図の比喩として見ることができるんじゃないかと。 別の言い方をするなら、この図は、 「あなたが言語Xと言語Yを使えて、どちらかの言語名+プログラマ、でしか自称してはいけないと言われたら、 どちらを口にすれば、自分のスキルや経験値をよりあますことなく示唆できるだろうか?」 っていう「ソート」の結果であり、実際、まんざらデタラメな結果ではないと思う。 LispとCが使える人だったら、この図の「Lispプログラマ」に自分を置くし、たぶんそれで正解だろう。 逆を自称するよりは、その人の経験してきたことの「より多く」を伝えられると思う。たぶん。
247 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 07:11:51 ] > クラス図の比喩として見ることができるんじゃないかと。 そんな必要はないだろ。 その見方から何が得られたかも書いてないし。 クラス図言いたいだけと違うんかと
248 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 07:30:39 ] >>247 よくわからん返しだな。
249 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:06:36 ] ジョークにマジレスしてる>>246 もよくわからんのだが…
250 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:23:52 ] >>249 ジョークがまんざらでもないことを面白がってるんだよ。
251 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 13:37:47 ] 「そうそうあるある」ってのが笑いどころのネタだしな
252 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 14:59:48 ] まんざらでもないからこそジョークとして成立してるところに 「いやこのジョークはまんざらでもないんだよ!」と解説しちゃうところが無粋すぎ。 ってかスレ違いすぎだな…
253 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 19:01:19 ] そうとも思わないが?スレチ なかなかおもしろいと思う。
254 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:27:09 ] 使用者のヒエラルキーなんてマ板の範疇だろ・・・ スレ違いどころか板違いだ
255 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:36:37 ] 糞つまらなねえ >>241
256 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 05:34:52 ] まぁ、自分が悪く言われているジョークが面白くないのは自然だ。
257 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 13:23:29 ] >>241 の元ねたの最下位カーストだけ妙に具体的なのは おもしろかったw
258 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 00:33:28 ] お気に入り言語が下にあるからって、そんなにカリカリせんでもw
259 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 00:43:41 ] 出来が悪いのはともかく、 言語の階層じゃなくて、 プログラマーの階層なんだぜ?
260 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:24:06 ] 古臭いネタまだひっぱるのか?
261 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 09:59:11 ] 約一名のこのネタの腐しかたが特徴的すぎるんだが、何がそんなに気に入らないんだろw
262 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:03:53 ] 誰のこと?
263 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:59:41 ] 野村君のことだよ
264 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 19:07:54 ] 鈴木君は?
265 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:31:18 ] 鈴木君は良い奴だよ。 先週、尻にタイ焼きを詰まらせて亡くなったけど。
266 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 19:26:54 ] 田中くんは?
267 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 23:18:15 ] 山田さんは?
268 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 14:48:16 ] おーい
269 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 21:19:35 ] 中村くん
270 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 16:30:45 ] なんだい?
271 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:07:31 ] ちょいと待ちたまえ
272 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 19:41:25 ] >>270-271 が>>268-269 と世代が違う件について
273 名前:デフォルトの名無しさん [2008/04/07(月) 12:00:22 ] >>272 オハヨー!! ∧∧ ∩ (`・ω・)/ ⊂ ノ (つノ (ノ ___/(___ / (___/  ̄ ̄ ̄ ̄ ̄ ̄
274 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 10:09:21 ] スクリプトの概要 - Tactico www.lagarto.co.jp/tactico/script.html 定評ある投資ツールOmegaチャートの作者が開発している、次期投資ツール「Tactico」に搭載されているスクリプト言語の解説。 関数型言語のにおい
275 名前:デフォルトの名無しさん mailto:age [2008/04/20(日) 15:48:01 ] あげてもいいですか?
276 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 16:03:12 ] いいけど、またLISPネタになるだけだよ?
277 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 18:25:38 ] >>275 既にあげてんじゃねぇかYo!
278 名前:デフォルトの名無しさん [2008/04/23(水) 22:42:00 ] 本のサンプルで利用されているANTLRをお勉強中。 今までこういったものを触ったことが無いので枠枠してる。
279 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:47:58 ] SquirrelとXtalのソース見て勉強中 頭では分かっていても、実際にコードへ落とすときに悩んでしまう
280 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 19:30:01 ] プログラムの最適化方法、特にベクトルプロセッシングの最適化について知りたいのですが、 どこか参考になるサイトはありませんか? よろしくお願いします。
281 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 19:34:58 ] つ『コンパイラの構成と最適化』
282 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 20:20:15 ] 了解しました。ありがとうございます。
283 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 00:33:06 ] 髭を伸ばそうかと思っているんだけど、おまえら髭どうしてる?
284 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 03:58:14 ] 剃ってる
285 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 06:13:41 ] これか スラッシュドット・ジャパン | 髭がある程プログラミング言語は繁栄する? slashdot.jp/developers/08/04/30/0830201.shtml
286 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 07:43:06 ] 髭はバリカンで刈ってる。 別に髭専用バリカンてわけでもない。
287 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 12:12:15 ] 年単位で前に読んだ記憶があるネタだな
288 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 05:41:41 ] 俺はひげ専用バリカン持ってるよ。 長さを自在に調整できるやつ。 ただ今使っているのは電池専用なので使いにくい
289 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:25:36 ] 型名と変数名を名前システムの観点から考察した 議論ってなんかある?
290 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 21:01:37 ] いきなりどうした、頭大丈夫か?
291 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 21:13:52 ] 静的型って、型名と変数名とスコープを結びつけるわけじゃん。 抽象データ型って、変数名とスコープを介して 型名とプロシージャ名を結びつけるわけじゃん。 こういうのを名前システムとして眺めたら、 なんか見えてこねえ?
292 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:02:18 ] なにが言いたいのかわからん マヨイガでも見えてんのか
293 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:29:35 ] 今 >>289 の脳内で画期的な理論が生まれようとしている! のかもしれない…?
294 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 13:32:22 ] ただの型推論なんじゃない?
295 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:13:03 ] GUIクラスライブラリのBoxクラスを想定。 Boxクラスには、x, y, width, heightというフィールドがある。 xとyのあいだ、widthとheightの四則演算は原理的に 禁止。書けてしまう&実行できるのは、言語が 行き届いてない証拠。 言語レベルで禁止するには、x, y, width, heightを それぞれ別の型にしてしまえばいい。 でもそうすると、Xクラスのフィールド名はx、Yクラスの フィールド名はy、てなことになるわけだ。 これって間抜けじゃね? 型名と変数名を名前システムの観点から考え直せば、 こういう間抜けなことの起こらない方法が見つかるかも しれない、ってこと。
296 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:38:40 ] キログラムとセンチメートルといった単位の違うものを足したりできなくしようというわけか? 興味深いけど、なんか面倒臭そうな気がする
297 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 19:01:53 ] 過度な形式化は無用な世話だ
298 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 19:07:28 ] >>295 間抜けでもいいなら、不正な操作を禁止することは既にできるわけだろ 冗長だから短く書きたいというなら型システムの問題ではない Lispのマクロのようなものがあればいい
299 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 21:01:59 ] >>298 一概にそうは言い切れないだろ 略記法を展開する過程が型情報に依存するなら、単にマクロで構文を導入するのでは済まない
300 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 22:32:46 ] >>296 カロリー換算することで、燃費というプロキシは必要になるが計算は可能だな ガチガチに縛るのもどうなのかなぁと思うのだが 俺の視点はずれてるのだろう
301 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 23:43:33 ] >>299 たとえばCのsizeofは型情報がないと計算できないが、 逆に言えばsizeofのような演算子を必要な分だけ追加すれば済むってことか?
302 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:28:51 ] 新機能を追加しないと展開できない略記法? ハードル上げ過ぎ
303 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 01:18:46 ] マクロ云々みたいな実装レベルの話じゃなくて、継承とかみたいな概念レベルの話をしているのでは? 型の拡張というよりも、むしろ単位という新しい概念の導入に近い気がする。 整数型とか実数型とかはそのまま受け継いで、それとは独立に演算の制約情報を付加する、って感じで。 物理とかのペーパーだとよく単位つけたまま式に代入したりするけど、それをPCで実現させるような。 俺言語での超適当な例。 unit : Volt, Ampere; // 電圧・電流の単位を定義 unit : Watt = Volt * Ampere; // 電力と電圧・電流の関係を定義 variable Integer [Volt] : vol; // 整数型(単位ボルト)の変数volを宣言 variable Integer [Ampere] : amp; // 同様 variable Integer [Watt] : wat; // 同様 variable Integer [Volt * Ampere] : wat2; // これもアリか。Wattと同じ。 variable Integer : num; // もちろんただの整数型も宣言可能 vol = amp; // ERR wat = vol * amp; // OK wat = vol + amp; // ERR vol = wat / amp; // OK vol = vol * num; // OK vol = vol + num; // ERR
304 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 03:44:39 ] variable Integer : num; // もちろんただの整数型も宣言可能 こればっかり使って全て台無しって事にならんかなぁ? unit : Ohm; unit : Volt= Ampere * Ohm; とかせんといかんの?
305 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 03:57:54 ] アプリケーションハンガリアンを思い出したぜ local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B 要は言語レベルでこれをやろうぜって話なんだろ?
306 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 05:00:56 ] >>295 >>303 Boost C++ ライブラリに昔あったなあそれ。 今ではなくなっちゃってるっぽいけど。 変数に次元を割り当てて、異なる次元の変数同士の加算減算をしたり、 次元を無視した代入を行おうとすると、コンパイルエラーを吐いてくれるやつ。
307 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 05:59:41 ] 情処のプログラム研究会あたりでネタにな・・・らなさそうだな
308 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 07:43:52 ] ならないな。こんなのとっくの昔からある話題だし。 言語レベルでやるようなもんじゃない。
309 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:40:27 ] ハンガリアンなんて便法じゃなくて、型で強制すべき、ということでしょ。 それを支援する言語というテーマは、まんま同じものが過去になければ、 研究会発表ぐらいならいけるんでない?
310 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:41:21 ] 強い typedef でおkだろ。
311 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 12:39:04 ] >>303 よくわからんがこんな言語のこと? ttp://futureboy.us/frinkdocs/
312 名前:デフォルトの名無しさん [2008/05/10(土) 14:27:11 ] LLバトロワスレにはっちゃったけど、いちおうここにも JRuby開発者のOla Bini氏がJVM上で動作するプログラミング言語「ioke」を開発中 groups.google.com/group/jvm-languages/browse_frm/thread/2254d1d67bda9813
313 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 18:04:32 ] 具体的な機能に飛びつく前に、こういう問題を概念レベルで 上から俯瞰できるような観点はないか、そこが知りたい。 数学基礎論だと、群だの体だの圏だので俯瞰するわけだ。 そういう観点があって初めて、5次以上の解の方程式が 存在しないことがわかる。 なにをどう構成して名づけるか? 変数名・型名・スコープは 構成の仕方の一例にすぎないわけよ。 演算子と構文にいろんなやりかたがあるように、名前システムにも いろんなやりかたがあるはず。多分。 そのいろんなやりかたってのを、「あれを思いついた」 「これを思いついた」ではアドホックだから、名前システム という観点が欲しい。
314 名前:デフォルトの名無しさん [2008/05/11(日) 00:19:43 ] >>283 レーザー脱毛した。 もともとそんなに濃くなかったけど朝がなんとなく楽になった。 他の脱毛よりましらしいがレーザーもすんげー痛い。
315 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 01:06:02 ] >>314 痛いのか、知って良かった。 朝剃っても夕方泥棒みたいになるんだ。
316 名前:デフォルトの名無しさん [2008/05/14(水) 15:51:01 ] 質問。 εって一つ先読みして即還元すればいい?
317 名前:デフォルトの名無しさん [2008/05/16(金) 07:20:07 ] 「はじめてのコンパイラ - 原理と実践」って書かれてることに間違いないですよね? 正順LRって単語でググってもあまりヒットしないので不安なんだけど。
318 名前:デフォルトの名無しさん [2008/05/16(金) 07:44:02 ] 普通 正準LRっていわんか? canonicalの訳だろ?
319 名前:デフォルトの名無しさん [2008/05/16(金) 07:50:18 ] >>318 ってことは、正順と書いてあるこの本は駄目本ってことですか? ドラゴンブックは暗号が多すぎて解読が難しかったので、この本を 無条件に信頼できると良いのですが。
320 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 08:11:15 ] 無条件に信頼って物を学ぶ態度じゃないだろw とりあえず仮に教科書を信頼して勉強をすすめる 知識が付いてきたら別の情報源との突き合わせも難なくできるようになるだろうから、 間違ったことを覚えていたらそのときに訂正すればいい もちろん間違いの多い教科書を避けられるならそれが良いけどな
321 名前:デフォルトの名無しさん [2008/05/16(金) 08:24:02 ] >>320 この本を読んだことあるのですか?
322 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 08:38:39 ] ないよ
323 名前:デフォルトの名無しさん [2008/05/16(金) 08:45:33 ] >>322 やさしいJavaは?
324 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 08:49:29 ] >>317 スタータキットとして割りきって使えよ。 「原理と実践」でそんな薄い本。 甘えすぎ。
325 名前:デフォルトの名無しさん [2008/05/16(金) 08:56:58 ] >>324 平易な言葉で書かれた素晴らしい本だと思うんですがね。 内容が正しければ良書なのですが。 ドラゴンブックマンセーしてるやつは3の倍数。
326 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:17:49 ] 順は"順当"の順だから間違いってほどではないだろ。 いずれにせよ、どうでもいいことだろ。 そんな短い本で終わることはあり得ないんだから。
327 名前:デフォルトの名無しさん [2008/05/16(金) 09:25:01 ] >>326 この本に含まれていなくて且一般に重要なトピックは何ですか? こんな短い本・・・とおっしゃるくらいだからいくらでも挙げることが できるんですよね? それともあなた何も理解せずに適当な単語を並べてるただの3の倍数ですか?
328 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:31:11 ] そのくらい自分で調べろよ。 本じゃなくて、お前の勉学の態度が悪いんだよ。
329 名前:デフォルトの名無しさん [2008/05/16(金) 09:32:53 ] >>328 結局のところ全く理解していないので一つも挙げることが出来ないのでは?
330 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:33:23 ] 情報が足りるか足りないかなんか 実装してみたらわかると思うけど それ以前に実装しようと思うだけでわかるかもね
331 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:33:59 ] 情報引き出すための煽りか
332 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:35:12 ] >>330 それだと実装手法は一つしか学ばないでいいって態度だね。
333 名前:デフォルトの名無しさん [2008/05/16(金) 09:38:42 ] >>331 引き出す情報を持っているかどうかが問題。 たぶん持ってないな。
334 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:47:43 ] 仮にそうだとして それを指摘して 誰になんの得があるというのか 勝利宣言するならその本読んで 実装する必要があるし 自分の立場がわかってなさそうだな
335 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:52:41 ] >>334 もうやめれ。 傍目に見てお前の無知はばれてる。 ややこしくなるからわからないならレスするな。
336 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 09:58:01 ] IDの無い板でそれを言っても何の説得力もないけどな
337 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 11:01:48 ] 知らないならレスしないでください の変形かw
338 名前:デフォルトの名無しさん [2008/05/16(金) 11:44:13 ] 知らないのにレスするとはなんとおこがましいのでしょう。
339 名前:デフォルトの名無しさん [2008/05/16(金) 12:44:48 ] お前ら楽しそうだな。 チャットばかりしてないで、スレタイに沿った話しろよ。
340 名前:デフォルトの名無しさん [2008/05/16(金) 12:56:36 ] やさしい構文解析はいつ出版されるのか。
341 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 06:49:26 ] 構文解析をコードで理解するよりも、まだやることは多い気がする。 状態遷移図を書きまっくて、 NFA からε遷移が無くなるように DFA する辺りとか。 オートマトンを追いかけてのスキャンを考えて、 例外処理までもを備えた形にはどうなるのかとか。 一見動いて見えるコードを下手に書いてしまうと、後が大変になる。 思考実験で状況を追いかける位にはなれたらなー、とは思った。独感だけど。
342 名前:デフォルトの名無しさん [2008/05/18(日) 21:26:16 ] >一見動いて見えるコードを下手に書いてしまうと、後が大変になる。 そうか? それこそが、ITで必要なことだと思うが、 あっ、研究は別ね。
343 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 21:40:43 ] >>341 まずその変な日本語を直してからだな
344 名前:デフォルトの名無しさん [2008/05/19(月) 09:48:43 ] COBOLのコンパイラを探してるんだけど、何か無いかな? 条件としては フリーで独自の例外表記が無くて 外部テキストファイルの読み込みが可能 ソースと実行結果をテキストで出力が可能な奴を探してるんだ。 ずっと探してるんだけど実効結果をテキストで出力可能な奴が見当たらないorz
345 名前:344 [2008/05/19(月) 11:27:19 ] すいません。追記としてwindows上で動く奴があったら教えてください
346 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 06:14:44 ] COBOL GCCでググってみました。 www.google.co.jp/search?sourceid=navclient&aq=t&hl=ja&ie=UTF-8&rls=GGLJ,GGLJ:2007-46,GGLJ:ja&q=COBOL+GCC COBOLってよくわからんのですが、リダイレクションとかなんかつかえばいいんでないんでしょうか? ここは、コンパイラやスクリプトエンジンを作るスレなので、 COBOLのスレで聞いたほうがイイ!と思います。
347 名前:344 [2008/05/20(火) 10:14:30 ] >>346 本当にありがとうございます。 ぜひ、参考にさせていただきます
348 名前:デフォルトの名無しさん [2008/05/20(火) 10:25:53 ] inforno :: Scalaでスタック指向言語をサクッと実装する inforno.net/articles/2008/05/17/simple-stack-oriented-language-implemented-using-scala
349 名前:デフォルトの名無しさん [2008/05/23(金) 09:50:42 ] expr: expr + expr |expr - expr |special special: expr + expr
350 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:54:28 ] 動的コンパイラや最適化の勉強をしようと思っているんですが、Ruby とかのス クリプト言語で書かれた、最適化の勉強用のおもちゃコンパイラ的なもので手 軽なのって無いでしょうか?
351 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:25:52 ] ・brainf*ck インタプリタを作った事が無い人でも作れる 結構最適化に向いていると思われる
352 名前:デフォルトの名無しさん [2008/05/24(土) 18:53:35 ] Martin Fowler's Bliki:パーサー恐怖症(パーサージェネレータ習得のすすめ) capsctrl.que.jp/kdmsnr/wiki/bliki/?ParserFear Terence Parr 著「The Definitive Antlr Reference: Building Domain-specific Languages」 www.amazon.co.jp/dp/0978739256
353 名前:デフォルトの名無しさん [2008/05/25(日) 17:57:53 ] 一瞬、メイド特化言語に見えた。
354 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:22:55 ] 緊急入院
355 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:35:41 ] C言語のコンパイラを探したんだが いろいろあるんだね・・・知らなかった。 ぶっちゃけお勧めって何? OSはWinXPとVISTAで。
356 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:36:14 ] >>1
357 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 08:25:07 ] >>355 英語学者が英語をしゃべれるとは限らないという。 Cコンパイラの話はコンパイラスレではなくCスレで聞け。
358 名前:355 mailto:sage [2008/05/27(火) 08:28:01 ] スレチすまそ
359 名前:デフォルトの名無しさん [2008/05/27(火) 22:36:22 ] >>351 brainfuck でできる最適化って具体的になにがあるでしょうか?
360 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:47:41 ] >>359 コンパイル時の定数畳み込みだろ。 究極的には入力命令","の影響の及ぶところとそうでないところを判別して、 影響の及ばないところは全てコンパイル時に計算することができる。 たとえば、 ++[>+++<-]>.,. というプログラムなら、 putchar((char)6);putchar(getchar()); と最適化できる。
361 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:37:09 ] >>360 ありがとうございます。 >究極的には入力命令","の影響の及ぶところとそうでないところを判別 これって、定石ではどうやってやるんでしょうか?まったくわかっていないけ ど、コールフローやデータフローの解析をする?
362 名前:デフォルトの名無しさん [2008/05/28(水) 22:54:14 ] あたりまえですがなw
363 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 04:45:04 ] >英語学者が英語をしゃべれるとは限らないという。 日本語学者が日本語をしゃべれるとは限らないという?
364 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:44:17 ] 海外の日本語学者にはそういう人もいるだろ
365 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:29:20 ] 地震の研究者がカンファレンスで日本にきて初めて地面の揺れを経験して 「今のは何だ」 と騒いだ話を思い出した。
366 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:17:34 ] こういうやり取りが某スレで展開されてましたが、今の流行ですか? 638 名前:デフォルトの名無しさん 投稿日:2008/05/25(日) 00:23:06 アムロ・レイだってマニュアルが無ければ ガンダムを操作することは出来なかった つまりはそういう事さ 639 名前:デフォルトの名無しさん 投稿日:2008/05/25(日) 00:38:18 それ以前にアムロもカミーユもロボット作ったりしてなかったか? つまりはそういう事さ
367 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 18:30:18 ] 教えて下さい。 Lispって人工知能とかで使われたりしてるって よく本とかに書いてあるのをみるんですが、 何が(どこが)人工知能にむいているんでしょうか? 逆に、他の言語だと何が(どこが)向いていないのでしょうか?
368 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:07:29 ] >>1 にかいてあることがわからない人は、中がっこうからやりなおしてね。
369 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:19:12 ] やり直しも何も中学生ですが何か?
370 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:20:51 ] >>368 わからねえならわからねえってハッキリ言えよこの屑が
371 名前:デフォルトの名無しさん [2008/06/01(日) 19:28:18 ] 分かってれば情報垂れ流しとか、ハッキリ言うとそれは廃人です
372 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:50:59 ] 貴様らはいちいち回りくどいな lispスレで聞けやこのハゲ!
373 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 21:07:38 ] >>370 わからない場合はわからないと言ってもいいんだけど、残念ながらわかるんで、 「わからない」と書くと嘘をついたことになっちゃう。だから書けないw あと、わからない奴が「わからない」と言うのは、名指しで答を求められて 「何か言わなきゃいけないけど答がわからない」という状況に陥ったときであって、 この場合は誰も当てはまらない。わからない奴はただ「黙ってる」場面だよ。 つまり、「わからねえなら黙ってろよ」と煽らなきゃいけない。君のはまるっきり的外れ。 頭の悪い子が興奮すると、こういうミスで大恥かいちゃうから気をつけようね。 こういうところで知能レベルってバレちゃうものだから・・・。
374 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 21:21:28 ] わからねえってハッキリ言えよこの屑
375 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:56:08 ] 煽りたい盛りのゴミはほっておけ まぁ放ったところで有益な答えが返ってこないだろう事実は変わらないがな
376 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:29:20 ] わかりません、ごめんなさい。 僕達は屑です
377 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 13:31:35 ] >>376 それでいい おまえらもこれからは素直に生きろよな
378 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 13:50:51 ] >>377 「おまえら」なんて他人事みたいに語ってるが「僕達」にはお前も入ってるんだぜ?
379 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 14:15:28 ] >>378 他人事も何も他人だ お前も素直になれ
380 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 16:33:51 ] いい加減うぜぇ
381 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 18:25:54 ] ここはRuby坊のLisp叩きスレですか?
382 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:14:42 ] Ruby坊はあらゆるスレに来てあらゆる言語を叩くので、 特にこのスレだけがどう、ということはないです。
383 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:10:05 ] 373さん、ここは子供の来るところではありませんよ。 さて、終了です。 スレを元に戻しましょう。
384 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:18:33 ] おまえらスルーしろよ 糞が
385 名前:デフォルトの名無しさん [2008/06/04(水) 00:23:33 ] インタプリタをCで作りたいです。 お勧めのサンプルって、無いですか?
386 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:57:59 ] >>384 頭の悪い子供には無理な注文。 相手の想定を上回ることを書いて鼻をあかしてやろう、と無駄なことを意気込み、 結果アピールできるのは自身の上昇した血圧だけ、というこの一セットは、彼らの宿命なのです。
387 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:10:09 ] で、>385は放置か?w
388 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:11:32 ] 相手してあげたいなら、存分に相手してあげればいい。
389 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:16:31 ] 断る。
390 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:57:20 ] 自分のお勧めはCマガジン 2000年5月号。 十数ページの記事で一応インタプリタが作れる。
391 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 10:24:36 ] >>385 テキストで書いてあるソースコードを読むようなインタプリタから 始めることはおすすめしない。 単純な仮想機械からやってみてはどうか?
392 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 15:11:50 ] Brainfuckインタプリタでいいじゃん
393 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 16:33:53 ] あんなの厨房でもできるじゃん
394 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:17:39 ] >>393 BFソース -> sed -> Cソース -> gcc -> ./a.out ってシェルスクリプト見たとき吹いた
395 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:09:37 ] >>394 何その素敵仕様w
396 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:36:51 ] >>391 初心者には無理じゃないのか?
397 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:26:44 ] >>395 TextBox(BFソース)->javascriptでreplace->javascript->eval の変化系っぽい
398 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:34:22 ] BFソース + Dソース --(Dコンパイラ)--> executable ってのなら前に見たな。 D言語では、コンパイル中にファイルを読み込んで、文字列操作をして、 その結果をコンパイルされるべきソースコードの一部に組み込めるらしい。
399 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:09:23 ] VCGグラフって、JPEGとかに変換できないのでしょうか? 見れなくて…
400 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:19:36 ] そのまんまの名前の可視化ツールあったと思うが。
401 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 08:15:08 ] How to build a monadic interpreter in one day (based on papers provided by the Haskell community and some other resources) 午前: 仮想機械 午後: パーザ Haskell習得とインストールにさらに半日くらいかな?
402 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 18:10:27 ] ここは、lispは禁句?
403 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:21:37 ] 下手に話題振ると、あっという間にlispスレになるよな
404 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:41:25 ] 構文解析をすっとばせるlispは、構文解析までしか語れない住民の多いこのスレでは不評です。
405 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:49:17 ] www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/impl/kamin/budd/0.html Lisp風構文を持つ"APL, Scheme, SASL, CLU, Smalltalk and Prolog"のインタープリタ
406 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:49:38 ] タイトル忘れた。 Kamin: Tim Budd's C++ Implementation of the Kamin Interpreters
407 名前:367 mailto:sage [2008/06/05(木) 22:24:23 ] ありがとうございました。
408 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:01:35 ] >>385 UNIXプログラミング環境 hocインタープリタをC+yaccで作る例が乗っている。 完全なソースコードも著者のWebSiteからダウンロード可能!
409 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:03:24 ] >>401 なつかしの「while言語」w
410 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 07:21:40 ] データフロー解析の簡単な例とか教えてください。
411 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:15:30 ] nicosia.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/compiler/PPT
412 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:06:23 ] やべ、いまさらだけどBNF理解した 興奮してきた
413 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 06:55:30 ] そこでパーザ・コンビネータですよ。
414 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:02:14 ] え、どこどこ?
415 名前:デフォルトの名無しさん [2008/06/21(土) 18:17:29 ] 160行のPythonコードでコンパイラとインタプリタを書く www.jroller.com/languages/entry/python_writing_a_compiler_and Pythonハジマタ\(^o^)/
416 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 20:51:09 ] インタプリタしかないようだが。
417 名前:デフォルトの名無しさん [2008/06/22(日) 03:16:27 ] ぱいぱい
418 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:33:43 ] stackless pypy
419 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 09:13:08 ] >>401 www.haskell.org/sitewiki/images/c/c6/ICMI45-paper-en.pdf
420 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 07:36:22 ] こんなアホしかいませんが救ってやってください pc11.2ch.net/test/read.cgi/prog/1211550247/398