04/11/12 21:50:40
>>42のようなのはVCではできんのかぇ?
51:M.B.
04/11/12 22:25:59
>>50
VCでできるかどうかはワカランけど、
BASIC では定跡とのこと。
52:デフォルトの名無しさん
04/11/12 22:52:52
はぁ?
53:デフォルトの名無しさん
04/11/12 23:06:16
26歳、VMを覚えるまでは金無し君だったけど(ry
54:デフォルトの名無しさん
04/11/12 23:36:08
マジお勧め。
55:デフォルトの名無しさん
04/11/12 23:42:35
bignumのライブラリでよさげなのないですか?
ライセンスとか面倒なのは避けたいので
DLL形式で使えるとうれしい。
56:デフォルトの名無しさん
04/11/13 00:23:10
アフォ?
ライブラリでもライセンスは関係する罠w
57:デフォルトの名無しさん
04/11/13 00:35:36
M.B. age sugi
58:M.B.
04/11/13 00:39:06
>>57
sage ?
59:M.B.
04/11/13 09:37:42
いま Java で Lisp を書こうとして、禿死苦悩んでいる。
atom や car や cdr は List クラスのメソッドにするとして、
read/write や eval って何のメソッドにするんだ?
入出力ストリームを extend して List を扱えるようにするのか?
ListProcceser とかいうクラスを定義して eval メソッドを実装するのか?
なんやらオブジェクト同士のつかみ合いみたいになって、
設計が綺麗くなんないんだが。
60:デフォルトの名無しさん
04/11/13 10:28:53
つまんないことで悩んでるな。
Lispとしての関数と、それを実装するJavaでの話は全く関係ないよ。
簡単なLisp処理系のソースを読んでみることを勧める。
そうすればシンボルテーブルの概念も掴めるだろう。
61:60
04/11/13 10:47:54
殴り書き。
class LispObject { ...}
class LispCons extends LispObject {...}
class LispSymbol extends LispObject {...}
class LispNumber extends LispObject {...}
class LispString extends LispObject {...}
class LispFunction extends LispObject {...}
class LispInterpreter {
Hashtable obarray;
public LispObject eval(LispObject form) throws LispError {
if (form.isAtom()) {
return (form.isSymbol() ? ((Symbol)form).getValue() : form);
} else if (isList(form)) {
func = ((LispCons)form).getCar();
if (func.isSymbol()) {
func = func.getFunction();
if (function == null || !function.isFunction()) {
throw LispError(略);
}
} else {
func = createLambdaFunction(func);
}
return callFunction((LispFunction)func, form.getCdr());
} else {
throw LispError("form is not a list.", form);
}
}
62:60
04/11/13 10:50:11
殴り書きその2。
LispObject callFunction(LispFunction func, LispObject args) throws LispError {
int len = getListLength(args);
if (len < func.getMinArgs() || (func.getMaxArgs() != null && len > func.getMaxArgs())) {
throw LispError(略);
}
argsarray = new LispObject[len];
// コード略。引数をargsarrayにコピー。maxargsに足りなきゃnullで埋める。
func.call(argsarray);
}
void initialize () {
defineFunction("car", new LispFunction_car());
defineFunction("eval", new LispFunction(1,1) {
LispObject call(args) { return eval(args[0]); }
});
// ...
}
void defineFunction(String name, LispFunction func) {
LispSymbol sym = intern(name);
sym.setFunction(func);
}
63:60
04/11/13 10:51:23
その2訂正: s/nullで埋める/nilで埋める/
その3。
LispSymbol intern(String name) {
Obj s = obarray.get(name);
if (s == null) {
LispSymbol sym = new LispSymbol(name); obarray.put(name, sym); return sym;
} else {
return (LispSymbol)sym;
}
}
class LispFunction_car extends LispFunction {
LispFunction_car() { super(1,1); } // minargs, maxargs
LispObject call(LispObject[] args) throws LispError {
if (args[0].isCons()) { return ((LispCons)args[0]).getCar(); }
else { throw LispError(略); }
}
}
64:60
04/11/13 10:55:09
しまった、関数かマクロかで判別して、関数のときは先に引数を評価するんだった。
直すのマンドクセ。
65:デフォルトの名無しさん
04/11/13 12:08:03
ここはお前の日記帳じゃねえんだ(ry
66:60
04/11/13 14:32:11
いやなに、59の参考にでもなればと思って。
67:デフォルトの名無しさん
04/11/13 19:14:06
SICPの「メタサーキュラ・インタプリタ」の章を嫁.
あそこのコードは素のSchemeでなくOOPLだったらもっと簡潔に書ける.
68:デフォルトの名無しさん
04/11/13 19:44:06
> メタサーキュラ・インタプリタ
関係ないが、この言葉を見るとprologスレの論争を思い出す。
結局誰が正しかったのかな。
69:デフォルトの名無しさん
04/11/13 19:56:15
>>68
論争って何?
70:デフォルトの名無しさん
04/11/13 20:54:20
記録自体はもぅ何年も前のものなのに
そのまま生々しく残ってて痛々しいよね。
71:デフォルトの名無しさん
04/11/13 21:07:36
まぁ、プロログ、リスプと言ってる時点で
実用的なプログラムを書いていない証拠だなw
72:デフォルトの名無しさん
04/11/13 21:11:15
>>71
煽りならよそへ池
73:M.B.
04/11/13 21:32:01
設計で悩んでたら、eval 以外の関数だけで半日潰れちまった
甘かった _| ̄|○
74:デフォルトの名無しさん
04/11/13 21:44:00
今週は>>21の
URLリンク(www.laplata.ne.jp)
でも読んで、雰囲気つかんだ後、
来週の週末あたりに携帯Lispでも開発したら・・?
75:M.B.
04/11/13 22:21:45
あれは邪道。LinkedList なんぞ使っちゃイカン。
結局 eq と equal の区別ができなくなって詰まってる。
現在、
中西正和『Lisp入門 システムとプログラミング』近代科学社
黒川利明『LISP入門』培風館
竹内郁雄『初めての人のためのLISP』サイエンス社
を読みながら悪戦苦闘中。
76:M.B.
04/11/13 22:28:36
>>71
> まぁ、プロログ、リスプと言ってる時点で
> 実用的なプログラムを書いていない証拠だなw
まぁ、tsv や XML で間に合う仕事をしてる香具師には
無縁な話なのだがね。それが悪い訳ではまったくないが。
77:デフォルトの名無しさん
04/11/13 22:29:07
なんかキチッとしたもの作り込んでるみたいなんで
完成したらサイトも作ってアップして下さい。
78:デフォルトの名無しさん
04/11/13 22:30:53
>>75
まあ本人の自由だろうけど、そういうレベルの人が言語処理系について
知ったような口をきくのはどうかと思う(>>35とかね)。
79:デフォルトの名無しさん
04/11/13 22:37:23
>>78
象牙の塔の中で言語論争してるわけじゃないからイイでし。
ここは78さんのために用意された花園でも、まして法廷でもないし。
そういうことをPrologスレを眺めてオモタ。
80:デフォルトの名無しさん
04/11/13 22:38:32
>>78
お前何様だよ(^^;
81:M.B.
04/11/13 22:53:41
>>78
前回 Lisp を書いたときは、
言語が FORTRAN (「大文字のフォートラン」、つまり60)で、
しかも再帰呼び出しが使えないので
(なにせ関数呼び出し用のスタックがなく、レジスタに直接
割り当てていたので、7層までしか使えない)、
プリプロセッサの皮を被せて「再帰呼び出し可能なFORTRAN」を
実現し(RATFOR みたいなもんだ)、その上で LISP を書いて、
その上に機械翻訳システムを実現したもんだ。
とはいえ N88 BASIC 上に LISP も PROLOG も実装したことがあるのだが
内部構成が全然思い出せない _| ̄|○
82:M.B.
04/11/13 23:00:18
なんか思い出してきたぞ。
あのころはメモリが少なくて実用的なプログラムが書けるような環境が
立てられなかったのと、LISP はあくまで数式処理なんかに使う
ツールでしかなかったので、動いたところで「こんなん使えねーや」
っつーんで捨てちゃったんだ。
今なら Java で Lisp インタプリタ書いて、その上で Prolog の処理系
(Lisp で六百行くらい)を動かしても十分実用になる。
いい時代になったもんだ。
83:デフォルトの名無しさん
04/11/13 23:11:49
だからさあ
ここはお前の日記帳じゃねえんだ>MB
つーかRATFOR出てくるなんていつの時代の人間だよ
>>75の文献も古すぎだぞ
古い本見ながら中途半端なLISP作るより
R5RSでも読んでScheme覚えたほうがいい
84:デフォルトの名無しさん
04/11/13 23:22:57
>>83
別にいいじゃん、興味ないから読んでないけど(汗
まあ内容はここに一応ふさわしい。
極めてスレ違いな言語論争で埋め尽くされるよりマシ。
85:デフォルトの名無しさん
04/11/13 23:24:27
スモールコムパイラを作ろうのねーちゃんは何歳だ?
86:デフォルトの名無しさん
04/11/13 23:26:11
10さい
87:M.B.
04/11/13 23:27:01
>>83
> つーかRATFOR出てくるなんていつの時代の人間だよ
知ってんじゃねーか。
88:デフォルトの名無しさん
04/11/13 23:33:31
>>57 プンスカプー。
89:デフォルトの名無しさん
04/11/13 23:35:10
コンパイラ
と
コンバイナ
と
コンバンワ
の区別が出来ない人がいるのですが、どうしたらいいですか。
90:デフォルトの名無しさん
04/11/13 23:35:25
そういえば某スレにこんなのがあったなぁ
#include <stdio.h>
#include <stdlib.h>
int b[2<<16],f,g,i,n;char*p,l[103][80],c[80],*q,*r,x;S(){for(;*p==32;++p);}T(){
for(r="GET \0OTO \0PUT \0RUN\0 QUIT\0IF"+5*n++;*r&&*r==*p;++r)++p;return!*r&&(S
()|1);}I(){g=atoi(p);return*p-48?g?g:b[*(short*)p]:g;}main(){for(;;){gets(p=l[i
=100]);while(i<101){n=0;S();g=atoi(p);if(*(q=p)==48||g)for(p=l[g],q+=3;*p++=*q
++;)i=101;else p=!*q?l[++i]:T()?printf("?"),gets(c),b[*(short*)p]=atoi(c),l[++i
]:T()?l[i=I()]:T()?printf("%d\n",I()),l[++i]:T()?l[i=l[100][0]=0]:T()?exit(0),0
:T()?I()?p+3:l[++i]:(61-q[2]?puts("ERR"):(p=q+3,f=I(),x=p[2]-43,p+=3,g=I(),b[*(
short*)q]=x?x-2?x+1?x-4?x-17?x-19?x+10?x-18?x+6?f:f%g:f==g:f!=g:f>g:f<g:f/g:f*g
:f-g:f+g),l[++i]);}puts("OK");}}
91:デフォルトの名無しさん
04/11/13 23:36:51
ネタはマ板でやると喜ばれます
92:デフォルトの名無しさん
04/11/13 23:49:01
まぁ、LISPなんぞ哲学みたいなものだ。
つまり、概念なりを学には大変よい言語だが、
実用的な価値は、ほぼゼロに近いw
93:デフォルトの名無しさん
04/11/13 23:52:10
>>92
言語論争は死滅スレでやると喜ばれます、死ね
94:デフォルトの名無しさん
04/11/13 23:52:49
hai hai
95:M.B.
04/11/14 00:21:32
>>88
正直スマンカッタ orz
96:デフォルトの名無しさん
04/11/14 00:33:20
>>94 > >>92 でしョ。
>>95
あんた熱くなると八兵衛(ry
MBのFortran話で
URLリンク(www.google.co.jp)
を思い出した。 哲学とも高尚な抽象概念とも関係ない使い道の例だお。
97:M.B.
04/11/14 00:46:20
>>96
「親分! てぇへんだ!」
「おいおい、どうしたんだ八」
「まぁまぁ八兵衛さん、朝御飯はお済みになったの?」
「すんませんお内儀さん、ってそれどころじゃ無ぇんで。
大川にお六字が……」
98:M.B.
04/11/14 00:48:35
>>97
……ってこんだけネタ振っといて八兵衛じゃなくて八五郎だ
またやっちまった _| ̄|○
99:デフォルトの名無しさん
04/11/14 01:11:08
コテハンってどうしてこんな(ry
100:デフォルトの名無しさん
04/11/14 01:12:52
100get!!!!!
101:デフォルトの名無しさん
04/11/14 11:45:12
煽り以外で >>92 に反論できる LISPer は居ない?
102:デフォルトの名無しさん
04/11/14 11:52:29
誰かあの文章を紹介してやれよ。「普通のやつらを作り出せ」とかいうやつ。
103:デフォルトの名無しさん
04/11/14 12:02:47
と、LISPのことが気になって仕方の無い>>101が語られました。
104:M.B.
04/11/14 12:06:43
>>101
数式処理は Lisp 以外の言語で書く気がせん。
これで十分。
……つーか Mule があるじゃん。あれって Lisp だろがよ。
105:デフォルトの名無しさん
04/11/14 12:12:10
竹内郁雄さんが
新しいマシンを開発するときは
その上に Lisp を実装すると非常に楽だと
bit の連載(TAO かなんかの開発の話)に書いてたな。
106:デフォルトの名無しさん
04/11/14 12:26:25
その辺にしておくべし。 LISPのことばっか喋ると
怠け者の>>101がまた荒らしで知識を得ようと熱くなる。
結局スレに迷惑かかる。多様な話題のほうが楽しいし。
107:デフォルトの名無しさん
04/11/14 12:38:50
>101
これ以上LISPerを呼ぶなよ
108:デフォルトの名無しさん
04/11/14 13:59:01
LISPer は独自スレを立てれ。
109:デフォルトの名無しさん
04/11/14 14:01:04
つーかLISPスレ立ってるだろ
110:デフォルトの名無しさん
04/11/14 14:04:02
処理系依存でない LISP スレが・・・ナイ!
111:デフォルトの名無しさん
04/11/14 14:06:15
LISPerは自体は構わんよ、下らん言語論争やフレームの元になるような事を書く奴さえこなければ。
このスレは実装技術のスレだ、個々の言語の良し悪しや独善的思想はフレームの元、
>>104
そういう奴にレスを付けると百害あって一利ないから一切書くな。
どうしてもレスを付けたければ死滅スレを立ててそこでやれ
112:デフォルトの名無しさん
04/11/14 14:16:05
連想配列って意外に不便。
キーワードのスペル間違えてデバッグに半日。
型なし言語も意外に不便。
評価しそこなってデバッグに半日。
PerlとPHPのソースコードレベルの検証ツールをキボンヌ
113:デフォルトの名無しさん
04/11/14 14:22:25
LISPのエンジン設計の話しはスレ的に歓迎なんだが・・・
LISPが気になるくせに「コンパイラ・スクリプトエンジン」の相談ができないのが頑張ると
言語論争の話題しか提供できなくてフレームの種を蒔くことになる。
114:デフォルトの名無しさん
04/11/14 14:25:46
>相談ができないのが頑張ると
個人のレベルにイチャモンつけるようなのは良くないよ
最初はみんな初心者
115:デフォルトの名無しさん
04/11/14 14:35:06
>>101 >>92
↑わざわざこのスレにきて学ぶ姿を見せつける美しい初心者の例
116:デフォルトの名無しさん
04/11/14 14:39:18
友達いないだろう?
死ねば~
117:デフォルトの名無しさん
04/11/14 14:44:17
LISPは変換が面白いと思うよ
(define (f proc) (proc #t))
(f (lambda(x)(if x 0 1)))
↓
((lambda(proc)(proc #t))(lambda(x)(if x 0 1)))
↓
((lambda(x)(if x 0 1)) #t)
↓
(if #t 0 1)
↓
0
コンパイラに渡すまでもなくこれぐらいの変換はユーザー関数レベルで可能なとことか
まあコンパイラ自体もユーザー関数レベルで書けるけど
118:デフォルトの名無しさん
04/11/14 14:47:02
>>112
インタープリタ系言語はインタラクティブな環境があると開発しやすい。
自分で作った言語処理系もってるけど、そういう環境ができるまでは至極面倒だった(某ゲームの移植性をあげるために中間コード使っただけなのであんまり良いものじゃないけど)
perlはデバッグモードがあるが、phpはお手軽な環境が無いから面倒になったんだろう。
だいたい連想配列のキー間違いなんざインスペクタ使えば一発で解りそうなもんだよ。
119:デフォルトの名無しさん
04/11/14 15:04:04
>>118
いや、漏れはPerlからJavaに乗り換えたのでモウマンタイなのだが、
「CGIはPerlかPHP」って頭っから信じてる香具師がいて
そいつが管理してるプロジェクトからブツが上がってこないんで
迷惑してるんだが、下っ端のプログラマーに聞いてみると、
どうやらソースが荒れてて手がつけらんなくなってるらしいのだ。
かといって開発ツールを導入するのにも消極的なのだ。
だから、なんかしらソースコードレベルで適用できるツールはないもんかと。
120:デフォルトの名無しさん
04/11/14 15:14:36
PerlUnit
121:デフォルトの名無しさん
04/11/14 15:19:17
ここで聞く内容じゃないね
122:デフォルトの名無しさん
04/11/14 16:37:38
Ruby以外の言語は糞・
123:デフォルトの名無しさん
04/11/14 16:53:22
eval.c を読んでから言え。
124:デフォルトの名無しさん
04/11/14 20:25:46
LISPer ですが、何か?
125:デフォルトの名無しさん
04/11/14 20:30:01
RubyはRecursive Decentでつか?
126:デフォルトの名無しさん
04/11/14 20:32:33
Ruby >>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Lisp
127:デフォルトの名無しさん
04/11/14 20:32:51
>>125
ソース読んでないけどLALR(1)じゃなかったっけ?
128:デフォルトの名無しさん
04/11/14 22:05:42
emacs の弱点の1つがlispだったり擦るわけだがw
129:デフォルトの名無しさん
04/11/14 22:16:27
>>128↓
スレリンク(unix板)
(戻ってこない方向で)
130:デフォルトの名無しさん
04/11/14 23:44:57
Emacsは元々LISP用のエディタだったんだろ?
逆にLISPだからこそここまで生き残ったとも言える。
S式嫌いならフロントエンド作ればいいだけの話な気がするけど、
>>129のスレはそういうことじゃないみたいだな。
emacsとviがUNIXのイメージを悪くしたのは確かな様だ。
131:M.B.
04/11/14 23:53:31
>>130
> emacsとviがUNIXのイメージを悪くしたのは確かな様だ。
現在でも UNIX 上で動くエディタの標準は emacs 互換の Mule。
「テトリス」と並ぶ有名なゲーム「rogue」の操作は vi 互換。
それを言うなら「emacs派とvi派の対立が」だろうと思うが、
実際には棲み分けができていたように思われ。
132:デフォルトの名無しさん
04/11/15 00:33:50
>>8
>●スモールコンパイラの制作で学ぶプログラムのしくみ
>URLリンク(www.cbook24.com)
目次とサンプルコード来てた。
URLリンク(www.gihyo.co.jp)
tiny scheme 読もうと思ってから早1年、何にもてに付けてねーや・・・。
133:デフォルトの名無しさん
04/11/15 00:45:58
いろいろ勉強してたけど、そろそろネイティブバイナリも吐ける
コンパイラを作ろうかなって気になったよ。
なんつーか、コンパイラ作成って楽しいな。
134:デフォルトの名無しさん
04/11/15 01:03:12
石田綾ってなにもの?
過去の実績を知りたい。
135:M.B.
04/11/15 01:03:51
>>133
つーか言語処理系の開発って、
(゚∀゚)イイ!
136:デフォルトの名無しさん
04/11/15 02:11:54
>>134
URLリンク(www.pureadult.co.jp)
137:デフォルトの名無しさん
04/11/15 19:01:23
再帰下降は仕組みが簡単だし最強っぽいのですがなんで
LALRやらLLやらを使うコンパイラが多いのですか?
138:デフォルトの名無しさん
04/11/15 19:03:31
>>132
何その痛いサンプルコード
139:ほんたま
04/11/15 20:16:29
おみゃ~らよ、HSPはメニューつくれるのか?
おみゃ~らよ、HSPのヘルプに目を通したが、命令語の一覧眺めたが、メニューつくる命令はないっぽかったが、どうか?
おみゃ~らよ、Windowsソフトってメニューはつきものだろう?
そのWindowsソフトをつくるHSPにメニューをつける命令がないのはどういうこっちゃ?
おみゃ~らよ、しゃくせんのあるけん、どうじ?
140:デフォルトの名無しさん
04/11/15 20:27:52
↑
誤爆??
141:デフォルトの名無しさん
04/11/15 20:28:17
>>132
何かが間違っている気がする
142:デフォルトの名無しさん
04/11/15 20:28:18
HSPスレに逝け
143:デフォルトの名無しさん
04/11/15 21:10:34
>>137
再起下降では解析できない文法があるから。自分でLALRとか書いてるじゃん。
144:デフォルトの名無しさん
04/11/15 21:12:05
>>137
LL の文法を解析するパーサが再帰下降型パーサだが……
上昇型パーサを使うのは LL よりも広い範囲の文法を効率よく扱えるから。
LL だと、たとえば四則演算を次のように書くと左再帰を含むためアウト。
E -> E '+' T
T -> T '*' F
F -> '(' E ')'
ちょっと頑張れば LL に書き直せるけど、よけいな非終端記号が増えて
面倒な上、文法が直感的でなくなる。そんな機械的な作業はプログラムに
任せたいっしょ?
145:デフォルトの名無しさん
04/11/15 21:37:52
>>132
目次を見たときは結構いい構成になってると思ったけど,
ソースコードはかなり苦しいな
本の限られたスペースに載せるにはああしなきゃ
いけないとか決まりでもあるんだろうか?
146:デフォルトの名無しさん
04/11/15 22:18:11
>>144
再帰下降型というのは、LLじゃなくてrecursive decentの事です。
LLは下降型ですが再帰下降とは別物じゃないですか?
147:デフォルトの名無しさん
04/11/15 22:20:29
でも結局左再帰の問題はつきまといそうですね。
だから難しい上昇型使うのですね。
148:デフォルトの名無しさん
04/11/15 22:21:03
再起加工って文法の名前なのか?
149:デフォルトの名無しさん
04/11/15 22:22:40
>>132のコードも別に普通の手書き再帰下降パーサですよね。
なんか問題有るんですか?
150:デフォルトの名無しさん
04/11/15 22:28:44
LL(k)の事を再帰下降って言ってるだけ?
151:デフォルトの名無しさん
04/11/15 22:35:55
再帰下降は下降型解析法(LL)のやりかたの一つ
一度コンパイラの本でも読め
152:デフォルトの名無しさん
04/11/15 23:22:31
LL(k), LR(k), LALR(k) etc. は *文法の* 種類分け.
Recursive Decent, Top-down, Bottom-up etc. は *解析方法の* 種類分け.
LLはTop-down(特にRecursive Decent)と,LR(LALR含む)はBottom-upと相性がよい.
このPDFでも嫁 っ[ URLリンク(www.cs.vu.nl) ]
153:デフォルトの名無しさん
04/11/15 23:37:06
ありがとう。読んでみる。
154:デフォルトの名無しさん
04/11/15 23:41:07
まぁ、口ばかり達者な奴がいるみたいだが(例 >>138 >>145)
それほどの実力の持ち主なら、
そちら様の完成コードでも拝見さしてもらいましょうかな?
155:デフォルトの名無しさん
04/11/15 23:47:01
>そちら様の完成コードでも拝見さしてもらいましょうかな?
>そちら様の完成コードでも拝見さしてもらいましょうかな?
>そちら様の完成コードでも拝見さしてもらいましょうかな?
156:デフォルトの名無しさん
04/11/16 00:27:32
>>154
pやらGやらVやら何って感じだが、
それよりなにより是非って( ゚д゚)ポカーン
基本的な日本語が使えてない。
コード以前に中学の国語あたりをやり直せ。
157:デフォルトの名無しさん
04/11/16 10:08:07
>>152
LL(k)構文解析で解析できる文法をLL(k)文法っていうんじゃないの?
158:デフォルトの名無しさん
04/11/16 11:36:13
>URLリンク(www.cbook24.com)
監:中田育男
法政の学生?
本人が見ることもあるかもしれないから書くけど、
体を表す名前を付けることを身につけてほしい。
CellG=lexer
CellK=parser
CellV=仮想マシン
らしいけど、もしそうなら、
Lexer, Parser, VirtualMachine といった名前を付けるべき。
記号表のエントリにはTableEntryといった名前をつけるべきで、
Tableという名前を付けてはいけない。
読んで分かりやすいプログラムを書くのは
ある程度プログラムを読んだり書いたりの
経験がないと難しいだろうけど、ガンガレ。
あと、配列じゃなくてListを使うとか、
文字リテラルはinternしなくていいとか
もうちょっとJavaを勉強しよう。
159:デフォルトの名無しさん
04/11/16 12:27:09
URLリンク(www.amazon.co.jp)
中田育男はこれ書いた日本のコンパイラ最適化の第一人者ですな
160:158
04/11/16 12:54:42
著者が中田先生の下の学生かと思ったです。
161:デフォルトの名無しさん
04/11/16 12:58:37
G…Gikukaiseki
K…Koubunkaiseki
V…VM
これくらい想像できないようでは現場のコードは読めないぞ
162:デフォルトの名無しさん
04/11/16 12:58:50
”コンパイラの最適化”と”アーキテクチャごとのコードの最適化”は、
考え方のレイヤが違いますよね?
やはりコンパイラを作成する場合、ターゲットとなるアーキテクチャに対しても
詳しくないと本当の意味での最適化コードは作成できない??
163:デフォルトの名無しさん
04/11/16 13:00:35
>>161
マジですか?!
164:デフォルトの名無しさん
04/11/16 13:05:21
>>162
だいたい同じPentiumでも種類ごとに適した最適化手法が違うし
165:デフォルトの名無しさん
04/11/16 13:07:11
定数値の最適化やら誘導変数の最適化やらはCPUが何だろうができると思うが。
166:デフォルトの名無しさん
04/11/16 13:37:15
>>165
???
167:デフォルトの名無しさん
04/11/16 14:01:27
>>165
君は>>162を100回読み直したまえ。
168:デフォルトの名無しさん
04/11/16 15:59:29
>>158
そういう小姑みたいな性格は何処に行っても嫌われますよ~
169:デフォルトの名無しさん
04/11/16 16:20:39
Gokiburi
Kokkurochi
Varusan
170:デフォルトの名無しさん
04/11/16 19:23:36
>>168
嫌ってくれて構わんよ
171:折れ目も
04/11/17 21:26:53
なぜ Threading Code なのか?
URLリンク(www.kt.rim.or.jp)
マイクロベンチ.興味深い.
URLリンク(www.complang.tuwien.ac.at)
Pentiumならsubroutineが速い
172:デフォルトの名無しさん
04/11/17 22:01:45
>Pentiumならsubroutineが速い
そりゃそうだろ(w
173:デフォルトの名無しさん
04/11/19 04:25:54
著作権は大丈夫なのでしょうか, 2004/11/02
レビュアー: カスタマー 帯広市 Japan
JavaのVM向けのコードを生成する簡単なコンパイラが乗っているというので買いました。
非常に参考になると思います。
ただ、よけいなことかも知れませんが、この本の構文解析の部分は、中田育男著の「コンパイラ」の本と、
例題や説明までほとんど同じなので驚きました。
著作権の方は大丈夫なのでしょうか。
174:デフォルトの名無しさん
04/11/19 11:56:19
ガクガクブルブル
175:デフォルトの名無しさん
04/11/19 18:58:26
中田先生監修だからなあ。
176:デフォルトの名無しさん
04/11/20 02:21:01
>>175
それどころか前書き見たいのも中田先生が書いてた
177:デフォルトの名無しさん
04/11/20 08:03:00
弟子が中田先生の本の改訂を引き受けた、ってことでFA? 印税山分けだったりして
178:デフォルトの名無しさん
04/11/20 08:10:05
石田綾なんて人間ははじめから居なかったっつうことだろ
179:デフォルトの名無しさん
04/11/20 09:24:53
>>178
するどいな
180:デフォルトの名無しさん
04/11/20 18:03:52
始めて読むコンパイラ本としてはいかがですか?
181:デフォルトの名無しさん
04/11/20 18:54:34
ところで、最適化の話なんだけど、
ドラゴンブックにある「基本ブロック」
っていう考え方って、何かセンス悪い気がしない?
基本ブロックだろうが、大域的構造だろうが
同じ「グラフ」なんだから、それらを区別せず
統一的に扱って最適化を施すのが、
筋の通った考え方だと思うんだけど。
ま、確かに「基本ブロック」内だけで考えれば
殆どの問題は簡単になるのは分かるけどさ。
現実のコンパイラでも「基本ブロック」って
いう戦略は、よく使われているんだろうか?
182:デフォルトの名無しさん
04/11/20 19:53:50
買っちゃいましたorz
183:デフォルトの名無しさん
04/11/20 20:31:55
本屋で見かけたので買ってきた。中田育男監修の文字を見たからw
184:デフォルトの名無しさん
04/11/20 21:07:55
本屋に行ったけど見当たらなかった
185:
04/11/20 23:07:52
URLリンク(www.cbook24.com)
あっという間に品切れになってる。
186:デフォルトの名無しさん
04/11/21 01:00:00
>>181
基本ブロックが何かわかってないだろ。
基本ブロック自体はグラフそのものじゃなくて、
グラフの節点だぞ。
187:デフォルトの名無しさん
04/11/21 02:00:45
>>181
コンパイラ書いてみろ。どんなに頑張っても、基本ブロックの概念を使わないコンパイラは、
仮に>>181が天才で、同じ質のコード生成を達成したとしてもコンパイル速度は100倍
遅くなる。更に言えば、基本ブロックの性質を完全に無視するとするなら、同じ質の
コードは生成できない。
最適化ってのはいわゆる難しい問題なので、現在の計算機では残念ながら純粋な
数学のようには取り扱えない。
ついでに言うと、一般のプログラムってのは再帰的な構造を持っていることを考えると、
基本ブロックという概念はむしろセンスが良い。
188:デフォルトの名無しさん
04/11/21 11:28:26
>>186
基本ブロックの中の人とはリストであり、
すなわち縮退したグラフだと思うけど?
>>187
>同じ質のコード生成を達成したとしてもコンパイル速度は100倍遅くなる。
多分そうだろうと思う。
でも、その手法の「泥臭さ」自体は認るでしょ?
後はそれを「よいセンス」と捕らえるかどうかの差だね。
189:デフォルトの名無しさん
04/11/21 11:48:13
認るでしょ
認るでしょ
認るでしょ
190:デフォルトの名無しさん
04/11/21 15:08:21
>>188
> 基本ブロックの中の人とはリストであり、
> すなわち縮退したグラフだと思うけど?
細かく分けすぎ。そこまで分けて最適化に役に立つのか?
何のためのグラフか考えてみろって。
語義的には確かに正しいんだが、その反論はちょっと苦しいと思うぞ。
自分も基本ブロックはセンスが良いと思うほうに一票。
191:デフォルトの名無しさん
04/11/21 18:21:48
相談なのですが、flex,bison とC#を連携させて
言語処理系を開発するとしたら、みなさんなら
どういう実装戦略をとりますか?
192:デフォルトの名無しさん
04/11/21 19:07:40
Ruby!>>>>>>>>>>>>>>>>>>>>>>>>>>C#
193:デフォルトの名無しさん
04/11/21 20:15:26
>>191がどんな言語処理系を求めて
開発を始めようとしているのか、まずそれから語るんだ。
194:デフォルトの名無しさん
04/11/21 20:23:45
>>191
リフレクションで丸ごと生成できないかなと・・・
思っただけ(汗
問題はBNFを何処に書く、というところ?
boostみたいに言語中言語にできれば、シームレスで最高なんですが、
C#のジェネリッククスは果たしてどこまでできるのか?
てところ。
VisualStudio.NET2005でたら、ちょっとアタックしてみよかと思ってます。
195:デフォルトの名無しさん
04/11/21 20:52:05
えっ?
196:デフォルトの名無しさん
04/11/21 21:00:56
>>194に手段が目的になってしまっている人をboost病患者と呼びます
197:デフォルトの名無しさん
04/11/21 21:05:28
>>196
「手段」を作る方法を語るのが目的のスレで何を言う
198:デフォルトの名無しさん
04/11/21 21:06:22
古くは m4 病患者とも呼んだな。。。
199:デフォルトの名無しさん
04/11/22 00:07:33
-- かなづちを持つ者には、すべてが釘に見える
200:デフォルトの名無しさん
04/11/22 00:14:52
-- Minamo Narukaze
201:デフォルトの名無しさん
04/11/22 01:44:54
flex,bison,リフレクション,BNFの記述,boost,…、どれ一つとて実際に
使いこなしてないのまる分かりだぁ。。 (o´C_,`o) ハズカスィ~
それっぽい用語並べていけば、自発的に連結して
素敵な何かが自然発生する・・・とか、連結方法が思いつかないから
みなさんに『実装戦略』の糸口を聞きにきた、とかか…。 ハ・ス・゙カ・スィ~
202:デフォルトの名無しさん
04/11/22 08:59:16
スルーしろよ
203:デフォルトの名無しさん
04/11/22 09:25:48
204:デフォルトの名無しさん
04/11/22 13:14:02
>>201
作りたいからやってんだろいいじゃネェか
使いこなしているかどうかは関係ないってしてほしいね
205:デフォルトの名無しさん
04/11/22 13:44:19
「何」を作りたいのか? (回答例) >>194
頭に浮かんだ抽象像を前に悩む前衛彫刻家みたい
206:デフォルトの名無しさん
04/11/22 13:55:11
ツチやノミを前にしただけでイッパイ・イッパイなのが見て取れるから
>>196みたいなこと言われるっち。
207:デフォルトの名無しさん
04/11/22 13:55:45
>>205
意味不明の煽りヤメレ、フレーム引き起こしたいなら適当な死滅スレにでも逝け
208:デフォルトの名無しさん
04/11/22 13:57:13
>イッパイ・イッパイなのが見て取れるから
余計な一言
209:デフォルトの名無しさん
04/11/22 14:21:18
l
/\___/ヽ
/ :::::::\
| '''''' '''''' .:::| / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|(●), 、(●)、.::::| < 糞スレで余計なこと
| ,,ノ(、_, )ヽ、,, .:::::::| | 二度と聞かねぇょ・・・
\ `-=ニ=- ' .:::::/ \_______
`ー`ニニ´-一´ヽ、
/ _ l
/  ̄`Y´ ヾ;/ |
______,| | |´ ハ
| | |-‐'i′l
|__ | _| 7'′
( (  ̄ノ `ー-'′\
 ̄  ̄ \
210:デフォルトの名無しさん
04/11/22 14:25:05
何もできない奴があせる必要もないのに、勝手にあせって人の邪魔をしようと必死なだけ、気にスンナ。
211:デフォルトの名無しさん
04/11/22 14:28:19
l
/\___/ヽ
/ :::::::\
| '''''' '''''' .:::|
|(●), 、(●)、.::::| .。oO( プッ
| ,,ノ(、_, )ヽ、,, .:::::::|
\ `-=ニ=- ' .:::::/
`ー`ニニ´-一´ヽ、
/ _ l
/  ̄`Y´ ヾ;/ |
______,| | |´ ハ
| | |-‐'i′l
|__ | _| 7'′
( (  ̄ノ `ー-'′\
 ̄  ̄ \
212:デフォルトの名無しさん
04/11/22 15:57:42
boostってさ、C++の機能だけでなんとかしようとしてるけど
あそこまですんならperlとか駆使すればいいじゃんねえ
213:デフォルトの名無しさん
04/11/22 16:03:15
>>212
一度使ってみたら?
別ファイルとして扱っていた文法定義ファイルが、
ライブラリーになるという意味がどれだけ重要かわかるよ。
214:デフォルトの名無しさん
04/11/22 16:05:27
C++でPerlの処理系を書いて丸ごと埋め込むよりは
C++の機能だけで実装した方がネイティブな感じがして(・∀・)イイ!!
215:デフォルトの名無しさん
04/11/22 16:36:05
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C++=糞言語 >>>>>>>>>>>>>>Perl=汚物
216:デフォルトの名無しさん
04/11/22 16:56:45
Rubyは動的評価の手段が文字列をevalするだけだから
このスレ的にはいまいちだろ。やはりLisp >>> Ruby、とか言ってみる。
Lispのほかにも構文木をファーストクラスオブジェクトとして扱える言語は
あるのかな?
217:デフォルトの名無しさん
04/11/22 16:58:13
Pythoooooooooooooooooooooooooooooooooooooooooooooooooooooon
218:デフォルトの名無しさん
04/11/22 17:31:26
l
/\___/ヽ
/ :::::::\
| '''''' '''''' .:::|
|(●), 、(●)、.::::|
| ,,ノ(、_, )ヽ、,, .:::::::|
\ `-=ニ=- ' .:::::/
`ー`ニニ´-一´ヽ、
/ _ l
/  ̄`Y´ ヾ;/ |
______,| | |´ ハ
| | |-‐'i′l .。oO( プッ
|__ | _| 7'′
( (  ̄ノ `ー-'′\
 ̄  ̄ \
219:デフォルトの名無しさん
04/11/22 17:39:59
>>216
誤解があるようです。
Ruby のイテレータメソッドはそんな単純なものじゃないです。
220:デフォルトの名無しさん
04/11/22 18:01:04
>>219
じゃあどんなもんなの?
221:デフォルトの名無しさん
04/11/22 18:16:02
>>216とイテレータメソッドに何の関係があるのだろうか
222:デフォルトの名無しさん
04/11/22 18:32:12
>>217
Pythonの構文木ってLisp使いが考えるようなものじゃないようだから
あてはまらないと思う。
URLリンク(www.unixuser.org)
の「Lisp プログラマが Python を学ぶときの要点」の12番参照。
223:デフォルトの名無しさん
04/11/22 18:33:05
>>221
これこそ本物の知ったかって奴
224:デフォルトの名無しさん
04/11/22 18:54:51
>>223
オレも221と同じ疑問をもってるのでよろしければどういうことか
教えてください。
225:デフォルトの名無しさん
04/11/22 20:12:37
Ruby以外は糞
死ね
226:デフォルトの名無しさん
04/11/22 20:36:19
>>225
Rubyの評判を落としたいのか?
それともスレの趣旨が理解できない池沼か?
227:デフォルトの名無しさん
04/11/22 21:13:41
>>224
これは221に語りかけたものです、ちょっと足らなかったですね
でも、なんでも煽りに見えるのは良くないです。
#つか、そんなスレになっている元凶は死ね、
#いくら煽ったってお前の実力は向上しないし、稚拙でもタコでもやる奴の実力のみが向上するんだよ。
#おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
228:デフォルトの名無しさん
04/11/22 21:23:42
/\___/ヽ l
/::::::: \ /\___/ヽ
.|:::. '''''' '''''' | / ̄ / :::::::\
|::::.,(一), 、(一)| < >>227 | '''''' '''''' .:::|
.|::::::: ノ ,,ノ(、_, )ヽ、,, | \_ |(●), 、(●)、.::::| .。oO( 心の敵とアツク戦い始めた・・・
\:::::.ヽ`-=ニ=- ' / | ,,ノ(、_, )ヽ、,, .:::::::| ソッ、としておくべし
/ `一`ニニ´-,ー´ \ `-=ニ=- ' .:::::/
/ | | / | `ー`ニニ´-一´ヽ、
/ | | / | | / _ l
/ l | / | | /  ̄`Y´ ヾ;/ |
__/ | ⊥_ーー | ⊥_ _____________,| | |´ ハ
| `ーヽl_l_l.} ヽl_l_l.} | | |-‐'i′l
(、`ーー、ィ } ̄` ノ |__ | _| 7'′
`ー、、___/`"''-‐" ( (  ̄ノ `ー-'′\
, ̄  ̄ \
229:デフォルトの名無しさん
04/11/22 21:24:40
2chでなにをムキになってるんだかw
230:デフォルトの名無しさん
04/11/22 21:57:06
まったりしよう
231:191
04/11/23 00:51:02
知らぬ間に荒れてるし・・・
え~とですね。
JavaでLispという企画を読んで、そんなら俺はC#で
Lispみたいに考えただけなんですけど・・・
ガーベジコレクションはC#任せにできるけど
字句解析構文解析で既存の生成系を生かせないかなと
思っただけなんですね、はい
S式ならそんなの必要ないとかそういう突っ込みはなしで
お願いします・・・
232:デフォルトの名無しさん
04/11/23 02:53:24
↓以後何事もなかったかのようにどうぞ
233:デフォルトの名無しさん
04/11/23 06:18:36
で、あや本の話はどうなった?
234:デフォルトの名無しさん
04/11/23 06:19:57
今日大学病院行ってしまい一日仕事休んだから買ってきて読んでみるつもり
235:デフォルトの名無しさん
04/11/23 08:32:58
あや本のソース見ていると、Javaの書き方じゃないね。
C言語のソースから写しましたって感じだなあ。
236:デフォルトの名無しさん
04/11/23 11:50:45
JAVA作るのに、JAVAの書き方せんだろ?
237:デフォルトの名無しさん
04/11/23 11:55:34
haxa?
238:デフォルトの名無しさん
04/11/23 12:02:50
>>236
ボケの方向があさって過ぎ。
239:デフォルトの名無しさん
04/11/23 12:22:54
21st Century Compilers
URLリンク(www.amazon.com)
いつでるの?来年の11月かよ・・・
240:デフォルトの名無しさん
04/11/23 12:40:07
あや本
URLリンク(www.amazon.co.jp)
241:デフォルトの名無しさん
04/11/23 13:18:45
>>235
大学院の実習で作ったプログラムみたいだね。
java.util を使ってないところがすごい。
242:デフォルトの名無しさん
04/11/23 14:19:04
ヲマイラ何打カンダであやの掌(テノヒラ)の上で転がされてるっす・・
今ごろこのスレみて、あ~や、印税の計算でニタニタしてるよ・・
↓
曰 ,,-─-、
| | [lllllllllll] 卒研の成果物ためしに活字にしたら
ノ__丶 |||`_ゝ´|||_ 株を買うより楽に儲けれた
||日|| 丿 ( .| ¢、
_ ||本|||/丿 .  ̄丶.)
\ ||酒||L二⊃ . ̄ ̄\
||\`~~´ (<二:彡) \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
. || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
243:デフォルトの名無しさん
04/11/23 14:45:16
. 曰
| | ,,-─-、
ノ__丶 [lllllllllll] ./ ̄いくら煽ったってお前の実力は向上しないし、
||中|| |||`_ゝ´|||_ < 稚拙でもタコでもやる奴の実力のみが向上するんだよ。
||田|| 丿 ( .| ¢、 .\_ おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
_ ||育|||/丿 .  ̄丶.)
\ ||男||L二⊃ . ̄ ̄\
||\`~~´ (<二:彡) ←「コンパイラ・スクリプトエンジン」相談室住民
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
. || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
244:デフォルトの名無しさん
04/11/23 15:13:25
>>241
インポートはjava.ioだけだったような・・・。
245:デフォルトの名無しさん
04/11/23 15:36:44
まあ藻前裸はその程度の本を書く実力と人脈さえ無いんだけどな(w
246:デフォルトの名無しさん
04/11/23 16:00:56
λ...... λ...... λ......
λ...... λ......
λ...... λ......
λ...... λ......
λ...... λ......
λ......
λ...... λ...... λ......
247:デフォルトの名無しさん
04/11/23 21:14:29
>>242
この手の技術書は初刷 2000 冊くらいだぞ。
2000円 * 5% * 2000 = 20万円
バイト代程度じゃん。
248:デフォルトの名無しさん
04/11/23 22:21:08
現状売り切れ続出
249:デフォルトの名無しさん
04/11/23 23:25:46
今日買ってみたよ。安かったんで。
250:デフォルトの名無しさん
04/11/23 23:39:02
>>248
田舎では売れ残っているが。
251:デフォルトの名無しさん
04/11/24 00:09:12
ソースに関するレスが多いけど
本文はどう?>買った人
252:デフォルトの名無しさん
04/11/24 00:12:11
コン・パイラさんががんばってます。
253:デフォルトの名無しさん
04/11/24 19:54:42
あれはおかしいよな。コンバイ・ラの方がいいよな
254:デフォルトの名無しさん
04/11/24 22:47:55
結局誰も買ってないのか(´д`)
255:デフォルトの名無しさん
04/11/24 23:17:22
いや、俺と >>252-253は買ってると思う
256:デフォルトの名無しさん
04/11/24 23:20:13
買ったよ、本当に言語処理初心者向けに書いてあって、ある意味面白かったけど。
中田先生の本とかを読む人には向かないんじゃないかな(最適化技法の本でこれだったら随喜の涙だけど)
257:デフォルトの名無しさん
04/11/24 23:35:53
>>256
すまん、分かるように書いてくれ。
258:デフォルトの名無しさん
04/11/25 00:00:46
もしかして、あや本は虎の巻だけ読めばOK?
259:デフォルトの名無しさん
04/11/25 00:17:14
>>257
綾本は言語処理に興味がでたごくごく一般的な人向けに書かれている。
中田先生の書籍は専門書なので、これらを読む人には退屈だろう、ただしこういう感じで一般向けに最適化技法を説明してくれれば楽しい思いができると思う。
これならわかってもらえますか?
260:デフォルトの名無しさん
04/11/25 00:34:02
>>259 = 綾本
>>256 = 専門書
261:デフォルトの名無しさん
04/11/25 13:02:40
Javaのコンパイラを作ってみようかと思ってます。
Parser GeneratorはJavaCCやANTLRなどいくつかあるけど、Bytecode Generator作成を支援してくれるツールはありますか。
ぶっちゃけ、既存のJavaコンパイラと同じASTを作成すれば、Bytecode生成はそのコンパイラのバックエンドに任せることが
できるんではないかと考えてはいるんですが。
262:デフォルトの名無しさん
04/11/25 14:36:37
>>261
2chで聞く前に自分で調べる行動力が無いと無理
263:デフォルトの名無しさん
04/11/25 16:03:02
もはや作るとは言わんような。
264:M.B.
04/11/25 21:27:49
>>261
swap と loop~until~do~repeat 構文を実現できるんなら、
Java 拡張言語のコンパイラは作ってもいいかなと思っている。
JavaCC を使えば Java のライブラリはそのまんま利用できるしな。
265:261
04/11/25 23:12:10
>>262
いや、ググってもバックエンド部分がわからなかったから聞いているんだが。
パーサジェネレータはたくさん見つかったんだが、バックエンドは見つからないぞ。
>>264
swapやloopではないんだが、独自に文法を拡張したコンパイラを作ってみたいと思って。
266:デフォルトの名無しさん
04/11/25 23:21:10
Javaのコンパイラで
ソース公開されてるやついじればいいじゃん。
何でメタツールの話から入るかねぇ。
267:デフォルトの名無しさん
04/11/26 00:57:15
>>259
分かりました。
どうもです。
268:デフォルトの名無しさん
04/11/26 17:21:59
コンパイラとスクリプトだと作る難しさは違いますが?
実際にプロのプログラマーだと、PC関係のソフトで難しいプログラムは
なんでしょうか
規模にもよるかもしれないけど、OSが一番難しそうで、その次にデータ
ベースなどがありそうですが、難しいソフトってどんなものがありますか?
コンパイラ・スクリプトはそのなかでどれくらいの難易度なのか
もうしわけありませんが宜しくお願いします。
269:デフォルトの名無しさん
04/11/26 17:27:09
>>268
違いますが?
↓
違いますか?
でOK?何いきなり煽ってるんだと思ったんだけど。
270:デフォルトの名無しさん
04/11/26 17:43:57
>>269
すいません。”違いますか?”です。
単純にコンパイラやスクリプトを作れるプログラマはプログラマの
レベルではどれくらいか?
プロになったことないし、周りにプログラマーがいないので解らないので
もしよければおしえてくださいませんか?
それかスクリプト以外のアプリケーションでもっと難しいものって
なんでしょうか?
OSやデータベースなどが規模にもよるけど難しいそうと思うのですが?
271:デフォルトの名無しさん
04/11/26 18:18:20
>>270
ピンキリ。
スクリプトもOSも、簡単な物は比較的簡単に作れるけど、
ちゃんとしたものを作るのは難しい。
272:デフォルトの名無しさん
04/11/26 18:31:59
>>268
期待してる答えとは違うと思うけど、
とりあえず将棋や囲碁でプロに勝つのが難しい。
273:デフォルトの名無しさん
04/11/26 18:49:30
ドラゴンブックと中田育男本、今から買って読むとしたらどっちがお勧めですか?
274:デフォルトの名無しさん
04/11/26 19:07:46
対象読者や用途が違うので
275:デフォルトの名無しさん
04/11/26 19:49:10
というか、コンパイラの基礎も知らないで育男本は無理。
276:デフォルトの名無しさん
04/11/26 19:54:24
育男本の用途は最適化、
ドラゴンブックは原理・技法・ツールの紹介だと思うのですが、
対象読者はやっぱり育男本がエキスパート、
ドラゴンブックは学部生あたりと考えてよろしいでしょうか?
277:デフォルトの名無しさん
04/11/26 20:28:13
>>276
どっちも教科書だよ。
ドラゴンブック読んで、それから育男本って感じか。
強いていうなら、学部生向けと修士学生向けってくらいの違い。
いずれにせよ、どちらもコンパイラの専門家が改めて読むレベル
の本じゃない。
278:デフォルトの名無しさん
04/11/26 20:33:26
コンパイラ屋のプロは何読んでるの?
279:デフォルトの名無しさん
04/11/26 20:37:01
ドラゴンブック
URLリンク(www.esbooks.co.jp)
「勉強し終わると、滅多に開くことはありませんが :-) 」
280:デフォルトの名無しさん
04/11/26 20:40:36
>>278
たぶん・・学会集とか論文じゃない??
プロのコンパイラ屋としてどのくらいが飯食っていけてるのかしらんけんど・・
IBM東京基礎研究所のひととか想像すればいいのか?
281:デフォルトの名無しさん
04/11/26 20:48:18
電気メーカーにショボイコンパイラ屋たくさんいるぞ。
282:デフォルトの名無しさん
04/11/26 21:15:59
そっ、そうなのか、
優しい気持ちになれました
283:デフォルトの名無しさん
04/11/26 21:33:41
最適化って最適するパターンを作ってそれに合うか
合わないかというものでしょうか?
CPU毎の最適化とは別に他は思い浮かばないのですが
284:デフォルトの名無しさん
04/11/26 21:45:19
定数式の最適化とか依存しない物もたくさんあるだろ。
285:デフォルトの名無しさん
04/11/26 22:09:06
電気メーカーのショボイコンパイラ屋です。
文献はPLDI、POPL、TOPLAS、CCあたりが定番でしょうか。
他のコンパイラ屋の方々はどの辺をチェックしてます?
286:デフォルトの名無しさん
04/11/26 22:09:16
>>283
不変式のループ外移動とか、ループアンロールとか、グラフの状態を探索しないといけない最適化はいくらでもある。
287:デフォルトの名無しさん
04/11/26 23:38:35
こういう地味な仕事してる奴って、地味な言語つかってたりするのかな?
288:デフォルトの名無しさん
04/11/26 23:39:11
またあったので報告。上のほう。
ちょっと痛めのドキュもあり・・。下の方。
URLリンク(www.tom.sfc.keio.ac.jp)
289:デフォルトの名無しさん
04/11/27 01:30:48
グラフの探索にあこがれるんだけど
自分の頭では無理っぽい
3番地コードからやってみるか・・
290:デフォルトの名無しさん
04/11/27 01:44:21
>>288
完成してたんだ.
291:デフォルトの名無しさん
04/11/27 01:48:20
知人?
292:デフォルトの名無しさん
04/11/27 02:01:01
>>289
3番地コードってのが三つ組みの事なら、グラフの方が楽ですよ、何でもかんでもつっこんじゃうから頭がこんがらがるのも解るけど。
293:デフォルトの名無しさん
04/11/27 08:45:30
>>288
慶応の卒研でもこんなものか。
ちょっと勇気づけられた。
しかし慶応大生でもこんなのか。
もうどうしていいやら……
294:デフォルトの名無しさん
04/11/27 14:15:14
>>280
そでもないよ、もっと簡単に済ましてる。
開発時間との戦いは別にどの業種と限ったものじゃないです。
295:デフォルトの名無しさん
04/11/27 15:30:55
>>285
漏れは高卒なのでアカデミックな世界のことはなーんも
分からんのですが、カンファレンスみたいなものから
著名人の名前と研究テーマを探して、名前でぐぐって、
研究者のHPを見つけ、論文一覧から欲しいものを探す、
そういう感じですか?
296:デフォルトの名無しさん
04/11/27 16:00:13
>>295
情報学会誌とかACMとか購読してる方が多いと思う。
Webで検索するよりノイズ少ないし。
297:デフォルトの名無しさん
04/11/27 16:01:47
>>296
日本情報処理学会って ACM と比べてどう?
入会する価値ある?
298:デフォルトの名無しさん
04/11/27 16:05:30
>>297
ACM と IEEE だけで十分だと思うよ。
299:デフォルトの名無しさん
04/11/27 16:25:55
>>298
でも日本で何が起きているのか知る一端にはなる。
それと辞書無しでも読めるんで休憩時間には向いてる。
300:デフォルトの名無しさん
04/11/27 16:45:08
>>299
世界的にはトレンドから外れちゃったけど、なぜか日本では
続いているってなネタもあるしね。暇つぶしにはなるわな。
301:デフォルトの名無しさん
04/11/27 18:54:48
日本情報処理学会
顔見知り同士のしょぼいミニコミ誌
302:デフォルトの名無しさん
04/11/27 19:12:58
海外だって一部の除けば似たようなもんじゃん
303:デフォルトの名無しさん
04/11/27 19:14:19
>>302 それ本当?たとえば?
304:デフォルトの名無しさん
04/11/27 20:12:12
たとえば、って大抵の分野は狭いので自然と知り合い同士になるのが道理なんだが
305:デフォルトの名無しさん
04/11/27 20:31:43
>>304
必ずしも「しょぼい」わけではないんでない?
306:デフォルトの名無しさん
04/11/27 23:15:11
>>287
LIS(ry
307:デフォルトの名無しさん
04/11/28 00:16:15
>>268
>実際にプロのプログラマーだと、PC関係のソフトで難しいプログラムは
>なんでしょうか
Mathematicaみたいなソフトも作るのむずかしそう。
308:デフォルトの名無しさん
04/11/28 00:27:29
>>307
IE も大変だと思うよ。不正な HTML でもそれなりに表示する必要があるし、
HMTL, CSS, XML あたりは規格もそれなりにデカイ上に、画像の遅延表示や
ユーザが任意のタイミングでリロード、戻る、進むなんかを実行できることが
大前提になってる。
部分的な実装に関わるだけならともかく、全体の設計からって話だと
Office なんかも大変だろう。
309:デフォルトの名無しさん
04/11/28 01:39:32
>>308
不正のタグの事。
結構打ち込みタグでエラー起こしてるけど、エラー処理してるとは
思えないな。
それから、リロードとかのタイミングとかも、単純にタスク処理すれば
良さそうなので、問題ないかと
理屈的にIEを作るのは難しくなくても、使えるものを実際に作ると
なると、設計段階でくじけそうだけど。
単純にIEみたいなもののスクリプト系の表示プログラムは
簡単そうだし。
310:デフォルトの名無しさん
04/11/28 02:09:09
javascriptとかの解釈は?
311:デフォルトの名無しさん
04/11/28 10:24:27
dW : Linux : Yacc...そしてLexをよみがえらせる
URLリンク(www-6.ibm.com)
dW : Linux : Lexとyaccでコードをビルドする 第1回: 導入
URLリンク(www-6.ibm.com)
dW : Linux : Lexとyaccでコードをビルドする 第2回: 開発とトラブルシューティング
URLリンク(www-6.ibm.com)
312:デフォルトの名無しさん
04/11/28 11:46:16
Lispが気になってしょうがない奴がいるなこのスレ。
313:デフォルトの名無しさん
04/11/28 11:59:54
>>309
> 結構打ち込みタグでエラー起こしてるけど、エラー処理してるとは
> 思えないな。
Amaya とか使うと、IE がいかに適当(良い意味で)に処理してるか良く分かるぞ。
314:デフォルトの名無しさん
04/11/28 19:07:15
lispに骨髄反射してる奴がいるな、この摺れw
315:デフォルトの名無しさん
04/11/28 19:47:31
Rby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>lisp
316:デフォルトの名無しさん
04/11/28 23:25:44
骨髄・・・バンク
317:368
04/11/29 01:35:38
こんな事聞いたら怒られるかもしれないですが、
XMLのいろいろな規格を解釈するリーダーを作成しようと思ったら、
どのような手順を踏めばいいのですか?頭がよろしくなく理解力がないですが
よろしくお願いします。
318:デフォルトの名無しさん
04/11/29 01:39:17
未来からこんにちは。
319:デフォルトの名無しさん
04/11/29 01:50:23
368に近づくまでまだ時間がある。それまでに理解力をつけるんだ。
320:デフォルトの名無しさん
04/11/29 05:29:21
単純に<~>を付いてるものを3つのポインタを使った
typedef staruct tagXML{
~
struct tagMML *prev;
struct tagMML *next;
struct tagMML *yoko;
char *namel;
char *data;
}
とかやって、階層的なものを作ってデータの意味を付けていく
ようにしたらいいかも???
この階層を作った後に、全体的な階層を作った後にキャンパスというのに
まず、仮想的に描写情報を作った後に、実際に描写するだけぁない。
仮想的な描写情報を作ってどういった画面になるかを一度シミュレート
するのがちょっとメンドイけど、それさえ出来ればすぐに出来るよ。
321:デフォルトの名無しさん
04/11/29 05:42:14
HTMLも基本は一緒だよ。
BODY-
|
+---tabel
|
+---tabel
| |
| +--- tabel
+---IMAGE
|
/BODY
という階層を作ったを作った後に、フォントとかtableや画像を情報を
元に、仮想で描写するイメージを作って、どれくらいのクライアントに
どのような配置をするか決めて、下(バッググランドから、上に書き込むだけ
IEの場合、タスクを使ってるみたいでデータが来た順に描写するので
バッググランドの画像データが先に受信されてない場合、一度、上に
タグの描写した後に、もう一度下を描写して再描写してるみたい。
全体的な階層を作って→その階層のデータと元に仮想描写(データで)→
した後に、実際に描写するだけ・・・
タグ毎の描写の仕方を決めて、それを配置するプログラムさえ
出来れば殆どできるから。理屈では難しくないがあんだけのタグを
実際に作るとなるとメンドイな・・・
tableとイメージとpreを使った簡単なブラウザを今度作ってみるつもり
だけど・・・。
322:デフォルトの名無しさん
04/11/29 06:11:11
>>320 >>321
誰か翻訳してくれ
323:デフォルトの名無しさん
04/11/29 06:13:57
イラネ
324:デフォルトの名無しさん
04/11/29 15:43:41
tabel
325:デフォルトの名無しさん
04/11/29 15:44:57
描写するだけぁない。
酔っ払いか?
326:デフォルトの名無しさん
04/11/29 17:06:59
>>227
327:デフォルトの名無しさん
04/11/29 22:47:26
なんでも煽りに見えるのは良くないです。
つか、そんなスレになっている元凶は死ね、
いくら煽ったってお前の実力は向上しないし、稚拙でもタコでもやる奴の実力のみが向上するんだよ。
おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
【語り「コンパイラ・スクリプトエンジン」相談室4 >>227】
328:デフォルトの名無しさん
04/11/30 00:00:25
コンパイラの学習はLISPが良いな
329:デフォルトの名無しさん
04/11/30 00:03:04
初心者がLISPでコンパイラを書こうとすると、グラフの実現でつまづく気がする。
330:デフォルトの名無しさん
04/11/30 00:14:03
LISP最高!
これ覚えると他がアフォらしく見えるよ!
331:デフォルトの名無しさん
04/11/30 00:25:28
なんでも煽りに見えるのは良くないです。
つか、そんなスレになっている元凶は死ね、
いくら煽ったってお前の実力は向上しないし、
稚拙でもタコでもやる奴の実力のみが向上するんだよ。
おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
【語り・・・「コンパイラ・スクリプトエンジン」相談室4 >>227】
332:デフォルトの名無しさん
04/11/30 00:27:32
LispよりSchemeの方が単純で良いと思う。
333:デフォルトの名無しさん
04/11/30 00:38:36
継続と末尾再帰最適化が義務になるので却ってハードル高くなんない?
334:デフォルトの名無しさん
04/11/30 01:06:03
>>333
MiniSchemeとか、継続も末尾再帰もGCまかせにする単純な方法があるから、
そんなに大変じゃないよ。
まあ極力GCを避ける実装とか、コンパイルするとかなるとそれなりに大変だけど、
自己記述できるからだいぶ小さくまとまる。
下手な俺流言語でがんがるよりはマシ。
335:デフォルトの名無しさん
04/11/30 01:56:07
『コンパイラの学習はLISPが良い
↓
LISPでコンパイラを書くとグラフの実現でつまづく気がする
↓
Schemeの方が単純で良いと思う
↓
継続と末尾再帰最適化でハードル高くなるのでは?
』
↑ここまでは低脳の漏れにも分かる。。
インタプリタでコンパイラのコードを記述して実行すれば
所望するコンパイラが生成される。(違いますか?)
コードを記述する際、開発環境の言語の特性上、
継続と末尾再帰最適化に気を使うのも分かる。
開発環境にMiniSchemeを使えば継続と末尾再帰最適化を
GC任せに出来るので、コーディングしてる人はその辺未熟でも
許されるという意味ならこれも分かる↓
『MiniSchemeとか、継続も末尾再帰もGCまかせにする単純な方法がある』
これ↓はコンパイラを生成するコードをコンパイラで記述するってことですよね。
『まあ極力GCを避ける実装とか、
コンパイルするとかなるとそれなりに大変だけど、
自己記述できるからだいぶ小さくまとまる。
』
じゃ、これ↓はターゲットとしているコンパイラのことですか?
それとも>>343自体が『MiniSchemeコンパイラを作れば?』ってこと??
『下手な俺流言語でがんがるよりはマシ。』
336:デフォルトの名無しさん
04/11/30 02:00:40
どーか漏れの幼い書き込みで荒れないで下さい。お願いします。
337:デフォルトの名無しさん
04/11/30 02:01:57
>>336
誰だよお前
338:デフォルトの名無しさん
04/11/30 02:05:41
オレオレ
339:333
04/11/30 02:07:00
>>334
まあ継続とかのフレームを毎回ヒープからアロケートしまくれば簡単なんだけど、
知らないと難しい類いの問題じゃないかな。
どうでもいいが、
LispよりSchemeの方が単純で良いと思う。
↓
継続と末尾再帰最適化が義務になるので却ってハードル高くなんない?
↓
下手な俺流言語でがんがるよりはマシ。
いつのまにLispが下手な俺流言語になったんだろうw
>>335
「Lispを書く」と「Lispで書く」が各人ばらばらでつよ。
繋がってるようで繋がってない。
340:デフォルトの名無しさん
04/11/30 02:10:29
>>339
まあ、下手な俺流 Lisp はあり得るかな。
下手かはともかく、遥か昔はみんな俺流 Lisp だったといえなくもないわけだし。
341:デフォルトの名無しさん
04/11/30 02:12:24
(´◕ω◕`)ばらばらか・・そっか・・
342:デフォルトの名無しさん
04/11/30 04:55:35
このスレ共通言語をSchemeにすれば全て解決
343:デフォルトの名無しさん
04/11/30 06:01:33
>>342
却下
344:デフォルトの名無しさん
04/11/30 21:37:48
>>343
なんで?
345:デフォルトの名無しさん
04/11/30 23:05:30
グラフが扱いにくい
346:デフォルトの名無しさん
04/11/30 23:07:24
>>345
グラフって?
347:デフォルトの名無しさん
04/12/01 00:16:25
flex,bisonについて、このスレ的な見解はありますか?
348:デフォルトの名無しさん
04/12/01 00:20:45
flex2.5.31
349:デフォルトの名無しさん
04/12/01 00:40:15
>>347
手軽に済ませたければ使うとよろし。きめ細かなエラー回復処理を
したいとか、特殊な構文山盛りの言語だと、手でパーサー書いた
方が良い。
ただ C だと文字列操作繁雑だから、個人的には C++ 処理系と
組み合わせて使えるヤツを勧めておくが。
350:デフォルトの名無しさん
04/12/01 10:54:19
S式で書けばflexもbisonも(゚⊿゚)イラネ
351:347
04/12/01 17:23:08
どうも
352:デフォルトの名無しさん
04/12/01 18:24:40
Rubyの青木さんの256本を買った。
いや、これなら自分でも読めそうだったんで。
353:デフォルトの名無しさん
04/12/01 18:38:20
現状 flex はいいとしても、bison又はyacc に変わるものなし
と思う俺は実用主義
354:デフォルトの名無しさん
04/12/01 18:44:04
よほどの特殊事情がないかぎりflexとbisonで済ませるね
不足を感じたことは今のところなし。
355:デフォルトの名無しさん
04/12/01 19:40:35
c++から使いにくいインタフェースは改善されたんだっけ?
Parser ClassとかLexer Classは提供されてる?
356:デフォルトの名無しさん
04/12/01 20:23:00
sfにあるreentrantなflexは本家にマージされないの?
357:デフォルトの名無しさん
04/12/01 23:05:49
JavaCCとANTLRとSableCCとCUPとnotavaccの比較ってだれかやってくんない?
notavaccのページにはJavaCCとの比較が、SableCCのページにはANTLRとの比較があるけど、ほかのも知りたい。
他力本願ですまん。識者の意見求む。
358:デフォルトの名無しさん
04/12/01 23:11:44
LISP に変わるもの無しと思っている俺は非実用主義
359:デフォルトの名無しさん
04/12/01 23:39:51
>>353
前に評価したけど yacc からの移行なら yayacc がなかなか良いよ。
過去の遺産の都合で未だに flex + bison な仕事を抱えてて、移行
できてないが>俺
360:デフォルトの名無しさん
04/12/01 23:44:39
javaで作るパーサの本読んだ人いる?
ああいう感じで構文をクラスに落としてくれるコンパイラコンパイラってないのかな?
361:デフォルトの名無しさん
04/12/01 23:59:54
>>360
JavaCCじゃ不満?
362:デフォルトの名無しさん
04/12/02 00:01:19
>>361
URLリンク(www.pearsoned.co.jp)
この本なんだけどね、すごく綺麗なパーサ用パーツ群なんだよね。
363:デフォルトの名無しさん
04/12/02 00:37:41
>>362
せっかくその本読んだんなら自作してみては?
364:デフォルトの名無しさん
04/12/02 00:49:56
ソースとかヴィダルサスーン並に綺麗なん?
365:デフォルトの名無しさん
04/12/02 00:56:08
その本わかりやすく簡潔で超おすすめだった!
自分でなんとなく興味があっても、結構手が出しにくく思える「パーサ関連」の良書だった。
コンピュータサイエンス等の基礎が全くなくても、
JAVAでオブジェクト指向をある程度なら把握できている人には、超おすすめ。
本の構成も非常に考えられていて、まったくのパーサ未経験者でも頭から読んでいけば
最後には自分でプログラミング言語を作成できるところまでたどり着けた。
366:デフォルトの名無しさん
04/12/02 01:03:08
作者か関係者か。いいかげんウザいから消えろ。
367:デフォルトの名無しさん
04/12/02 01:04:10
君、アマゾンの・・
368:デフォルトの名無しさん
04/12/02 01:05:51
作者←海外から青い目の2chねらーかよw
369:デフォルトの名無しさん
04/12/02 01:12:25
URLリンク(www.amazon.co.jp)
375はカスタマーさんですか??
370:デフォルトの名無しさん
04/12/02 01:18:27
中身Javaクラスべったりで萎えた
371:デフォルトの名無しさん
04/12/02 01:45:37
>>366
すぐ関係者とかを疑うのって痛くないか?
372:デフォルトの名無しさん
04/12/02 01:50:02
横から悪いが>>360はその本にそんなに感銘受けてるっつーなら
それ使ってりゃいいのでは?
373:デフォルトの名無しさん
04/12/02 02:06:39
C#で使えるまともなBisonご存知ないですか?
GCの効くJavaでもいいですが、C#の方がコーディング早いから、できるの
であればいいかなぁ程度なのですが、XMLの規格の解析するだけなので速度は
気にせず、解析できればおっけーなのです。
374:!=360
04/12/02 02:10:57
>>372
その本は読んだことないけれど、本に載っているサンプルよりももっと「でき」がよい
ものはあるかどうか、っていうことじゃないかな?
375:360=362
04/12/02 02:20:04
なんか荒れてますね
>>372,361
javaCCとかってパースクラス本体が妙にでかいのができるんで、件の本(これはパーサを作る為の細かいパーツの集合なんでBNFから自動展開とかはしないのです)
の物みたいに粒度の細かいクラスに分解するようなコンパイラコンパイラは在りませんかって問いかけだったんです。
376:デフォルトの名無しさん
04/12/02 02:31:04
>>360>>362から>>375を把握できるヤシはESP
377:デフォルトの名無しさん
04/12/02 02:35:37
>>363はBNFから自動展開出来るように君が作ればぁ~って言ってるんだよw
378:デフォルトの名無しさん
04/12/02 10:34:27
>>377
作ってるよ、お前の書き込み面白くない、どっかいけよ。
>>363
ライブラリに最初から入っているxmlパーサじゃだめなん?
379:デフォルトの名無しさん
04/12/02 11:09:59
自家撞着?
380:デフォルトの名無しさん
04/12/03 09:45:40
>>373
Bisonじゃないけど、ANTLRはC++、Java、C#で使えたはず。
381:デフォルトの名無しさん
04/12/04 00:05:49
ANTLRは文法に癖あるってきいていたのでマークしてなかったですが、
がんばって使ってみますね。どもです。
382:デフォルトの名無しさん
04/12/04 03:30:01
Flexの正規表現でシフトJIS日本語文字列(""括りで\がエスケープ文字)を
定義するのはどうしたらいいのでしょうか?とりあえず
\"(([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])|\\.|[^\\"])*\"
としてみたのですが、2バイト目が\の"表"とかが最後になっていると
"がエスケープされてしまいそのさらに次の"までが文字列になってしまいます。
よろしくお願いします。
383:デフォルトの名無しさん
04/12/04 12:08:56
>>382
2バイトめ"\"のパターンを使え
384:382
04/12/04 13:14:05
>>383
シフトJISの2バイト目"\"のパターンは
([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])
で引っかかると思うのですが、
これじゃダメなんでしょうか?
385:デフォルトの名無しさん
04/12/04 13:32:42
>>382 は
\"(\\.|[^\\"])*\"
と同じ意味。
[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]
は
[^\\"]*
で吸収できちゃうから。
386:382
04/12/04 14:02:51
>>385
解決できました。ありがとうございます。
387:デフォルトの名無しさん
04/12/05 20:42:28
>>386
結果を張っといたら?
388:デフォルトの名無しさん
04/12/05 20:47:08
(V)o\o(V)
389:デフォルトの名無しさん
04/12/05 20:58:35
バルタン星人かよ!
390:デフォルトの名無しさん
04/12/05 22:21:17
>>387
私は自力で解決しました。
あなたも自分で考えてみてください。
391:デフォルトの名無しさん
04/12/06 23:40:48
>>390
こういう奴が、スレを糞化させる。
392:デフォルトの名無しさん
04/12/06 23:42:41
糞化したスレ
スレリンク(tech板)
393:デフォルトの名無しさん
04/12/07 00:17:37
もともと糞化してただろ。
394:デフォルトの名無しさん
04/12/07 04:28:08
>>381
ANTLRの書き方って独特だよね。おれもよくわからん。
いちばんわかりやすいのはSableCCだな。BNFだけ定義すればよく、JavaコードとBNFとをごちゃまぜにする必要がない。
395:デフォルトの名無しさん
04/12/07 14:37:37
>>391 必死だな
396:デフォルトの名無しさん
04/12/07 14:40:41
>>392
ほんとの意味で糞化だ(笑
397:デフォルトの名無しさん
04/12/08 00:31:38
>>395
アフォ目、洩れがアドバイス出してやったんだがw
398:デフォルトの名無しさん
04/12/08 02:32:41
アンタのアドバイスはこっちのトンチンカンな方だろ。
383 名前:デフォルトの名無しさん 投稿日:04/12/04 12:08:56
>>382
2バイトめ"\"のパターンを使え
399:デフォルトの名無しさん
04/12/08 02:37:47
>>397
つーか知ってるなら自分で貼ったらいいじゃん。
400:デフォルトの名無しさん
04/12/08 11:54:01
そして張ったとたんに間違っていると判明と(藁
401:デフォルトの名無しさん
04/12/09 09:34:35
(\)o\o(\)
402:デフォルトの名無しさん
04/12/15 22:47:03
.
403:デフォルトの名無しさん
04/12/16 01:19:20
どなたかこいつを弄ったことのある方いらっしゃいますか。
URLリンク(www.cminusminus.org)
404:デフォルトの名無しさん
04/12/18 15:10:46
405:デフォルトの名無しさん
04/12/21 18:59:06
.
406:デフォルトの名無しさん
04/12/21 21:35:17
ここのスレをまとめたページはないのかい?
407:デフォルトの名無しさん
04/12/21 23:29:57
コンパイラを作りたいのですが、どうしたらいいんでしょう
私は、Cの入門書を読み終えた程度です。
408:デフォルトの名無しさん
04/12/21 23:35:38
>407
無謀
409:デフォルトの名無しさん
04/12/21 23:47:06
コンパイラの入門書を読め
410:デフォルトの名無しさん
04/12/21 23:58:53
なぁ、友達にアセンブラを知らないと作れないといわれたのだが、本当か?
411:デフォルトの名無しさん
04/12/22 00:06:01
>>410
その友達に理由を聞けよ
412:デフォルトの名無しさん
04/12/22 00:06:17
ネイティブコンパイラを作ろうと思うならな
413:デフォルトの名無しさん
04/12/22 00:11:18
>412
そうか、アセンブラはいるのか。。。
アセンブラを勉強してから出直してくるよ。
414:デフォルトの名無しさん
04/12/22 00:12:36
アセンブラなんてCより覚える事少ないぞ
415:デフォルトの名無しさん
04/12/22 00:18:06
>414
そうなのか?
Cも覚えることはほとんどなかったが。。。。
まぁ、いいや。
はじめて読む8086からはじめるよ。
416:デフォルトの名無しさん
04/12/22 00:22:34
言語なんてのはすぐに覚えられるが、問題はその先だな。
417:デフォルトの名無しさん
04/12/22 00:27:08
>>408
そうでもないよ。
言語を理解するには実際に自分で作ってみるのが手っ取り早いよ。
418:デフォルトの名無しさん
04/12/22 00:30:54
その先は、何を作るかによるだろう。
419:デフォルトの名無しさん
04/12/22 00:40:03
つーかそれ作って何するかだな
漠然と作ってもただのゴミだし
時間を有効に使う意味では言語処理系なんて手を出さないが吉
420:デフォルトの名無しさん
04/12/22 00:46:08
>>419
できあがった完成品が重要なのではなく、その過程でできたものがもっとも重要な
物・事である事が多いと思いますよ。
完成品なんてタダでくれてやればいいが、その過程で得たものは絶対誰にもあげない。
そう思います。
って青木淳さんの受け売り…
421:デフォルトの名無しさん
04/12/22 00:47:22
このスレと路線がずれてないか?
そろそろ元に戻そうぜ。
422:デフォルトの名無しさん
04/12/22 00:51:01
953 名前:名前は開発中のものです。 [] 投稿日:04/12/21 20:13:01 ID:ZZkG0tzm
AliceSoftのSystem(開発環境)見たいなのを作りたいのですが、どうしたらいいのでしょうか?
私は、Cの入門書を読み終わったくらいLvです。
954 名前:名前は開発中のものです。 [sage] 投稿日:04/12/21 20:39:50 ID:y3o3j+dn
>>953
「コンパイラ・スクリプトエンジン」相談室4
スレリンク(tech板)
ゲ製板の初心者質問スレで発見。
423:デフォルトの名無しさん
04/12/22 00:59:30
それ、>407の書いたものだろう?
424:デフォルトの名無しさん
04/12/22 04:42:53
Cで書こうとすると色々と複雑になって辛くない?
先にC++覚えたほうが楽だと思う
425:デフォルトの名無しさん
04/12/22 08:11:24
>>422
それだったらアセンブラ知っとく必要ないじゃん。
とりあえず「yacc インタプリタ」でぐぐって好きなの読むといいんじゃない?
426:デフォルトの名無しさん
04/12/22 11:43:40
「私はこれで仕事をやめました。」
427:デフォルトの名無しさん
04/12/22 11:46:40
「私はこれで仕事をやめさせられました。」
428:デフォルトの名無しさん
04/12/22 13:55:40
>>410
アセンブラというものがどういう構造なのか知っておくと便利だけど、
アセンブラ言語そのものを覚える必要は無いと思う。
それよりコンピュータがどうして動いてるか理解する方が大事。
メモリから命令を拾って来る→なんかする→次の命令を処理
という流れはどっちも変わらないから。
429:410
04/12/23 00:52:02
とりあえず、>407とは別人だぞ。
なんか、一緒にされてる気がするので。
>428
え、ネイティブなら必要だと、上のレスにあるが。。。。
430:デフォルトの名無しさん
04/12/23 00:59:14
マジでコンパイラ作りたいと思っているのなら、最初はアセンブラから始めるのではなくて
自分の言語→C言語へのトランスレータを作って、system関数か何かを使ってCコンパイラを呼び出してコンパイルするのがいい。
C++なども最初はそのようにして作られたし、元々Cはそのための言語として開発された経緯があるから良い感じで実装できる。
Cのオプティマイザをそのまま借用できるのも便利だ。
もしアセンブラも知っていれば、自分の実装した機能を効率よく実装できる命令が見つかるかもしれない、
そのときにネィティブコンパイラを作ってみようという動機が発生する。
目的が現在の言語の性能が気に入らんから、言語はそのままでより良いオプティマイザを実装しようというなら
いきなりアセンブラで行けというところで。
431:デフォルトの名無しさん
04/12/23 01:43:13
今んとこ最強の成書↓
URLリンク(www.amazon.co.jp)
amazon.comで古本買ったほうが安いかもしれん。
ただしちょっと古い(1997)
FORTRANなら↓
URLリンク(www.amazon.com)
物好きには↓
URLリンク(www.amazon.com)
持っているといばれる。
432:デフォルトの名無しさん
04/12/23 02:00:43
ドラゴンブックは今日では読む価値はほとんどない。
記述が難しい上に古い本なので初学者にも上級者にも無用。
新中田本は記述が簡素すぎるので、結局は元の論文を読むはめになる。
ってゆっか、教科書ではなくサーベイだな。
初学者なら佐々本がベストだと思う。
古い本だが、ある程度のレベルを保ちつつこれ以上わかりやすい本は
他には知らない。
433:デフォルトの名無しさん
04/12/23 02:19:14
URLリンク(www.amazon.com)
lccは全く実用にはならないのだが、
この本はかなりおもしろく、また、類書が全くないので一読の価値あり。
434:デフォルトの名無しさん
04/12/23 04:21:30
吉里吉里とかコンパイルすると、シナリオファイルの中身が読めないファイルに変換されていますが、
あれはどうやっているのですか?
(ここではスレちがい?)
435:デフォルトの名無しさん
04/12/23 08:10:26
スクリプトの実装ではなく設計の哲学などを扱った書籍はありませんか?
436:デフォルトの名無しさん
04/12/23 08:50:48
>>434
暗号化してるだけだろ
437:デフォルトの名無しさん
04/12/23 09:18:34
暗号化っちゅうか、
コンパイルってことは普通バイナリファイルにするわけで、
バイナリになったら普通人は読めないだろ。
438:デフォルトの名無しさん
04/12/23 11:04:46
>>432
ドラゴンブックが古い本なのは確かだが、コンパイラ理論の基礎なんて
ドラゴンブックの時代から変わってないから問題ないよ。
佐々本は読んだことないから、そっちの方が良いという意見は否定しないが。
439:デフォルトの名無しさん
04/12/23 13:37:39
ドラゴンブックは原書でしか読んでないが、古めかしさ的には
佐々本と大差ないと思われる(属性文法あたりの差分はあるけどね)。
日本語で読みたいなら、佐々本の方が良い。1冊にまとまっているし、
なによりドラゴンブックの日本語訳はヤバい。
中田本はちゃんと読んでいないので何とも言えないが、元の論文
読む羽目になるのは仕方ないんじゃないか? というか、中田本を勉強
しなきゃいけないやつは、どうせ元論文だけでなくもっと新しい論文を
読まなきゃ仕事にならんでしょ。
440:デフォルトの名無しさん
04/12/23 13:54:43
>>431
"Advanced Compiler Design and Implementation"
この本は主にどの言語で書かれていますか?
C? C++?
441:デフォルトの名無しさん
04/12/23 14:13:41
>>440
漏れは431ではないが、アルゴリズムの説明などで用いられている擬似言語はpascal風。
とはいっても内容は全くプログラミング言語に依存しない。というか、コンパイラの本で内容が
特定のプログラミング言語に依存するものってあまりないと思う。
ベクトル化コンパイラの本はFortran向けに書かれていることがよくあった気もするが。
442:デフォルトの名無しさん
04/12/23 16:36:55
>434
Javaと同じと考えていいんでない?
443:デフォルトの名無しさん
04/12/23 17:08:20
How to WSDL convert to SOAP?
444:デフォルトの名無しさん
04/12/23 17:19:36
>>443
HTML や XML は正規表現を憶えてツリー型のデータ構造を憶えれば完成だから、
正規表現のスレッドや初心者相談系のところにいったらいいよ。
445:デフォルトの名無しさん
04/12/23 17:22:18
URLリンク(yaneurao.hp.infoseek.co.jp)
↑のソースは参考になる?
446:デフォルトの名無しさん
04/12/23 20:22:14
コンパイラを作りたいのですが、どうしたらいいんでしょう
私は、Lispの入門書を読み終えた程度です。
447:デフォルトの名無しさん
04/12/23 20:26:03
じゃLISPコンパイラ作れ
448:デフォルトの名無しさん
04/12/23 20:29:51
>>446
lex yacc または bison flex といった所をやる
オライリーの動物本でもどうぞ
もしCができないなら先にそっちをやる。
Cが分らないとツール群の使い方が理解できない。
449:デフォルトの名無しさん
04/12/23 20:31:29
>448
Cでなくて、C++でもいいんでない?
450:デフォルトの名無しさん
04/12/23 20:34:07
>>449
Cが分らないならC++をやるのはただの遠回り、そこまでやらなくてもツールは使える。
C++で使うにはかなり詳しくC++を知る必要があるから、そんな所に迷い込んだら永久にできなくなってしまう。
大規模になってくれは必然的にC++やる事になるのだから、そのときで十分。
451:デフォルトの名無しさん
04/12/23 20:41:23
yaccとかbisonって、構文解析と字句解析に使うんだろ?
452:デフォルトの名無しさん
04/12/23 20:41:51
Lispのコンパイラを作るのにlex+yaccはいらんなあ。
バイトコードに落とすLispのコンパイラを作るのは結構簡単なわりに面白いよ。
453:デフォルトの名無しさん
04/12/23 20:44:25
>452
おすすめのソースとかある?
454:デフォルトの名無しさん
04/12/23 21:00:41
>>9のやさしいLispの作り方はどう?
455:デフォルトの名無しさん
04/12/23 21:06:14
>454
ありが㌧
Javaの復習にもいいね。
そろそろこのスレをまとめたサイトが欲しいね。
456:デフォルトの名無しさん
04/12/24 00:37:04
>>454
あれはS式をそのまま解釈するインタプリタなのでコンパイラは出てきませんね。
でも入門書を読み終えた程度って人なら処理系のイメージを軽くつかむにはいいかな。
Lisp/Schemeスレのテンプレに出てくる小さい処理系の中には
バイトコード仮想マシン+コンパイラという構成のものもあるのでそれがいいです。
Emacs使いならbytecomp.elがそのままコンパイラ。
ちょっと概要を掴むのに苦労するかも知れないけど。
457:デフォルトの名無しさん
04/12/24 10:19:57
>>420
俺と考えが違いますね
ソフトもプログラムも、頭の良い人が数人いて、いいものを作れば
終わっちゃう世界だと思うんですよ。
コピーすれば同じですし・・・
例えば、簡単なスクリプトを学生が趣味で作ってとしてそれを公開すれば
他の人は、そこまでの勉強が近道が出来ると思います。
頭の良い人はそこから更に良い物を作るって言うやり方が必要だと・・・
特許などに触れる部分や会社の売りである部分はさすがに公開できないでしょうが
その部分を省いた基本的な部分は全て公開する方が効率が良いと思いますし
アメリカやインドに比べてソフト開発力が低い?と言われてるのだから、
その部分を補う部分が欲しいと思いますね。
458:デフォルトの名無しさん
04/12/24 10:38:33
>>420 頭のいい人
>>457 口をあけて待ってるバカ
459:デフォルトの名無しさん
04/12/24 16:42:34
>>458
馬鹿で悪かったな・・・
C言語を覚えるのに、C言語の入門からマニュアルが一杯でてるだろ
おまぇはそれすら観なかったのかよ?
それからアルゴリズムも全部自分が考えたか?
データ構造とアルゴリズムを本やインターネットで覚えてないのか?
結局頭の良い人が見つけたプログラミングをお前だって恩恵受けてるだろ。
コンパイラだって頭の良い人が考えてプログラムの参考に自分の新しい
コンパイラを作るのだって在りだと思ってるんだよ
それとは別に人が作ったものを他の人がまた作るのもデジタルである
プログラムではもったいないと・・・
おまぇの考えはフリーでプログラムを提示してる人を真っ向から否定してるよな
460:デフォルトの名無しさん
04/12/24 16:44:18
>>458
こいつはコンパイラの本を見ずにコンパイラを自力で作れるすごい奴なのかも
しれないwww
461:デフォルトの名無しさん
04/12/24 16:47:26
別に凄くないと思うぞ
462:デフォルトの名無しさん
04/12/24 16:49:06
>>461
自力で作れる奴がここに来るのか??www
463:デフォルトの名無しさん
04/12/24 16:53:22
>>462
もし来ないと思っているなら、それは偏見だよ。
別にここでの書き込みに何か期待しているわけじゃない。
ただ、専門分野での雑談を楽しんでいるだけだよ。
464:デフォルトの名無しさん
04/12/24 16:57:04
>>436
彼はC言語のマニュアルしかみないでプログラマーやってる
スーパープログラマーだから、相手にしない方がいいな。
465:デフォルトの名無しさん
04/12/24 17:09:11
>>463
彼はすごいよ。
数学の数式や方程式も自分で考えたんだよ。
大学の勉強も教授に話しを聞かなかったと思うよ
何故ならスーパーだから・・・。
教授が自分の経験や頭が良い人の本や教科書を使った
授業だって彼にとっては無駄だもの
先人の発見した知識は彼には必要ないんだよ
彼は全部自分で考えて、自分で作れるんだから・・・www
466:デフォルトの名無しさん
04/12/24 17:09:49
俺はC言語なぞコンパイラのユーザマニュアルだけで使えるようになったけどな。
そういう人間は別に少なくないだろう。分布が偏在しているだろうとは思うが。
それはさておき>>457=>>459だろうが言ってることが滅茶苦茶だぞ。
>>457では成果物としてしか捉えてないからバカと言われて当たり前。
公開されてるものを眺めただけで改良できるようになるわけじゃないんだよ。
結局ものの設計や開発は一種の探索問題だから、その過程を理解しなければその設計に
至る必然性やどこに改良すべき点があるかとかわからん部分もある。
>>459でいってるアルゴリズムとかは経験(≒プロセス)から抽出された知識であって
成果物ではないのだから457の主張の論拠にはなり得ない。
457を補強するつもりでも結局459は420の補強にしかならん。
457を見て感じるのは、こいつには「頭のいい人」のものの考えは絶対理解できないだろうなということ。
自分をその範疇から外していて、そうなる意志もないだろうというのも感じる。
467:デフォルトの名無しさん
04/12/24 17:18:39
>>466
はぁ~、まぁ~いいや、プログラムだけでなく
方程式とかも自分で解いたんだろ、、全部。
おまえの言ってることは、本に書いてある知識や経験を
必要としないでやってきた人間だけが言える言葉だぞ。
例えば、英語の映画を観ただけで、英語を覚えられるとか・・・
誰かが、覚えた経験を元に英語の教科書や、専門書を
観ないで覚えたのか
授業で英語の教科書を見て英語覚えたのなら、
それは英語を覚えた経験した事を、本で覚えて
英語を覚えたことになるんだぞ。
468:デフォルトの名無しさん
04/12/24 17:19:23
誰かが、覚えた経験を元に書かれた英語の教科書や、専門書を
観ないで覚えたのか
でした
469:デフォルトの名無しさん
04/12/24 17:25:02
この話題で初めて書き込むが,
>>466 アホだな…
本や論文を読まずに~というのは, 要するにその内容を完全に理解したから,
その文献を再び参照することなく, 新規性のある事ができる, という意味だろうに…
470:デフォルトの名無しさん
04/12/24 17:26:19
>>466
彼はエジソンだね。学校の授業は人の経験を教科書にして覚えると言う
行為だから・・・
授業など必要とせず、自分で経験したことだけで、スーパープログラマに
なったらしいから・・・
まさに、プログラマー界にエジソンだよ。
そういうスーパーな人は、新しい言語でも作って世の中で有名でもなって
ください。
471:デフォルトの名無しさん
04/12/24 17:28:38
>まさに、プログラマー界にエジソンだよ。
あなたはまず日本語を勉強しましょう
472:デフォルトの名無しさん
04/12/24 17:29:37
>>471
それくらいスーパーなプログラマなら脳内変換できないのか?
473:デフォルトの名無しさん
04/12/24 17:31:53
>>457
落ち着け。>>420は
> 完成品なんてタダでくれてやればいい
と言ってるんだぞ。お前にソースは見せん、と言ってるんじゃない。
474:デフォルトの名無しさん
04/12/24 17:32:36
>>457
なんかフレーム引き起こしてますな、僕も420と同意見で
他人の作ったものをとってきて喜べるたちの人間ではないですね、
自分で何か作る事にのみ喜びを感じます、
アルゴリズムも自分で思いついてこそ楽しいのです。
作業効率なんてどうでもいいんですよ。
貴方の意見を読んでいるとプログラミングが恐ろしくつまらない作業の繰り返しに思えます。
475:デフォルトの名無しさん
04/12/24 17:35:18
476:デフォルトの名無しさん
04/12/24 17:36:12
>>457-476は役に立たない塊ですので透明あぼーんしましょう
477:デフォルトの名無しさん
04/12/24 17:38:14
>>474
プログラミング自体を楽しめるのなら良いが
作るという行為だけ楽しめる人もいるんですよ
プログラミングだけならアセンブラやC言語だけでいいじゃないですか
でも作る行為が楽しいと言う人がいるから、VisualBasicだってある。
問題は効率良く作業する為にはどうしたら良いかと
彼はライブラリも使わないと思うよ。
ライブラリだって人の作ったプログラムを使ってるんだから、スーパーな
プログラマは我慢できないんじゃないかな?
478:デフォルトの名無しさん
04/12/24 17:38:25
こっちに移動してください
スレリンク(tech板)
479:デフォルトの名無しさん
04/12/24 17:41:50
>ライブラリだって人の作ったプログラムを使ってるんだから、スーパーな
>プログラマは我慢できないんじゃないかな?
この辺りからして感覚が違う気がしますね、我慢できないのではなくて、中身が興味深そうなら自分も作ってみるのです。
480:デフォルトの名無しさん
04/12/24 17:47:58
結局、どこまでが基礎でどこからが応用かという問題だろ。
先人の経験を基礎に入るかってことで
どんな職業だって先人の経験を真似る部分もある。
確かに真似るだけでは駄目でそれを自分のものにしなくてはならない
ソースだけ開示するまでが基礎か
その考え方まで書いてあげてコンパイラというものを理解できるような
形にしてあげること(本やインターネットで)
までが基礎かの違い。
彼はソースだけは開示すると書いてあったのは理解できなくもない
本やインターネットでコンパイラについて書かれたことを全く
見ずに自分でコンパイラを作った人なら、他の人にもそれくらい
自分でやればと思うかもしれないから・・・
でも本やインターネットでコンパイラについて書かれた内容を理解した
人は、その本を読んで理解しろと言う場合と、もっと解りやすい本が
あればもっと簡単に覚えられたと思う人もいるだろ
簡単に言えば解りやすいコンパイラの本が日本語で出るだけで、新たな
言語が出る可能性が出て面白くなると思うけどね。
481:デフォルトの名無しさん
04/12/24 18:11:16
ここはdjbみたいな人が沢山いるインターネットですね。
482:デフォルトの名無しさん
04/12/24 18:14:03
LLパーサやDDA位なら自力でたどり着いた事あるぞ。
つかそのころコンピュータ書籍は英語で書かれている物以外は論文くらいしかなかったし、しかも俺は英語を習う前だったから読むもクソも無かった。
まさか当時は電算関係が生業になるなんて考えてもみなかったけど楽しかったぞ。