[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 22:36 / Filesize : 235 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

「コンパイラ・スクリプトエンジン」相談室9



1 名前:デフォルトの名無しさん [2005/12/20(火) 21:43:02 ]
プログラミング言語処理系の開発に興味のある人達のスレッドです。

字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン,
SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化,
JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。
意味論に関する話題も歓迎です。

過去スレ
1 pc.2ch.net/tech/kako/981/981672957.html
2 pc2.2ch.net/test/read.cgi/tech/1021136715/
3 pc5.2ch.net/test/read.cgi/tech/1070089173/
4 pc5.2ch.net/test/read.cgi/tech/1100097050/
5 pc8.2ch.net/test/read.cgi/tech/1106129164/
6 pc8.2ch.net/test/read.cgi/tech/1115335709/
7 pc8.2ch.net/test/read.cgi/tech/1129287390/
8 pc8.2ch.net/test/read.cgi/tech/1131273918/
関連リンクは多分 >>2-10 あたり

237 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 18:14:22 ]
>>235
あ、それ初めて知った

238 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 18:25:13 ]
逆にボトムアップで考えるときは・・・、とか書いてんじゃんw

let云々はCで言えば
a_result = a(...);
b_result = b(a_result);
c_result = c(b_result);
d(c_result);
といったやり方だし
これを、S式で書くとグダグダになるが

239 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:04:44 ]
だからツリーをいじってるって言ってるだろ。
(let ((ra (a x)))
(let ((rb (b ra)))
(let ((rc (c rb)))
(d rc))))
でカーソルが一番最初にある時に、rcを束縛する
let式に行くのは C-M-d C-M-f C-M-f C-M-d C-M-f C-M-f
そのlet式全体をリファクタリングするために外に出したければ
C-M-Space C-M-w でカット。
(a x), (b ra), (c rb) の部分がどんなに複雑になっても
この操作は変わらない。木構造が変わらないからね。

a_result = a(...);
b_result = b(a_result);
c_result = c(b_result);
d(c_result);

でa(), b(), c() の部分が何行にもわたる式になった時に
同じことができるのかい。


240 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:08:17 ]
スレ違い乙

241 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:12:42 ]
emacs講座ですか

242 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:16:25 ]
>>238
let*ってそのためにあると思ってたんだけど…。
(let* ((a-result (a ...))
     (b-result (b a-result))
     (c-result (c b-result)))
     (d c-result))
使った事ないけどさ。


243 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:26:42 ]
どっちにしても、ぐだぐだやん。

244 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 20:06:48 ]
何がぐだぐだなのかわからん。

245 名前:デフォルトの名無しさん [2006/01/05(木) 21:30:18 ]
Lisp脳と聞いて、Ruby脳が飛んで着ました。



246 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 21:42:14 ]
Flexのライセンスについて質問なのですが、いまいち不明なところがあります。
Flexをつかって生成されたものに関してなのですが、

Note that the "flex.skl" scanner skeleton carries no copyright notice.
You are free to do whatever you please with scanners generated using flex;
for them, you are not even bound by the above copyright.

とあるので、生成されたものに関しては著作権表示すらなしに組み込むことが可能であってますでしょうか?

それとも、
This product includes software developed by the University of California, Berkeley and its contributors

この一文はやはりいれておかなければならないのでしょうか?

識者の方々よろしければご教授いただけたらとおもいます。

247 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 23:24:12 ]
普通に読めば著作権表示入れる必要はないと思うけど…。

248 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 23:42:56 ]
ここは Copyright and/or Copyleft については素人集団だからな。
一応、著作権スレにでもあたってみたら?

249 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 23:49:49 ]
そういうツールで生成したやつは、たいてい著作権的には
ツールの方の著作権は関係ないって感じになる。

ライブラリリンクとかで、生成した成果物が、他人の著作物を含むと
ややこしくなるがこの場合そうじゃないしな。

250 名前:デフォルトの名無しさん [2006/01/06(金) 00:14:17 ]
>>249
その程度なら誰でも想像できるんだけどな
中途半端なカキコ見は混乱のもと


251 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 00:29:25 ]
ていうか、246はどう見ても著作権表示入れる必要はないと
はっきり書いてあるようにしか見えんが。

252 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 00:56:01 ]
>>251
俺にもそう読める。246よ著作権表示は一切不要と心得よ

