トップページ⇒tech
1001コメント305KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
言語仕様や処理系の話題に関するスレッドです。

字句解析・構文解析から,データフロー解析,ループ並列化,タスク並列化,SSA変換,CPS変換,
レジスタ割付,命令スケジューリング,ソフトウェアパイプライン等各種最適化,それに
VM,GC,JIT,リンク時最適化,動的バイナリ変換などなど。

前スレ
1 http://pc.2ch.net/tech/kako/981/981672957.html
2 http://pc2.2ch.net/test/read.cgi/tech/1021136715/ (dat落ち)
3 http://pc5.2ch.net/test/read.cgi/tech/1070089173/ (前スレ)

関連リンクは多分 >>2-10 あたり
0153デフォルトの名無しさんNGNG
ありがとう。読んでみる。
0154デフォルトの名無しさんNGNG
まぁ、口ばかり達者な奴がいるみたいだが(例 >>138 >>145)
それほどの実力の持ち主なら、
そちら様の完成コードでも拝見さしてもらいましょうかな?
0155デフォルトの名無しさんNGNG
>そちら様の完成コードでも拝見さしてもらいましょうかな?
>そちら様の完成コードでも拝見さしてもらいましょうかな?
>そちら様の完成コードでも拝見さしてもらいましょうかな?
0156デフォルトの名無しさんNGNG
>>154
pやらGやらVやら何って感じだが、
それよりなにより是非って( ゚д゚)ポカーン
基本的な日本語が使えてない。
コード以前に中学の国語あたりをやり直せ。
0157デフォルトの名無しさんNGNG
>>152
LL(k)構文解析で解析できる文法をLL(k)文法っていうんじゃないの?
0158デフォルトの名無しさんNGNG
>http://www.cbook24.com/bm_detail.asp?sku=4774121770
監:中田育男

法政の学生?
本人が見ることもあるかもしれないから書くけど、
体を表す名前を付けることを身につけてほしい。

CellG=lexer
CellK=parser
CellV=仮想マシン
らしいけど、もしそうなら、
Lexer, Parser, VirtualMachine といった名前を付けるべき。
記号表のエントリにはTableEntryといった名前をつけるべきで、
Tableという名前を付けてはいけない。

読んで分かりやすいプログラムを書くのは
ある程度プログラムを読んだり書いたりの
経験がないと難しいだろうけど、ガンガレ。
あと、配列じゃなくてListを使うとか、
文字リテラルはinternしなくていいとか
もうちょっとJavaを勉強しよう。
0159デフォルトの名無しさんNGNG
http://www.amazon.co.jp/exec/obidos/ASIN/4254121393/249-6122590-2043526
中田育男はこれ書いた日本のコンパイラ最適化の第一人者ですな
0160158NGNG
著者が中田先生の下の学生かと思ったです。
0161デフォルトの名無しさんNGNG
G…Gikukaiseki
K…Koubunkaiseki
V…VM
これくらい想像できないようでは現場のコードは読めないぞ
0162デフォルトの名無しさんNGNG
”コンパイラの最適化”と”アーキテクチャごとのコードの最適化”は、
考え方のレイヤが違いますよね?
やはりコンパイラを作成する場合、ターゲットとなるアーキテクチャに対しても
詳しくないと本当の意味での最適化コードは作成できない??
0163デフォルトの名無しさんNGNG
>>161
マジですか?!
0164デフォルトの名無しさんNGNG
>>162
だいたい同じPentiumでも種類ごとに適した最適化手法が違うし
0165デフォルトの名無しさんNGNG
定数値の最適化やら誘導変数の最適化やらはCPUが何だろうができると思うが。
0166デフォルトの名無しさんNGNG
>>165
???
0167デフォルトの名無しさんNGNG
>>165
君は>>162を100回読み直したまえ。
0168デフォルトの名無しさんNGNG
>>158
そういう小姑みたいな性格は何処に行っても嫌われますよ〜
0169デフォルトの名無しさんNGNG
Gokiburi
Kokkurochi
Varusan
0170デフォルトの名無しさんNGNG
>>168
嫌ってくれて構わんよ
0171折れ目もNGNG
なぜ Threading Code なのか?
http://www.kt.rim.or.jp/~tyamamot/forthj/threaded-codej.html

