「コンパイラ・スクリプトエンジン」相談室12
at TECH
[前50を表示]
100:デフォルトの名無しさん
08/01/13 00:03:08
>>98
なんのための JIT なんだ?
101:デフォルトの名無しさん
08/01/13 02:19:59
>>99
にわかですまんが
ネイティブってことは逆にVMじゃ動かんの?GCとかどうしてんだ?
102:デフォルトの名無しさん
08/01/13 11:57:23
gcjでネイティブコンパイルしたら本物のネイティブコードになるのでVM上では動かない
GCとかは実行ファイルにリンクするランタイムライブラリ(libgcj)に含まれてる
103:デフォルトの名無しさん
08/01/13 14:22:38
>>101
更にgcjのランタイムにはJVM相当機能も含まれてて.classの実行もできる.
なのでjarの動的ロードとかも可能になってる.
# クラスライブラリ足りなくて実用するのは大変だが…
104:101
08/01/13 15:38:31
>>102-103
なるほど、ありがとう。
しかし、
URLリンク(www.shudo.net)
↑を見る限りパフォーマンスでのメリットがないw
105:デフォルトの名無しさん
08/01/13 18:17:52
caperのなかのひとサルでも分かるチュートリアルつくってorz
特に構文木のところがサパーリ
106:デフォルトの名無しさん
08/01/13 18:26:04
105じゃないけど、caperべんりです、ありがとさんです。
107:デフォルトの名無しさん
08/01/13 20:39:18
caperって?
108:デフォルトの名無しさん
08/01/13 21:32:28
ググレスカ
109:デフォルトの名無しさん
08/01/13 22:33:42
Cygwinいんすこして、bison-2.1.exeとflex-2.5.4a-1.exeをいんすこしたんだけど、
flexを動かそうとすると、bash: flex command not foundとでます
どーやれば、うごかすことができるんすか?
110:デフォルトの名無しさん
08/01/14 01:40:22
>>104
今のJVMは起動時間はクソ遅いけど処理自体はそれなりに速いからねぇ…
gcjでネイティヴバイナリ化するとアプリの起動時間はJVMより速くなる.
が,処理時間は正直速くならんね…
111:デフォルトの名無しさん
08/01/14 12:39:53
URLリンク(www.shudo.net)
でもいい話を聞いた。
VMでどのOS上でも動かせるJAVAがネイティブコンパイルで多分単体で実行できるなら配布しやすいし
多分DirectX使った高速化も・・・・
けどここのサンプルシューティングは動かん。
IE用JavaMV入れただけだけどコマンドラインでJAVA呼び出せるんだけどなんでだろ。
URLリンク(www.hcn.zaq.ne.jp)
112:デフォルトの名無しさん
08/01/14 13:31:46
Cygwinいんすこして、bison-2.1.exeとflex-2.5.4a-1.exeをいんすこしたんだけど、
flexを動かそうとすると、bash: flex command not foundとでます
どーやれば、うごかすことができるんすか?
113:デフォルトの名無しさん
08/01/14 19:14:45
>>105-107
caperおもしろいな
あとは、軽い汎用VMでもあれば、お手軽自作言語が簡単にという夢を見た
114:デフォルトの名無しさん
08/01/14 19:35:25
VMは作るのだけならそんなに難しくないよ。
むしろ既存のVMに乗せる方が困難なんじゃないだろうか。
115:デフォルトの名無しさん
08/01/14 19:59:03
>>114
同意。
組み込みでメモリ制限がきつい時にマクロの一種としてVM作ること多いんだけど、マジでそう思う(VMも似通ってるけど特殊なプリミティブが組み込み対象別なのでメモリ制限の関係でいまいち統一的に扱えない)
116:デフォルトの名無しさん
08/01/15 06:22:07
Pコードか!
117:デフォルトの名無しさん
08/01/15 12:43:14
似たようなもの。
セルフコンパイル、自己デバッグくらいは処理できる(実機ではそんなメモリないけど、エミュをデスクトップ機上に簡単に作れるのでそちらでデバッグ)
32KワードくらいのRAMのうち16K自由にできれば自己完結環境になれるからね>>pcodeがUCSDのだとすると
118:デフォルトの名無しさん
08/01/16 19:58:47
p2cコンパイラをcygwin環境で動かすにはどうしたらいいですか?
119:デフォルトの名無しさん
08/01/19 03:01:23
GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)
URLリンク(wiki.livedoor.jp)
日本語のGC解説は珍しいね
120:デフォルトの名無しさん
08/01/19 11:59:22
おー
簡単な物は大学の授業や演習の資料とかではあるけど
ネット上でブラウザで閲覧可能でまとまってるものはごくわずかだからなぁ
121:デフォルトの名無しさん
08/01/24 19:55:09
MS-DOSのバッチファイルのBNFってどこかに落ちてませんかね。
googleしてみた限りでは見つからないのですけれども・・・。
122:デフォルトの名無しさん
08/01/24 19:57:32
バージョン違いがあるし、難しいんじゃないかなあ?
そもそもコマンドベース言語だし。
過去、バッチを読み込むプログラムは存在してるから、
その作者に連絡とってみるとか。
123:デフォルトの名無しさん
08/01/24 20:00:41
テンプレにある、コンパイラ構成法の正誤表がアクセスできん。
124:デフォルトの名無しさん
08/01/24 20:19:09
GCって昔読んだ説明から、何ひとつ進歩してないような気がする。
気のせいか?
125:121
08/01/24 21:12:43
>>122
レスありがとうございます。
引き続きもうちょっと色々と調べてみようと思います。
126:デフォルトの名無しさん
08/01/25 00:58:25
>>124
> GCって昔読んだ説明から、何ひとつ進歩してないような気がする。
> 気のせいか?
最近の動向を含んだ解説がまだあまり出回ってないから。
個人的に記憶に残っているものをいくつか。
・理論系
・URLリンク(home.pipeline.com)
・タイトルが思い出せないのだが、リファレンスカウントと
ガベージコレクションは双対である、とかなんとかそんなの。
・実装系
・URLリンク(www.nminoru.jp)
・URLリンク(sdc.sun.co.jp)
127:デフォルトの名無しさん
08/01/25 22:47:41
>>124の言う昔が僕の言う昔と違うことだけはわかる。
ここ5年だったらあんまりかわらんが、10年だとだいぶ違う。
128:デフォルトの名無しさん
08/01/26 20:14:12
statements や expression や leftvalue(左辺値) などの意味は分かるのですが、
primary とはどういった時に使われるのでしょうか?
あるいは、どういったものをいうのでしょうか?
129:デフォルトの名無しさん
08/01/26 20:51:11
primary expression (一次式) なら定数や変数など
それ以上分解できない式のことだが
130:デフォルトの名無しさん
08/01/26 22:49:24
GCが進歩したのはJavaのおかげ。
Lispだけではとてもとても。
131:デフォルトの名無しさん
08/01/26 23:39:24
>>129
そういう意味でしたか、どうもありがとうございました。
132:デフォルトの名無しさん
08/01/26 23:49:21
> ・タイトルが思い出せないのだが、リファレンスカウントと
> ガベージコレクションは双対である、とかなんとかそんなの。
A Unified Theory of Garbage Collection
133:デフォルトの名無しさん
08/01/27 17:53:05
>>130
Lisper(笑)
134:デフォルトの名無しさん
08/01/30 05:35:37
LisperはN64で使われてるとかいろいろ誇らしげに言うからな
GCは進歩したのもLispのおかげなんだよ
135:デフォルトの名無しさん
08/01/30 08:00:39
>>134
GCに一番寄与したのってSUNのプロダクトだとjavaよりselfじゃないのかな?
136:デフォルトの名無しさん
08/01/30 13:57:09
「A Scala Tutorial for Java programmers」日本語訳 (PDF注意)
URLリンク(homepage.mac.com)
オブジェクト指向+関数型なScalaのチュートリアル
こういう言語の話題はどこもってけばいいんだ
137:デフォルトの名無しさん
08/01/30 14:02:00
ここ(笑)
とは趣旨が違うよなぁ。
なにか新しい言語を、作りたい人じゃなくて使いたい人のためのスレか。
138:デフォルトの名無しさん
08/01/30 14:21:02
OOP言語統合とか、関数型統合とかないからねえ
OOはネガティブなスレしかないw
139:デフォルトの名無しさん
08/01/30 23:24:11
>>119 のid:authorNari がGC本の翻訳希望者つのってる。本気かいな・・・てか需要あるんかいな・・・
140:デフォルトの名無しさん
08/01/30 23:36:23
LISP使いの人が一番だなって感じたことがあるんだけど、
それは、
プライドの高さ。(マジ
141:デフォルトの名無しさん
08/01/31 00:04:15
>>140
なんで? どの辺が??? そんなプライド高くねぇとおもうぞ………
少なくとも俺のしってる奴は, みんな, C とかアセンブラとか書けるし…
そう言う問題とはちゃう?
142:デフォルトの名無しさん
08/01/31 00:06:54
>>140
ワシはLisp使いだがプライドって旨いのか?
まだ食った事ないぞ
143:デフォルトの名無しさん
08/01/31 00:21:07
Lisp を貶せば自分が高みに上がれると思ってる奴ってまだ居たんだな
この多言語時代に、とっくに絶滅したと思ってたよ
144:デフォルトの名無しさん
08/01/31 00:50:57
にじみ出るプライドが俺を呪い殺そうとしている^p^
145:デフォルトの名無しさん
08/01/31 05:49:48
せっかく煽ったのに、内容がここまで勘違い全開だと恥ずかしいな。
146:デフォルトの名無しさん
08/01/31 09:00:35
>>145
馬鹿が見る豚のケツって言葉を思い浮かべた
147:デフォルトの名無しさん
08/01/31 15:59:54
lisp = 鮫島事件
おや?誰か来た様だ
148:デフォルトの名無しさん
08/01/31 22:44:45
俺はJavaとか使ってる奴とは違う。
149:デフォルトの名無しさん
08/01/31 22:50:39
かわいそうに、java屋以下とは……
150:デフォルトの名無しさん
08/02/01 07:25:09
馬鹿さ比べでjava屋以下になっても
あんまり悔しくないよなぁ
151:デフォルトの名無しさん
08/02/01 08:28:16
所詮Windowsなんて使ってる以上、どちらも一緒
152:デフォルトの名無しさん
08/02/03 15:47:22
ruby v.s. php か
153:デフォルトの名無しさん
08/02/03 15:52:37
お前ら >>1-6 を読め
ただのLL談義はスレ違いだ
154:デフォルトの名無しさん
08/02/03 20:28:11
LL談義は、こちらで盛り上がってるのでどうぞ
【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
スレリンク(tech板)
155:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/03 22:26:05
>>31
157:デフォルトの名無しさん
08/02/03 22:42:43
ところでみんな、コンパイラ/インタプリタを作るにあたり、
C言語とアセンブリ以外の言語で、という条件だったら、
どの言語使う?
158:デフォルトの名無しさん
08/02/03 22:46:21
C++
159:デフォルトの名無しさん
08/02/03 22:48:48
なんか %prec の使いどころがようわからんのだけど、
単項マイナスのためのおまじないとしか俺理解してないので
なんか変じゃないの? としかアドバイスできない。
160:デフォルトの名無しさん
08/02/03 22:49:14
Cみたくネイティブコードコンパイラがあって
Cよりずっと型安全な言語がいいなぁ
どんな言語があるかよく知らないが
161:デフォルトの名無しさん
08/02/03 22:52:15
GCJ?
162:デフォルトの名無しさん
08/02/03 22:52:22
>>160
その条件だと SML, OCaml, Haskell が該当する。
これらの言語は処理系の実装によく使われるけど、
ランタイムの制約が大きいので要注意。
163:デフォルトの名無しさん
08/02/03 22:52:22
何も考えずにHaskell
164:デフォルトの名無しさん
08/02/03 22:54:36
ランタイムの制約って何?
165:デフォルトの名無しさん
08/02/03 22:59:35
>>164
自前で GC を用意したいとか、Int は 32bit ないと嫌だとか、
細かい処理系の実装を弄りたい向きには合わない
楽したいならむしろ良いのかもしれんけど
166:デフォルトの名無しさん
08/02/03 23:03:38
>>165
なるほど、インタプリタの話か
コンパイラ書くことしか考えてなかった
真面目にインタプリタを書くなら、Haskellで書かれたバイトコードコンパイラ+Cで書かれたバイトコードインタプリタ
みたいな構成にすれば良いかな
167:デフォルトの名無しさん
08/02/03 23:16:27
%prec EXPC が変だな。
168:155
08/02/03 23:29:15
>>167
%precがないとexpの'+'とexpcの'+'でconflictが起きるんです。
169:デフォルトの名無しさん
08/02/03 23:44:41
expとexpcを混ぜて定義しようとするからconflictするわけで
exp: tkVAR | tkNUM | exp '+' exp | '-' exp
expc: tkNUM | expc '+' expc | '-' expc
170:155
08/02/03 23:54:08
>>169
それだと定数式もexpになってしまいます。
要するに、
a + 2 + 3
を、
tkVAR + expc
としてパースしたいんです。
パーサの段階で定数式を最適化したいんです。
難しいですかね?
171:デフォルトの名無しさん
08/02/04 00:45:31
パーサの時点で定数式の最適化って
2 + a + 3
とか最適化できなくね?
172:155
08/02/04 01:27:57
>>171
それはできなくて良いです。
つか>>155のやり方でもうちょっと書いてみたけど、
演算の優先順位でも問題が発生したのでやっぱり
諦めることにしました。
面白いアイディアだと思ったんだけどなぁ…
173:デフォルトの名無しさん
08/02/04 01:27:58
「パーサの段階で定数式を最適化したい」んならアクション中で最適化すればいいだろ
文法レベルで最適化する意味が分からん
174:デフォルトの名無しさん
08/02/04 09:49:13
構文のレベルで弁別しといたほうが楽、という理由はあるかも。
優先順位付けで誤魔化すんじゃなくて、きちんと優先順位を組み込んだ
構文規則にして、あと、何かテクニックがあったような気がするんだけど...
175:155
08/02/04 12:01:23
>>173
tkVAR '=' exp
tkCONST '=' expc
みたいに書けると良いかなと思ったんですよ。
>>174
> 何かテクニック
参考になる資料があれば是非教えて頂きたいです。
176:デフォルトの名無しさん
08/02/04 13:30:58
Haskellでインタプリタか・・・
Haskellってメモリ気にし無さすぎだからヤバそうなイメージがあるけど、
実験用と以外で使われているんだろうか
177:デフォルトの名無しさん
08/02/04 13:31:41
ああああ、アホか俺は。
そんなのは処理系依存だよな。
スマソ。
178:デフォルトの名無しさん
08/02/04 22:14:06
%right '-' も変でないか
その構文では2項演算子じゃないよね
179:デフォルトの名無しさん
08/02/04 23:33:08
確かに
180:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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
08/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:デフォルトの名無しさん
08/02/05 23:14:41
うぜえ・・
それぐらい自分で判断しろ
半年ぐらい既成の文法眺めてろ
186:デフォルトの名無しさん
08/02/06 00:33:07
ヨミ肉w
187:183
08/02/06 08:45:44
>>185
既存の文法クレクレ
188:デフォルトの名無しさん
08/02/06 10:56:48
>>31
189:183
08/02/06 12:11:15
再帰下降のパーサを手書きしてるからパーサ【ジェネレータ】の話じゃない。
190:デフォルトの名無しさん
08/02/06 14:10:11
URLリンク(java.sun.com)
191:デフォルトの名無しさん
08/02/06 15:58:18
>>183
Javaは関数ポインタないから(hoge)() とか hoge()() はできないよ。
Javaの構文規則みても、あんまし参考にはならないと思う。
192:デフォルトの名無しさん
08/02/06 16:17:49
C言語の本に書いてあるよ
193:デフォルトの名無しさん
08/02/06 16:34:15
1.6で関数型ができるという話はどうなってるの? Java
194:デフォルトの名無しさん
08/02/06 17:24:46
そんな話ないよ
195:デフォルトの名無しさん
08/02/06 17:38:13
ごめん、7だった。
196:デフォルトの名無しさん
08/02/06 19:43:36
>>193
あれは func() じゃダメで func.invoke() とかやる事になってる。
名前空間汚れるから互換性捨てないと func() みたいな呼び出しは無理。
197:jonigata
08/02/07 03:08:09
あごめん
しばらく動きなかったからすっごい見てなかった
>>105
どんな解説でしょうか?
caperというよりもっと一般的な話であるなら、
すでにあるものよりうまく説明できる自身がまったくナイデス
256倍のraccのやつとか読むといいと思うけど
まだ売ってるのかな
>>106
用途とかバグとかウザいところとかあったら教えてください
.....
書き込みから20日もたってるのでいまさらだけどw
198:jonigata
08/02/07 03:16:47
つーか今になって見ると
俺が読んでもわからんですね
たとえばTutorial 1:
> 7行目のupcastは、各非終端記号の型から、Parserのインスタンス化のときに
> テンプレートパラメータとして与える「値集合すべてをあらわす型」への変換を提供する関数です。
> セマンティックアクション関数がひとつでもある場合、安全な型変換のために
> この関数が定義されていなければなりません。
ハア? わけわかんねーよバカじゃねーの
って感じw
とはいえこれはこれで「yacc使ったことある人」対象であれば
簡潔にまとまっているような気もしないでもない
気が向いたら読み直して書き直してみます
199:デフォルトの名無しさん
08/02/07 06:12:26
なんかワロタ
200:デフォルトの名無しさん
08/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
08/02/07 21:58:54
javascript普段使わない上
3時間くらいで書いたコードなのでまったく思い出せない……
が
そのようですね
現在のコードだと、
パーサは動くけど
セマンティックバリューにぜんぜん意味わかんないものが返ってくるってことかな?
>>200さんはそれでわかったのでしょうか?
202:デフォルトの名無しさん
08/02/07 23:36:20
え?どれを3時間だって?
203:jonigata
08/02/08 11:48:35
>>202
jsジェネレータ(caper_generate_js.cpp)です。
といっても、自分に興味がほとんどないので
上のようなバグ出しちゃうわけですが……
C#やDのジェネレータを書いてくださった方もいらっしゃるので、
他の人でもさほど難しくなさそうですよ。
PHPも需要がありそうなんで挑戦しようとしたんですが
PHPの仕様のアレさにやる気が失われました。
難しくはないと思うのですが。
週末久しぶりにバージョンアップしようかと思います。
上のバグ直してC#やDのジェネレータを取り込んだバージョン。
204:デフォルトの名無しさん
08/02/08 22:43:41
>>203
乙!
205:jonigata
08/02/10 13:44:07
む、C#のジェネリクスってduck typingできないのか
もらったコードバグっててちょっと使えないな……
C#はいったんなしにするか
206:jonigata
08/02/10 13:49:27
Dは普通に動いたっぽい
C#ジェネレータはundocumentedでだして
誰か得意な人に見てもらおう
207:デフォルトの名無しさん
08/02/10 17:31:53
スレチガイ
208:デフォルトの名無しさん
08/02/11 17:16:50
パーサジェネレータのスレってどこにあるん?
209:デフォルトの名無しさん
08/02/11 18:57:29
>>208
今のところここがもっとも近い、そういう意味じゃ>>207は微妙な指摘というか言葉たらず。
独白に近いのでそういう事はBlogでやれって意味じゃまさに207の指摘どおり。
210:デフォルトの名無しさん
08/02/12 11:44:05
趣味で(ほぼ無意味ですが)C++とほぼ同等のコンパイラを作っています。
当然テンプレートとかはないですが、文法がそっくりという意味です。
質問なのですがC++は何故、クラスの定義がファイルの行数的に先に行なわれていないとコンパイルエラーになるのでしょうか?
例えば
CHoge test;
class CHoge
{
};
こういう順番だと、CHogeって何?未定義なんだけど。ってエラーになりますよね。
ファイルの上から処理して言ってるのだから当たり前なのは分かってます。
ですが先に class などの定義系を先に処理してからにすれば回避できる問題かと思います。
「先に全ファイルをチェックして定義系を処理してから、再度全ファイルを処理する」
という2度処理が、C++が生まれたころのマシンスペックではもったいなかったのでしょうか?
211:デフォルトの名無しさん
08/02/12 11:53:55
過去の名残。
212:デフォルトの名無しさん
08/02/12 12:09:17
>>210
Cのstructの仕様をそのまま引き継いでるだけかと。
C++というよりは、Cが生まれたころのマシンスペックだろう。
213:デフォルトの名無しさん
08/02/12 13:02:39
>>211-212
なるほど、ありがとうございました。
無理にそこを真似する必要はなさそうですね
214:デフォルトの名無しさん
08/02/12 14:39:58
最初のC++コンパイラはCへのトランスレータだったような気がする。(SS1の頃でメモリも16M位が標準だった)
215:デフォルトの名無しさん
08/02/12 14:55:16
URLリンク(en.wikipedia.org)
216:デフォルトの名無しさん
08/02/12 16:35:10
質問
Javaっぽい言語でスクリプト作ってたんですが、数値型に何も考えずに
int, short, byte, long をつくったんですよ
でもおかげでかなりVMやコンパイラの仕組みが複雑になってしまってコマってます
正直、shortとかbyteってみなさん使ってます?
(メモリーをケチる目的以外で)
バイナリファイルを解析する時とかはさすがにbyte単位で扱えなければ話にならないと思いますけど
ByteArrayStreamみたいなものがあればそれでいいかなぁとか考えてるのですが…
217:デフォルトの名無しさん
08/02/12 16:42:31
Javaっぽいって…
218:デフォルトの名無しさん
08/02/12 16:47:14
>>217
すごい誤解招きそうな文章でしたね
Javaっぽい文法でスクリプトを作ってたんですが〜としてください
219:デフォルトの名無しさん
08/02/12 17:16:56
byteやshortも過去の遺産じゃね?
よっぽどメモリーがきつい環境で無い限り、演算もintのほうが速いわけでもあるしint使うわ
220:デフォルトの名無しさん
08/02/12 17:32:05
あるいは、メモリに常駐するデータ量が2Gか4Gかという差があるとかな
221:デフォルトの名無しさん
08/02/12 17:35:56
確かにそれくらいメモリーの差が出るなら考えるなw
まぁそれもByteArrayStream?があればそっちでいいわけで
Javaのものだと仮定すれば、あれランダムシークもできるし(Byte型の配列とほぼ同義として扱える)
222:デフォルトの名無しさん
08/02/12 17:56:28
>>216
JavaVMも配列とかフィールドにはbyteやshortがあるけど、スタック中ではint扱いっすよ
いちいち丸め処理が入るだけで
long, float, double や参照は別扱いだけど
223:デフォルトの名無しさん
08/02/12 20:25:44
C でも汎整数拡張とかあって、
式中では勝手に int に格上げされるな。
224:デフォルトの名無しさん
08/02/12 22:23:46
でも、エンジニアリングモデルでは普通に使ってるよ。
225:jonigata
08/02/16 12:32:02
先週末にバージョンアップするとかいっときながら遅れましたが
caperバージョンアップしました。
URLリンク(tinyurl.com)
例によってうまく動かなかったらごめんなさい。
C#ジェネレータとか一応組み込んだけど
普段使わない言語でぜんぜん要領を得ないので
詳しい人がいたらここかブログ( URLリンク(d.hatena.ne.jp) )に
なにかアドバイス等いただけるとうれしいです。
226:デフォルトの名無しさん
08/02/21 23:44:59
場違いかも知れませんが、宜しくお願いします。yacc/lexはc言語での
作りですが、perl言語で同様の処理をしたいのですが、処理系はあるの
でしょうか?
以前は、随分と前に見た事はあるのですが、最近は見かけなくなりまし
た。知っている方、どうかそのインストール方法...等アドバイス宜
しくお願いします。
227:デフォルトの名無しさん
08/02/21 23:56:50
Racc
228:デフォルトの名無しさん
08/02/22 09:04:34
kmyacc
229:デフォルトの名無しさん
08/03/04 08:45:05
構文解析のアルゴリズムが沢山載っている「Parsing Techniques - Second Edition」
URLリンク(www.cs.vu.nl)
230:デフォルトの名無しさん
08/03/07 09:20:44
>>27>>37
LLVMはMac OS XのOpenGLスタックで使われてるよ。
PyPyもターゲットの一つにしてる。
URLリンク(llvm.org)
231:デフォルトの名無しさん
08/03/09 01:53:45
gnu makeのBNFとかってありますかね?
232:デフォルトの名無しさん
08/03/15 14:32:59
やはり新しい言語の方が優れてるのですか?
233:デフォルトの名無しさん
08/03/15 14:42:55
兄より優秀な弟などいない
234:デフォルトの名無しさん
08/03/15 15:05:15
>>233
イギリス皇室の方ですか?
235:デフォルトの名無しさん
08/03/15 17:16:19
>>233
ラオウ乙
236:デフォルトの名無しさん
08/03/15 17:48:49
>>235
ジャギでは
237:デフォルトの名無しさん
08/03/15 18:32:44
>>231
GNU Make のソースツリーの中に無いの?
知らないけど。
238:デフォルトの名無しさん
08/03/15 22:05:11
Lisp 最高〜!
239:デフォルトの名無しさん
08/03/16 18:03:56
そういえば、昔どこかのサイト(海外)で、
プログラミング言語の上下関係を図式化したものがあった。
そこでは確かに Lisp が一番上位に来ていたような…
何がいいのかさっぱりわからんがw
240:デフォルトの名無しさん
08/03/17 08:26:38
>>239
原文を見てない範囲での推測だが、
S式という情報の取扱形式が
全ての上位に来ると言う意味なら判らなくもない。
ただそういう比較は扱う人の主観でしか有り得ない。
241:デフォルトの名無しさん
08/03/18 13:19:49
ここにそれっぽいのがあるね
URLリンク(www.geekpage.jp)
242:デフォルトの名無しさん
08/03/18 16:18:53
Adaのマルチタスクプログラミング舐めてるのか!
243:デフォルトの名無しさん
08/03/18 17:29:15
Lisp - C の連結はありえない
244:デフォルトの名無しさん
08/03/18 18:16:28
>>241
これは面白いな。
ところで、最近のマクロという名のプログラムはどこに?
245:デフォルトの名無しさん
08/03/18 18:23:52
面白くないぞw
246:デフォルトの名無しさん
08/03/19 06:10:35
>>241
部分部分を見るとアレだけど、大まかな流れは頷けなくもない。
LanguagesではなくProgrammersを扱った図だからね。言語の宗教論争とはちょっと事情が違う。
「上位」プログラマは、多くの場合「下位」プログラマ"でもある"(その言語を使える)か、
あるいは"すぐにそうなれる"(パラダイムを十分把握していて、表面の違いを学ぶだけでいい)状態にある。
きっちり成立しているとは言わないけど、少なくとも、同じ事を上下逆に考えるよりは成立している。
だから全体を、あくまで曖昧なレベルで、クラス図の比喩として見ることができるんじゃないかと。
別の言い方をするなら、この図は、
「あなたが言語Xと言語Yを使えて、どちらかの言語名+プログラマ、でしか自称してはいけないと言われたら、
どちらを口にすれば、自分のスキルや経験値をよりあますことなく示唆できるだろうか?」
っていう「ソート」の結果であり、実際、まんざらデタラメな結果ではないと思う。
LispとCが使える人だったら、この図の「Lispプログラマ」に自分を置くし、たぶんそれで正解だろう。
逆を自称するよりは、その人の経験してきたことの「より多く」を伝えられると思う。たぶん。
247:デフォルトの名無しさん
08/03/19 07:11:51
> クラス図の比喩として見ることができるんじゃないかと。
そんな必要はないだろ。
その見方から何が得られたかも書いてないし。
クラス図言いたいだけと違うんかと
248:デフォルトの名無しさん
08/03/19 07:30:39
>>247
よくわからん返しだな。
249:デフォルトの名無しさん
08/03/19 09:06:36
ジョークにマジレスしてる>>246もよくわからんのだが…
250:デフォルトの名無しさん
08/03/19 09:23:52
>>249
ジョークがまんざらでもないことを面白がってるんだよ。
251:デフォルトの名無しさん
08/03/19 13:37:47
「そうそうあるある」ってのが笑いどころのネタだしな
252:デフォルトの名無しさん
08/03/19 14:59:48
まんざらでもないからこそジョークとして成立してるところに
「いやこのジョークはまんざらでもないんだよ!」と解説しちゃうところが無粋すぎ。
ってかスレ違いすぎだな…
253:デフォルトの名無しさん
08/03/19 19:01:19
そうとも思わないが?スレチ
なかなかおもしろいと思う。
254:デフォルトの名無しさん
08/03/19 21:27:09
使用者のヒエラルキーなんてマ板の範疇だろ・・・
スレ違いどころか板違いだ
255:デフォルトの名無しさん
08/03/19 22:36:37
糞つまらなねえ >>241
256:デフォルトの名無しさん
08/03/20 05:34:52
まぁ、自分が悪く言われているジョークが面白くないのは自然だ。
257:デフォルトの名無しさん
08/03/20 13:23:29
>>241の元ねたの最下位カーストだけ妙に具体的なのは
おもしろかったw
258:デフォルトの名無しさん
08/03/22 00:33:28
お気に入り言語が下にあるからって、そんなにカリカリせんでもw
259:デフォルトの名無しさん
08/03/22 00:43:41
出来が悪いのはともかく、
言語の階層じゃなくて、
プログラマーの階層なんだぜ?
260:デフォルトの名無しさん
08/03/22 01:24:06
古臭いネタまだひっぱるのか?
261:デフォルトの名無しさん
08/03/22 09:59:11
約一名のこのネタの腐しかたが特徴的すぎるんだが、何がそんなに気に入らないんだろw
262:デフォルトの名無しさん
08/03/22 20:03:53
誰のこと?
263:デフォルトの名無しさん
08/03/22 20:59:41
野村君のことだよ
264:デフォルトの名無しさん
08/03/23 19:07:54
鈴木君は?
265:デフォルトの名無しさん
08/03/23 20:31:18
鈴木君は良い奴だよ。
先週、尻にタイ焼きを詰まらせて亡くなったけど。
266:デフォルトの名無しさん
08/03/25 19:26:54
田中くんは?
267:デフォルトの名無しさん
08/03/30 23:18:15
山田さんは?
268:デフォルトの名無しさん
08/04/02 14:48:16
おーい
269:デフォルトの名無しさん
08/04/02 21:19:35
中村くん
270:デフォルトの名無しさん
08/04/03 16:30:45
なんだい?
271:デフォルトの名無しさん
08/04/03 19:07:31
ちょいと待ちたまえ
272:デフォルトの名無しさん
08/04/03 19:41:25
>>270-271が>>268-269と世代が違う件について
273:デフォルトの名無しさん
08/04/07 12:00:22
>>272
オハヨー!!
∧∧ ∩
(`・ω・)/
⊂ ノ
(つノ
(ノ
___/(___
/ (___/
 ̄ ̄ ̄ ̄ ̄ ̄
274:デフォルトの名無しさん
08/04/09 10:09:21
スクリプトの概要 - Tactico
URLリンク(www.lagarto.co.jp)
定評ある投資ツールOmegaチャートの作者が開発している、次期投資ツール「Tactico」に搭載されているスクリプト言語の解説。
関数型言語のにおい
275:デフォルトの名無しさん
08/04/20 15:48:01
あげてもいいですか?
276:デフォルトの名無しさん
08/04/20 16:03:12
いいけど、またLISPネタになるだけだよ?
277:デフォルトの名無しさん
08/04/20 18:25:38
>>275
既にあげてんじゃねぇかYo!
278:デフォルトの名無しさん
08/04/23 22:42:00
本のサンプルで利用されているANTLRをお勉強中。
今までこういったものを触ったことが無いので枠枠してる。
279:デフォルトの名無しさん
08/04/24 18:47:58
SquirrelとXtalのソース見て勉強中
頭では分かっていても、実際にコードへ落とすときに悩んでしまう
280:デフォルトの名無しさん
08/04/27 19:30:01
プログラムの最適化方法、特にベクトルプロセッシングの最適化について知りたいのですが、
どこか参考になるサイトはありませんか?
よろしくお願いします。
281:デフォルトの名無しさん
08/04/27 19:34:58
つ『コンパイラの構成と最適化』
282:デフォルトの名無しさん
08/04/27 20:20:15
了解しました。ありがとうございます。
283:デフォルトの名無しさん
08/05/01 00:33:06
髭を伸ばそうかと思っているんだけど、おまえら髭どうしてる?
284:デフォルトの名無しさん
08/05/01 03:58:14
剃ってる
285:デフォルトの名無しさん
08/05/01 06:13:41
これか
スラッシュドット・ジャパン | 髭がある程プログラミング言語は繁栄する?
URLリンク(slashdot.jp)
286:デフォルトの名無しさん
08/05/01 07:43:06
髭はバリカンで刈ってる。
別に髭専用バリカンてわけでもない。
287:デフォルトの名無しさん
08/05/01 12:12:15
年単位で前に読んだ記憶があるネタだな
288:デフォルトの名無しさん
08/05/02 05:41:41
俺はひげ専用バリカン持ってるよ。
長さを自在に調整できるやつ。
ただ今使っているのは電池専用なので使いにくい
289:デフォルトの名無しさん
08/05/06 22:25:36
型名と変数名を名前システムの観点から考察した
議論ってなんかある?
290:デフォルトの名無しさん
08/05/07 21:01:37
いきなりどうした、頭大丈夫か?
291:デフォルトの名無しさん
08/05/07 21:13:52
静的型って、型名と変数名とスコープを結びつけるわけじゃん。
抽象データ型って、変数名とスコープを介して
型名とプロシージャ名を結びつけるわけじゃん。
こういうのを名前システムとして眺めたら、
なんか見えてこねえ?
292:デフォルトの名無しさん
08/05/07 22:02:18
なにが言いたいのかわからん
マヨイガでも見えてんのか
293:デフォルトの名無しさん
08/05/07 23:29:35
今 >>289 の脳内で画期的な理論が生まれようとしている!
のかもしれない…?
294:デフォルトの名無しさん
08/05/09 13:32:22
ただの型推論なんじゃない?
295:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/09 18:38:40
キログラムとセンチメートルといった単位の違うものを足したりできなくしようというわけか?
興味深いけど、なんか面倒臭そうな気がする
297:デフォルトの名無しさん
08/05/09 19:01:53
過度な形式化は無用な世話だ
298:デフォルトの名無しさん
08/05/09 19:07:28
>>295
間抜けでもいいなら、不正な操作を禁止することは既にできるわけだろ
冗長だから短く書きたいというなら型システムの問題ではない
Lispのマクロのようなものがあればいい
299:デフォルトの名無しさん
08/05/09 21:01:59
>>298
一概にそうは言い切れないだろ
略記法を展開する過程が型情報に依存するなら、単にマクロで構文を導入するのでは済まない
300:デフォルトの名無しさん
08/05/09 22:32:46
>>296
カロリー換算することで、燃費というプロキシは必要になるが計算は可能だな
ガチガチに縛るのもどうなのかなぁと思うのだが
俺の視点はずれてるのだろう
301:デフォルトの名無しさん
08/05/09 23:43:33
>>299
たとえばCのsizeofは型情報がないと計算できないが、
逆に言えばsizeofのような演算子を必要な分だけ追加すれば済むってことか?
302:デフォルトの名無しさん
08/05/10 00:28:51
新機能を追加しないと展開できない略記法?
ハードル上げ過ぎ
303:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/10 03:44:39
variable Integer : num; // もちろんただの整数型も宣言可能
こればっかり使って全て台無しって事にならんかなぁ?
unit : Ohm;
unit : Volt= Ampere * Ohm;
とかせんといかんの?
305:デフォルトの名無しさん
08/05/10 03:57:54
アプリケーションハンガリアンを思い出したぜ
URLリンク(local.joelonsoftware.com)
要は言語レベルでこれをやろうぜって話なんだろ?
306:デフォルトの名無しさん
08/05/10 05:00:56
>>295>>303
Boost C++ ライブラリに昔あったなあそれ。
今ではなくなっちゃってるっぽいけど。
変数に次元を割り当てて、異なる次元の変数同士の加算減算をしたり、
次元を無視した代入を行おうとすると、コンパイルエラーを吐いてくれるやつ。
307:デフォルトの名無しさん
08/05/10 05:59:41
情処のプログラム研究会あたりでネタにな・・・らなさそうだな
308:デフォルトの名無しさん
08/05/10 07:43:52
ならないな。こんなのとっくの昔からある話題だし。
言語レベルでやるようなもんじゃない。
309:デフォルトの名無しさん
08/05/10 11:40:27
ハンガリアンなんて便法じゃなくて、型で強制すべき、ということでしょ。
それを支援する言語というテーマは、まんま同じものが過去になければ、
研究会発表ぐらいならいけるんでない?
310:デフォルトの名無しさん
08/05/10 11:41:21
強い typedef でおkだろ。
311:デフォルトの名無しさん
08/05/10 12:39:04
>>303
よくわからんがこんな言語のこと?
URLリンク(futureboy.us)
312:デフォルトの名無しさん
08/05/10 14:27:11
LLバトロワスレにはっちゃったけど、いちおうここにも
JRuby開発者のOla Bini氏がJVM上で動作するプログラミング言語「ioke」を開発中
URLリンク(groups.google.com)
313:デフォルトの名無しさん
08/05/10 18:04:32
具体的な機能に飛びつく前に、こういう問題を概念レベルで
上から俯瞰できるような観点はないか、そこが知りたい。
数学基礎論だと、群だの体だの圏だので俯瞰するわけだ。
そういう観点があって初めて、5次以上の解の方程式が
存在しないことがわかる。
なにをどう構成して名づけるか? 変数名・型名・スコープは
構成の仕方の一例にすぎないわけよ。
演算子と構文にいろんなやりかたがあるように、名前システムにも
いろんなやりかたがあるはず。多分。
そのいろんなやりかたってのを、「あれを思いついた」
「これを思いついた」ではアドホックだから、名前システム
という観点が欲しい。
314:デフォルトの名無しさん
08/05/11 00:19:43
>>283
レーザー脱毛した。
もともとそんなに濃くなかったけど朝がなんとなく楽になった。
他の脱毛よりましらしいがレーザーもすんげー痛い。
315:デフォルトの名無しさん
08/05/11 01:06:02
>>314
痛いのか、知って良かった。
朝剃っても夕方泥棒みたいになるんだ。
316:デフォルトの名無しさん
08/05/14 15:51:01
質問。
εって一つ先読みして即還元すればいい?
317:デフォルトの名無しさん
08/05/16 07:20:07
「はじめてのコンパイラ - 原理と実践」って書かれてることに間違いないですよね?
正順LRって単語でググってもあまりヒットしないので不安なんだけど。
318:デフォルトの名無しさん
08/05/16 07:44:02
普通 正準LRっていわんか? canonicalの訳だろ?
319:デフォルトの名無しさん
08/05/16 07:50:18
>>318
ってことは、正順と書いてあるこの本は駄目本ってことですか?
ドラゴンブックは暗号が多すぎて解読が難しかったので、この本を
無条件に信頼できると良いのですが。
320:デフォルトの名無しさん
08/05/16 08:11:15
無条件に信頼って物を学ぶ態度じゃないだろw
とりあえず仮に教科書を信頼して勉強をすすめる
知識が付いてきたら別の情報源との突き合わせも難なくできるようになるだろうから、
間違ったことを覚えていたらそのときに訂正すればいい
もちろん間違いの多い教科書を避けられるならそれが良いけどな
321:デフォルトの名無しさん
08/05/16 08:24:02
>>320
この本を読んだことあるのですか?
322:デフォルトの名無しさん
08/05/16 08:38:39
ないよ
323:デフォルトの名無しさん
08/05/16 08:45:33
>>322
やさしいJavaは?
324:デフォルトの名無しさん
08/05/16 08:49:29
>>317
スタータキットとして割りきって使えよ。
「原理と実践」でそんな薄い本。
甘えすぎ。
325:デフォルトの名無しさん
08/05/16 08:56:58
>>324
平易な言葉で書かれた素晴らしい本だと思うんですがね。
内容が正しければ良書なのですが。
ドラゴンブックマンセーしてるやつは3の倍数。
326:デフォルトの名無しさん
08/05/16 09:17:49
順は"順当"の順だから間違いってほどではないだろ。
いずれにせよ、どうでもいいことだろ。
そんな短い本で終わることはあり得ないんだから。
327:デフォルトの名無しさん
08/05/16 09:25:01
>>326
この本に含まれていなくて且一般に重要なトピックは何ですか?
こんな短い本・・・とおっしゃるくらいだからいくらでも挙げることが
できるんですよね?
それともあなた何も理解せずに適当な単語を並べてるただの3の倍数ですか?
328:デフォルトの名無しさん
08/05/16 09:31:11
そのくらい自分で調べろよ。
本じゃなくて、お前の勉学の態度が悪いんだよ。
329:デフォルトの名無しさん
08/05/16 09:32:53
>>328
結局のところ全く理解していないので一つも挙げることが出来ないのでは?
330:デフォルトの名無しさん
08/05/16 09:33:23
情報が足りるか足りないかなんか
実装してみたらわかると思うけど
それ以前に実装しようと思うだけでわかるかもね
331:デフォルトの名無しさん
08/05/16 09:33:59
情報引き出すための煽りか
332:デフォルトの名無しさん
08/05/16 09:35:12
>>330
それだと実装手法は一つしか学ばないでいいって態度だね。
333:デフォルトの名無しさん
08/05/16 09:38:42
>>331
引き出す情報を持っているかどうかが問題。
たぶん持ってないな。
334:デフォルトの名無しさん
08/05/16 09:47:43
仮にそうだとして
それを指摘して
誰になんの得があるというのか
勝利宣言するならその本読んで
実装する必要があるし
自分の立場がわかってなさそうだな
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5327日前に更新/92 KB
担当:undef