253 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 01:23:45 ]
246です。

みなさま質問に対してのご返答ありがとうございました。

ライセンスは色々とありまして、その中でも、特にツールで生成されたものに対しては扱いが分かりづらいものが
ありまして質問させて頂くに至りました。
コンパイラ・スクリプトエンジンに関連あるFlexについての質問でしたが、微妙にスレ違いだったかもしれません。
そのために気を害してしまった方がおられましたら、お詫び致します。


254 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 01:25:31 ]
もともとスレ違いの連続みたいなスレだから

255 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 03:20:02 ]
俺言語を作ってる人達の雑談スレッドだろ



256 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 05:58:15 ]
>>255
俺言語は非難しないが、俺様言語な香具師が来ると痛すぎ

257 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 08:06:18 ]
俺言語と俺様言語の違いとは?

258 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 23:18:40 ]
Lisp と Ruby の違いと解く。
さて、その心は?

259 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 23:55:00 ]
>>257
俺言語は局所的用途の為に作られたもの
俺様言語は自己満足のたまもの。



260 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 23:58:22 ]
WinAPIの質問ですいませんけど、
WindowsでJIT作ろうとしたら

void *mem = VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE)
memの先にコード書き込む
VirtualProtect(mem, size, PAGE_EXECUTE, &old)
ジャンプする

で良いんでしょうか?


261 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 00:46:43 ]
WRITEをはずしておくと意図しないアレをアレできるからアレかも

262 名前:デフォルトの名無しさん [2006/01/07(土) 19:10:16 ]
>>259
うまい!
あんた、扇子あるよ。


263 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 20:11:22 ]
ま、何を作ろうともLispに還元されるわけだけどね。

264 名前:デフォルトの名無しさん mailto:sage [2006/01/07(土) 21:27:15 ]
>>261
PAGE_EXECUTE

コミット済みページ領域に対する実行アクセス権を有効にします。
このコミット済み領域の読み取りまたは書き込みを行おうとすると、
アクセス違反が発生します。

265 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 05:32:27 ]
>>264
そうだったんか・・・
PAGE_EXECUTE_READ とは別か・・・



266 名前:デフォルトの名無しさん [2006/01/08(日) 23:06:40 ]
りんご

267 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 23:30:44 ]

===== FORTRAN 77 =====


268 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 01:38:26 ]
DEFINT A-Z

269 名前:デフォルトの名無しさん [2006/01/10(火) 23:40:58 ]
なんで、最適化用語って変なのばかりなんだろう?
もうちょっと、かっこいい名前つけられんのかねぇ?

270 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 23:51:15 ]
コンパイラの用語って変なのばっかり。
還元(reduce)って言葉見つけたとき、酸化還元の還元かとおもったよ。

271 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 23:56:40 ]
合ってるよ。reduce には酸化還元の還元という意味もある。

272 名前:デフォルトの名無しさん [2006/01/11(水) 00:05:43 ]
コンパイラ用語に使うときは意訳でよいから別の言葉を使って欲しかった。

273 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 00:42:29 ]
もとに戻すんだから意味的にも還元で問題なかろう。
日本語力の乏しさを棚に上げて何言ってんだ。

274 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 01:05:57 ]
>>269
例えば?

>>272
じゃ、「リデュース」で。

275 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 01:22:05 ]
上方遷移…余計わからんな



276 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 03:36:45 ]
>>270
コンピュータ用語自体変なの多いから気にスンナ


277 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 05:21:22 ]
自己満足のために、lispのdefmacroのc言語風なものを実装してます。
for(i=0,i<10,i++,printf("%d\n",i));
といったかんじのことは出来るようになったのですが、
for(i=0;i<10;i++){printf("%d\n",i);}と言った外側にブロックを
持ったマクロは、どうやって実現したらいいか悩んでます。
何かいい参考資料ないでしょうか???

278 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 06:05:07 ]
>>277
ttp://mike-austin.com/blog/2005/10/dylan-macro-system-is-badass.html

279 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 08:25:43 ]
>>278
ありがとうございます。
Dylanですか。初めて聞きました。
結構古い言語なんですね。仕様読んでみます。
使ってみたい気がするのですが、windowsバイナリとか落ちてないのかなぁ。

280 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 08:36:56 ]
>>279
商用の Dylan 処理系がオープンソースになったものがあるよ。
www.gwydiondylan.org/downloads/opendylan/