マイクロベンチ.興味深い.
http://www.complang.tuwien.ac.at/forth/threading/
Pentiumならsubroutineが速い
0172デフォルトの名無しさんNGNG
>Pentiumならsubroutineが速い
そりゃそうだろ(w

0173デフォルトの名無しさんNGNG
著作権は大丈夫なのでしょうか, 2004/11/02
レビュアー: カスタマー   帯広市 Japan

JavaのVM向けのコードを生成する簡単なコンパイラが乗っているというので買いました。
非常に参考になると思います。
ただ、よけいなことかも知れませんが、この本の構文解析の部分は、中田育男著の「コンパイラ」の本と、
例題や説明までほとんど同じなので驚きました。
著作権の方は大丈夫なのでしょうか。
0174デフォルトの名無しさんNGNG
ガクガクブルブル
0175デフォルトの名無しさんNGNG
中田先生監修だからなあ。
0176デフォルトの名無しさんNGNG
>>175
それどころか前書き見たいのも中田先生が書いてた
0177デフォルトの名無しさんNGNG
弟子が中田先生の本の改訂を引き受けた、ってことでFA?  印税山分けだったりして
0178デフォルトの名無しさんNGNG
石田綾なんて人間ははじめから居なかったっつうことだろ
0179デフォルトの名無しさんNGNG
>>178
するどいな
0180デフォルトの名無しさんNGNG
始めて読むコンパイラ本としてはいかがですか?
0181デフォルトの名無しさんNGNG
ところで、最適化の話なんだけど、
ドラゴンブックにある「基本ブロック」
っていう考え方って、何かセンス悪い気がしない?

基本ブロックだろうが、大域的構造だろうが
同じ「グラフ」なんだから、それらを区別せず
統一的に扱って最適化を施すのが、
筋の通った考え方だと思うんだけど。

ま、確かに「基本ブロック」内だけで考えれば
殆どの問題は簡単になるのは分かるけどさ。

現実のコンパイラでも「基本ブロック」って
いう戦略は、よく使われているんだろうか?
0182デフォルトの名無しさんNGNG
買っちゃいましたorz
0183デフォルトの名無しさんNGNG
本屋で見かけたので買ってきた。中田育男監修の文字を見たからw



0184デフォルトの名無しさんNGNG
本屋に行ったけど見当たらなかった
0185 NGNG
http://www.cbook24.com/bm_detail.asp?sku=4774121770
あっという間に品切れになってる。
0186デフォルトの名無しさんNGNG
>>181
基本ブロックが何かわかってないだろ。
基本ブロック自体はグラフそのものじゃなくて、
グラフの節点だぞ。
0187デフォルトの名無しさんNGNG
>>181
コンパイラ書いてみろ。どんなに頑張っても、基本ブロックの概念を使わないコンパイラは、
仮に>>181が天才で、同じ質のコード生成を達成したとしてもコンパイル速度は100倍
遅くなる。更に言えば、基本ブロックの性質を完全に無視するとするなら、同じ質の
コードは生成できない。

最適化ってのはいわゆる難しい問題なので、現在の計算機では残念ながら純粋な
数学のようには取り扱えない。

ついでに言うと、一般のプログラムってのは再帰的な構造を持っていることを考えると、
基本ブロックという概念はむしろセンスが良い。
0188デフォルトの名無しさんNGNG
>>186
基本ブロックの中の人とはリストであり、
すなわち縮退したグラフだと思うけど?

>>187
>同じ質のコード生成を達成したとしてもコンパイル速度は100倍遅くなる。
多分そうだろうと思う。
でも、その手法の「泥臭さ」自体は認るでしょ?

後はそれを「よいセンス」と捕らえるかどうかの差だね。
0189デフォルトの名無しさんNGNG
認るでしょ
認るでしょ
認るでしょ
0190デフォルトの名無しさんNGNG
>>188
> 基本ブロックの中の人とはリストであり、 
> すなわち縮退したグラフだと思うけど? 
細かく分けすぎ。そこまで分けて最適化に役に立つのか?
何のためのグラフか考えてみろって。
語義的には確かに正しいんだが、その反論はちょっと苦しいと思うぞ。

自分も基本ブロックはセンスが良いと思うほうに一票。
0191デフォルトの名無しさんNGNG
相談なのですが、flex,bison とC#を連携させて
言語処理系を開発するとしたら、みなさんなら
どういう実装戦略をとりますか?
0192デフォルトの名無しさんNGNG
Ruby!>>>>>>>>>>>>>>>>>>>>>>>>>>C#
0193デフォルトの名無しさんNGNG
>>191がどんな言語処理系を求めて
開発を始めようとしているのか、まずそれから語るんだ。
0194デフォルトの名無しさんNGNG
>>191
リフレクションで丸ごと生成できないかなと・・・
思っただけ(汗
問題はBNFを何処に書く、というところ?
boostみたいに言語中言語にできれば、シームレスで最高なんですが、
C#のジェネリッククスは果たしてどこまでできるのか?
てところ。
VisualStudio.NET2005でたら、ちょっとアタックしてみよかと思ってます。
0195デフォルトの名無しさんNGNG
えっ?
0196デフォルトの名無しさんNGNG
>>194に手段が目的になってしまっている人をboost病患者と呼びます
0197デフォルトの名無しさんNGNG
>>196
「手段」を作る方法を語るのが目的のスレで何を言う
0198デフォルトの名無しさんNGNG
古くは m4 病患者とも呼んだな。。。
0199デフォルトの名無しさんNGNG
-- かなづちを持つ者には、すべてが釘に見える
0200デフォルトの名無しさんNGNG
                         -- Minamo Narukaze
0201デフォルトの名無しさんNGNG
flex,bison,リフレクション,BNFの記述,boost,…、どれ一つとて実際に
使いこなしてないのまる分かりだぁ。。 (o´C_,`o) ハズカスィ〜

それっぽい用語並べていけば、自発的に連結して
素敵な何かが自然発生する・・・とか、連結方法が思いつかないから
みなさんに『実装戦略』の糸口を聞きにきた、とかか…。 ハ・ス・゙カ・スィ〜
0202デフォルトの名無しさんNGNG
スルーしろよ
0203デフォルトの名無しさんNGNG
0204デフォルトの名無しさんNGNG
>>201
作りたいからやってんだろいいじゃネェか
使いこなしているかどうかは関係ないってしてほしいね
0205デフォルトの名無しさんNGNG
「何」を作りたいのか? (回答例) >>194

頭に浮かんだ抽象像を前に悩む前衛彫刻家みたい
0206デフォルトの名無しさんNGNG
ツチやノミを前にしただけでイッパイ・イッパイなのが見て取れるから
>>196みたいなこと言われるっち。 
0207デフォルトの名無しさんNGNG
>>205
意味不明の煽りヤメレ、フレーム引き起こしたいなら適当な死滅スレにでも逝け
0208デフォルトの名無しさんNGNG
>イッパイ・イッパイなのが見て取れるから
余計な一言
0209デフォルトの名無しさんNGNG
                l   
        /\___/ヽ
        /       :::::::\
       |  ''''''   ''''''   .:::|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
      |(●),   、(●)、.::::| < 糞スレで余計なこと
       |  ,,ノ(、_, )ヽ、,, .:::::::|   | 二度と聞かねぇょ・・・
       \ `-=ニ=- ' .:::::/   \_______
           `ー`ニニ´-一´ヽ、
          /    _    l
         /  ̄`Y´   ヾ;/  |
______,|    |    |´  ハ
           |    |    |-‐'i′l
            |__ |   _|   7'′
         (   (  ̄ノ `ー-'′\
           ̄   ̄          \


0210デフォルトの名無しさんNGNG
何もできない奴があせる必要もないのに、勝手にあせって人の邪魔をしようと必死なだけ、気にスンナ。
0211デフォルトの名無しさんNGNG
                l   
        /\___/ヽ
        /       :::::::\
       |  ''''''   ''''''   .:::|  
      |(●),   、(●)、.::::| .。oO( プッ
       |  ,,ノ(、_, )ヽ、,, .:::::::|  
       \ `-=ニ=- ' .:::::/  
           `ー`ニニ´-一´ヽ、
          /    _    l
         /  ̄`Y´   ヾ;/  |
______,|    |    |´  ハ
           |    |    |-‐'i′l
            |__ |   _|   7'′
         (   (  ̄ノ `ー-'′\
           ̄   ̄          \
0212デフォルトの名無しさんNGNG
boostってさ、C++の機能だけでなんとかしようとしてるけど
あそこまですんならperlとか駆使すればいいじゃんねえ
0213デフォルトの名無しさんNGNG
>>212
一度使ってみたら?
別ファイルとして扱っていた文法定義ファイルが、
ライブラリーになるという意味がどれだけ重要かわかるよ。
0214デフォルトの名無しさんNGNG
C++でPerlの処理系を書いて丸ごと埋め込むよりは
C++の機能だけで実装した方がネイティブな感じがして(・∀・)イイ!!
0215デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C++=糞言語 >>>>>>>>>>>>>>Perl=汚物
0216デフォルトの名無しさんNGNG
Rubyは動的評価の手段が文字列をevalするだけだから
このスレ的にはいまいちだろ。やはりLisp >>> Ruby、とか言ってみる。

Lispのほかにも構文木をファーストクラスオブジェクトとして扱える言語は
あるのかな?
0217デフォルトの名無しさんNGNG
Pythoooooooooooooooooooooooooooooooooooooooooooooooooooooon
0218デフォルトの名無しさんNGNG
                l   
        /\___/ヽ
        /       :::::::\
       |  ''''''   ''''''   .:::|  
      |(●),   、(●)、.::::|
       |  ,,ノ(、_, )ヽ、,, .:::::::|  
       \ `-=ニ=- ' .:::::/  
           `ー`ニニ´-一´ヽ、
          /    _    l
         /  ̄`Y´   ヾ;/  |
______,|    |    |´  ハ
           |    |    |-‐'i′l .。oO( プッ
            |__ |   _|   7'′
         (   (  ̄ノ `ー-'′\
           ̄   ̄          \
0219デフォルトの名無しさんNGNG
>>216
誤解があるようです。
Ruby のイテレータメソッドはそんな単純なものじゃないです。
0220デフォルトの名無しさんNGNG
>>219
じゃあどんなもんなの?
0221デフォルトの名無しさんNGNG
>>216とイテレータメソッドに何の関係があるのだろうか
0222デフォルトの名無しさんNGNG
>>217
Pythonの構文木ってLisp使いが考えるようなものじゃないようだから
あてはまらないと思う。

ttp://www.unixuser.org/~euske/doc/python/python-lisp-j.html

の「Lisp プログラマが Python を学ぶときの要点」の12番参照。
0223デフォルトの名無しさんNGNG
>>221
これこそ本物の知ったかって奴
0224デフォルトの名無しさんNGNG
>>223
オレも221と同じ疑問をもってるのでよろしければどういうことか
教えてください。
0225デフォルトの名無しさんNGNG
Ruby以外は糞
死ね
0226デフォルトの名無しさんNGNG
>>225
Rubyの評判を落としたいのか?
それともスレの趣旨が理解できない池沼か?
0227デフォルトの名無しさんNGNG
>>224
これは221に語りかけたものです、ちょっと足らなかったですね
でも、なんでも煽りに見えるのは良くないです。

#つか、そんなスレになっている元凶は死ね、
#いくら煽ったってお前の実力は向上しないし、稚拙でもタコでもやる奴の実力のみが向上するんだよ。
#おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
0228デフォルトの名無しさんNGNG
       /\___/ヽ                           l   
      /:::::::       \                  /\___/ヽ
     .|:::.   ''''''   ''''''  |   / ̄           /       :::::::\
      |::::.,(一),   、(一)| < >>227         |  ''''''   ''''''   .:::|      
     .|::::::: ノ ,,ノ(、_, )ヽ、,, |  \_          |(●),   、(●)、.::::| .。oO( 心の敵とアツク戦い始めた・・・
      \:::::.ヽ`-=ニ=- ' /                |  ,,ノ(、_, )ヽ、,, .:::::::|       ソッ、としておくべし
     /   `一`ニニ´-,ー´                  \ `-=ニ=- ' .:::::/  
     /  | |   / |                       `ー`ニニ´-一´ヽ、
    /   | |  / | |                      /    _    l
    /   l | /  | |                     /  ̄`Y´   ヾ;/  |
__/    | ⊥_ーー | ⊥_ _____________,|    |    |´  ハ
   |  `ーヽl_l_l.} ヽl_l_l.}                       |    |    |-‐'i′l
  (、`ーー、ィ   } ̄`   ノ                       |__ |   _|   7'′
    `ー、、___/`"''−‐"                    (   (  ̄ノ `ー-'′\
                                   , ̄   ̄          \
0229デフォルトの名無しさんNGNG
2chでなにをムキになってるんだかw
0230デフォルトの名無しさんNGNG
まったりしよう
0231191NGNG
知らぬ間に荒れてるし・・・
え〜とですね。
JavaでLispという企画を読んで、そんなら俺はC#で
Lispみたいに考えただけなんですけど・・・
ガーベジコレクションはC#任せにできるけど
字句解析構文解析で既存の生成系を生かせないかなと
思っただけなんですね、はい
S式ならそんなの必要ないとかそういう突っ込みはなしで
お願いします・・・
0232デフォルトの名無しさんNGNG
↓以後何事もなかったかのようにどうぞ
0233デフォルトの名無しさんNGNG
で、あや本の話はどうなった?
0234デフォルトの名無しさんNGNG
今日大学病院行ってしまい一日仕事休んだから買ってきて読んでみるつもり
0235デフォルトの名無しさんNGNG
あや本のソース見ていると、Javaの書き方じゃないね。
C言語のソースから写しましたって感じだなあ。
0236デフォルトの名無しさんNGNG
JAVA作るのに、JAVAの書き方せんだろ?
0237デフォルトの名無しさんNGNG
haxa?
0238デフォルトの名無しさんNGNG
>>236
ボケの方向があさって過ぎ。
0239デフォルトの名無しさんNGNG
21st Century Compilers
http://www.amazon.com/exec/obidos/tg/detail/-/0321131436/

いつでるの?来年の11月かよ・・・
0240デフォルトの名無しさんNGNG
あや本
http://www.amazon.co.jp/exec/obidos/ASIN/4774121770/
0241デフォルトの名無しさんNGNG
>>235
大学院の実習で作ったプログラムみたいだね。
java.util を使ってないところがすごい。
0242デフォルトの名無しさんNGNG
ヲマイラ何打カンダであやの掌(テノヒラ)の上で転がされてるっす・・

今ごろこのスレみて、あ〜や、印税の計算でニタニタしてるよ・・
               ↓


     曰   ,,-─-、
     | |   [lllllllllll]    卒研の成果物ためしに活字にしたら 
    ノ__丶 |||`_ゝ´|||_    株を買うより楽に儲けれた
     ||日||  丿 ( .| ¢、   
  _ ||本|||/丿  .    ̄丶.)
  \ ||酒||L二⊃ . ̄ ̄\
  ||\`~~´  (<二:彡) \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
   .  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
0243デフォルトの名無しさんNGNG

.    曰
     | |   ,,-─-、
    ノ__丶 [lllllllllll]     ./ ̄いくら煽ったってお前の実力は向上しないし、
    ||中|| |||`_ゝ´|||_  <  稚拙でもタコでもやる奴の実力のみが向上するんだよ。
     ||田||  丿 ( .| ¢、 .\_ おまえの行き着く先は何もできない才能も人望も無いロートル爺だ。
  _ ||育|||/丿  .    ̄丶.)
  \ ||男||L二⊃ . ̄ ̄\
  ||\`~~´  (<二:彡) ←「コンパイラ・スクリプトエンジン」相談室住民
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
   .  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
0244デフォルトの名無しさんNGNG
>>241
インポートはjava.ioだけだったような・・・。
0245デフォルトの名無しさんNGNG
まあ藻前裸はその程度の本を書く実力と人脈さえ無いんだけどな(w
0246デフォルトの名無しさんNGNG
λ......         λ......       λ......
  λ......            λ......
 λ......      λ......        
        λ......                  λ......
    λ......             λ......
                λ......
 λ......       λ......          λ...... 
0247デフォルトの名無しさんNGNG
>>242
この手の技術書は初刷 2000 冊くらいだぞ。
2000円 * 5% * 2000 = 20万円
バイト代程度じゃん。
0248デフォルトの名無しさんNGNG
現状売り切れ続出
0249デフォルトの名無しさんNGNG
今日買ってみたよ。安かったんで。
0250デフォルトの名無しさんNGNG
>>248
田舎では売れ残っているが。
0251デフォルトの名無しさんNGNG
ソースに関するレスが多いけど
本文はどう?>買った人
0252デフォルトの名無しさんNGNG
コン・パイラさんががんばってます。
■ このスレッドは過去ログ倉庫に格納されています