281 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 12:53:41 ]
>>280
ほんとだ。ちょっと探せば見つかるじゃん。orz
ありがとうござます。

Hygieneって書いてあるので、基本的に名前の衝突が回避されていて、
BNFを書くような感じでパターン照合を行うものがDylanのマクロと考えてよいのでしょうか?
パターン照合はやったことがないのですが、
構文解析器の自動生成ができる技術力ないと作れないような気がするのですが。。。


282 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 13:27:11 ]
>>281
Schemeのsyntax-rulesの美しさに萌えろ。S式最強。

283 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 14:11:20 ]
>>282
Schemeのsyntax-rulesが作れれば、そりゃ、もー、うれしいんですけど。
S式だとS式でない場合に比べて、実装が簡単になるのでしょうか?
それだと、うれしいんだけどなぁ。


284 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 15:55:15 ]
>>283
どんな文法を使おうと、結局はツリーにしてマッチや変換をかけるでしょ。
S式の場合は最初からツリーになってるから前半の(どっちかっつうとtrivialな)
ステージが省ける、ってだけじゃないかと。
言語デザイナの立場だと文法も重要なんだろうけど。


285 名前:269 mailto:sage [2006/01/11(水) 20:30:31 ]
>>274
例えば、皮剥き



286 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 20:53:09 ]
パターンマッチマクロってどんな syntax の言語でも実装可能なの?

287 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 00:51:45 ]
自分の欲しいsyntaxのマクロを人に書かせたいと見たw


288 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 06:39:51 ]
>>286
可能か不可能かなら可能でしょう。
使いやすいとかわかりやすいものになるかどうかは別。

289 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 08:35:55 ]
>>288
どうもありがとう。

>>287
Ruby や ECMAScript, Python は acceptable lisp と言われているけど、
マクロを追加すればもっと Lisp の強力さに近付くかなと。

290 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 11:28:30 ]
>>287

自分は、schemeのsyntax-rulesを実装したいのだけど、
わからないので、簡単なソース付きで解説してほしいです。

自分のほしい言語をすべて書いてもらえたら幸せです。
schemeのスレとかで聞いたほうがいいのかなぁ?

>>287>>288>>289
PythonはDylanに似たマクロが入るとかいう噂がある(あった?)ようです。
どんな言語でも適用できそうなので、(よくわかってないのですが)
Dylanのマクロのアイディアはとにかく凄いような気がします。
C用のDylan風マクロとか、Java用のDylan風マクロとかあったら
そりゃもう、うれしいんじゃないかなぁと思います。


291 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 11:40:09 ]
schemeのスレで質問してみました。

292 名前:トラックバック ★ mailto:sage [2006/01/12(木) 21:15:09 ]
【トラックバック来たよ】 (ver. 0.11)
[タイトル] 萌え言語を作ろう!
[発ブログ] プログラム技術@2ch掲示板
pc8.2ch.net/test/read.cgi/tech/1131442510/l50
[=要約=]
日本語で書ける言語では「ひまわり」なんてのがありますが
いまいち使いづらいというか、萌えないw

ということで、萌え萌えな言語を作ってみようと言う企画です。





293 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 22:06:16 ]
萌言語案

ハァハァ{



の機能

while(1){
...
}

294 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 23:04:56 ]
萌えとハァハァは別だよ派
萌えもハァハァも一緒だよ派


295 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 00:30:47 ]
#define _ 1

とかやると、

for (;_;) 仕事;

となるわなw

萌えないが、実感はむしろこっちのほうが(泣)




296 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 00:42:10 ]
#define T_T 1

while (T_T) 仕事;

297 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 18:49:31 ]
#define ハァハァ 999

while(ハァハァ) 言語スレ

298 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 23:33:15 ]
変な用語の例(その2)

・せわしない。。。
・なまけた。。。

299 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 00:03:57 ]
bool A = ture;
bool T_T = true;

for(;A;) wile(T_T) int y=-(T_T);

300 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 10:39:00 ]
assert マクロって must って名前にしたほうがよくない?

assert ( a == b ) → must( a == b )


301 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 11:31:50 ]
assert that a equals b (thatは略可)
はそのまま読めるけど、mustはどう読んだらいいんだ?

302 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 13:16:28 ]
a == b で「なければならない」
should ( a == b ) とか must( a == b )


303 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:18:27 ]
must(a == b) を a == b でなければならないと読むのは
英語的におかしくないか。
! 演算子みたいに must が演算子だとして a must== b ならわかるが。

304 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:25:59 ]
must be (a is equal to b)
なんじゃないの。

305 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:42:50 ]
だから、それが英語的におかしいといっている。



306 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 15:50:52 ]
じゃ、 must be a condition of (a == b) は?

307 名前:300 mailto:sage [2006/01/14(土) 16:14:15 ]
いや、まあそんなに深い意味で発言したわけじゃないけど
英語的にどうこうというか、
自分的にはこっちのほうが直感的かなと思っただけ
初心者に assert を教えたらピンとこなさそうな顔してたもんだから

308 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 16:24:42 ]
個人的には ensure が良いと思う。ちょっと意味合いが変わって来ちゃうけど。

309 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 18:15:19 ]
>>307
assertって単語になじみが無いだけだ、辞書引かせてからassertを使った例文を毎日一個5営業日続ければ覚える。


310 名前:デフォルトの名無しさん [2006/01/14(土) 18:37:19 ]
俺なら、

must.be.A.eq.B

が一番すんなりと入るかな?


311 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 19:04:13 ]
俺なら、

zettai(a == b)

が一番すんなりと入るわ。

312 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 19:05:53 ]
(a == b)じゃなきゃいやん

313 名前:300 mailto:sage [2006/01/14(土) 19:41:09 ]
assert だけだと、どっちの場合に警告するのかよくわかんなくない?
a == b 「だったら」警告するのか
a == b 「でなければ」警告するのか。
must とか(あるいは311,312 でもいいけど)だと、
明らかに後者が連想されるんじゃないかなと思った

314 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 19:57:21 ]
「ここでは(a == b)になると断言する」と日本語で言っても?

315 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:01:06 ]
assert に 『警告する』 って意味は無いんだよなぁ……。



316 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:01:45 ]
assert false の場合はどーやって解釈すりゃいい?

317 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:03:01 ]
『常に偽であると表明する』

prolog の fail みたいな。

318 名前:300 mailto:sage [2006/01/14(土) 20:37:49 ]
>>315
あ、ホントだ、やべえ!長いこと勘違いしとった!!
「断言する」で問題ないじゃん!
てことは、assert でも問題ナスorz

319 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:43:02 ]
ドンマイ

320 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:43:14 ]
>>316
正確には「もしここに来たら(a == b)がtrueであると断言する」と思えばいい。
assert falseは「もしここに来たらfalseがtrueであると断言する」、
つまり「ここには来ることはありえないと断言する」。

321 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 20:59:13 ]
#define assert 断言する

断言する(a == b)

322 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 21:02:32 ]
スキャナとパーザって、マルチバイト文字を通せるのですか?

323 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 21:12:13 ]
通すように作れば通る。

324 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 21:56:47 ]
シングルバイト文字の8バイトの連続だよ?
たまたま 0x80 より大きいだけ

325 名前:デフォルトの名無しさん mailto:sage [2006/01/14(土) 22:15:08 ]
>>324
アフォ来た〜〜〜!!



326 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 01:00:21 ]
>>324
8バイトって何だ8バイトって。

実際には322の言うように、通るように作れば通るし、今時flexもbisonも
8bitは通す。マルチバイト文字というと、SJISだと0x5c問題が出てくる
可能性は歩けど、それはlexerのつくりの問題だよな。


327 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 23:35:26 ]
変な用語その3

マトン

328 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 23:41:00 ]
羊肉?

329 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 23:41:51 ]
自動羊肉

330 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 23:57:17 ]
オートマタ。

331 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 00:59:16 ]
オート マトン
というよりは
オー トマトン
何だが。

332 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 04:17:47 ]
Oh! Tomato! n?

333 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 05:17:47 ]
コンピュータ関係の変な用語ってのはKILLとかZOMBIEとかENTITYとかじゃねぇのか?


334 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 07:13:02 ]
デムパな単語が、そんなに嫌か?

335 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 22:02:30 ]
>>327
automate(自動)+ton(〜風)、「自動っぽいもの」くらいの意味。



336 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 23:15:29 ]
>>335
こらこら。だますんじゃない。

337 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 23:29:55 ]
自動人形






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<235KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef