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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 20:49: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/
9 pc8.2ch.net/test/read.cgi/tech/1135082582/
10 pc8.2ch.net/test/read.cgi/tech/1146844753/
11 pc11.2ch.net/test/read.cgi/tech/1160879890/
12 pc11.2ch.net/test/read.cgi/tech/1188688416/
関連リンクは多分 >>2-10 あたり

107 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:28:05 ]
>>105
それだッッッ
ブロックの扱いがどうやればいいのか
悩みまくっている俺にはおいしいです ^q^
^


108 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:57:09 ]
>>101 lexer parser 何てどうとでもなるから
cps とか ssa あたりの内部表現の評価手法を,
最適化方法に合わせた一覧として提示してくれ


109 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:05:45 ]
>>108
どうとでもならない人のための相談室スレだと思うんだ。
だから、出来る人は我慢して、ここはレベルを下げて欲しいんだ。

110 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:11:32 ]
平行すりゃいいじゃん
誰か一人のためのスレってわけでもないんだし。

111 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:32:56 ]
>>108
オレは専門家じゃないのでCPSもSSAもどちらの用語も知らなかったが、
これってLLVMで全部実装されてるんじゃね?
やはりLLVMの包括的な解説記事が欲しいところだな。

112 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:43:18 ]
>>107
Pascalのone pass compiler読め。
homepages.cwi.nl/~steven/pascal/book/7statements.html

113 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:19:43 ]
>>111
LLVMは既に提出されているものをうまくつなぎ合わせてるだけ
つなぎ合わせ方法はいくらでもある
各要素項目を網羅的に解説したものがほしい

つか、現場にいるとそっち系をゆっくり、みてる暇がない


114 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:43:17 ]
>>113
実務者としては、実装されてない方法より
既に実装されているものの解説のほうが遥かに役に立つ。

>各要素項目を網羅的に解説したものがほしい
この分野に詳しくないので外野の意見だが、それなら洋書を漁って読めばいいんじゃね?

115 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:45:38 ]
>>108
Tiger Bookや"Practical Improvements to the Construction
and Destruction of Static Single Assignment Form."は読んだの?



116 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:48:23 ]
>>114
> 実務者としては、実装されてない方法より
> 既に実装されているものの解説のほうが遥かに役に立つ。

ぶっちゃけここで質問している人が、
現実に使われているコンパイラのソースを参考にして、
自分のコードに反映させるのは難しいと思う。
そのくらいコンパイラは複雑化している。

さらに学習用のコンパイラは関数型言語で書かれているものが多く、
実務指向の人とは相容れないものがあるだろう。

謙虚な気持ちで学習するのが一番。

117 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 02:21:44 ]
>>114
> 実務者としては、実装されてない方法より
> 既に実装されているものの解説のほうが遥かに役に立つ。

要素手法が見えにくいんだよね。まとまってしまうと。
ましてや、cps とか ssa 使った状態での複合リダクションとなると。

> この分野に詳しくないので外野の意見だが、それなら洋書を漁って読めばいいんじゃね?
そりゃたくさん持ってるさ
ただ、現場をかかえてるとそっちばっかやってるわけに行かなくなるんだよな


>>116
> さらに学習用のコンパイラは関数型言語で書かれているものが多く、
> 実務指向の人とは相容れないものがあるだろう。

それは気にならないんだけど、細切れの論文掻き集めて整理やり直す時間はとれねぇよ


118 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 11:16:43 ]
実務指向でコンパイラを今時つくりたい、なんて人はいないと思う
スクリプトでDSLをさっくり組むならともかく

119 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:19:12 ]
>>90
www.amazon.co.jp/コンパイラとバーチャルマシン-Text-今城-哲二/dp/4274133087
↑この本に、オブジェクト指向も例外処理も分かりやすく載ってるよ。
薄くてすぐに読めるし、お薦め。
ただ、日本語で概要が載っているだけなので、
実装するには自分で知恵を絞らないとだけど。

現代的なコンパイラは、内部で何度も変換を繰り返して、
最終的に実行可能なコードをはく。
オブジェクト指向の場合は、最初の方で非オブジェクト指向の
Cみたいなコード (AST) に変換してしまうと、
後はよく書籍に載っているような方法が使えていいと思う。

コンパイラを全部 (シンタックスシュガーの除去から
アセンブラの出力まで) 自作するのは、大規模過ぎて現実的じゃない。
だから、自分が関心を持っている部分以外は
なるべく既存のものを利用するといいと思う。

例えばCのコードを書きだすコンパイラを書けば、
アセンブラごとにジェネレータを自分で書かなくても
多くの環境で動くし、最適化もCコンパイラに頼める。
例外処理などはCでは実装しにくいので、
必要ならLLVM IRを出力するという方法もあるよ。


120 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:25:19 ]
>>118
「実務」の中身によるんじゃないかな?


121 名前:119 mailto:sage [2009/06/13(土) 19:32:59 ]
以前、Javaバイトコードに変換するコンパイラも書いたことがあるけど、
Javaだと「.class」ファイルはクラス単位でオブジェクト指向になっていて、
オブジェクト指向「からの」変換はJVMが担当している。
だから、バイトコードの仕様を読んでも、あまり参考にはならないと思う。

同じ理由で、JVMをターゲットにした (「.class」ファイルを生成する)
コンパイラも皆、参考にならないと思う。


122 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 20:10:29 ]
リンゴの本見ればコンパイラなんて3日で書けるだろ

123 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:39:22 ]
>>121
最近はclassファイルを扱うためのライブラリがたくさんあるよ。


124 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 11:15:34 ]
>>121 が言ってるのは、Java のオブジェクト指向的な面
(動的バインディングとか)が実現されてるのは、Java VM自体
なので(invokevirtual命令とか)、オブジェクト指向言語を
ふつうのCPU上で実現するコンパイラの参考にはならん、と
いうこと。

125 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 21:52:36 ]
ドラゴンブック超える神本の出版が確定!

プログラミング言語を作る
プログラミング言語を作るなんて究極の楽しみだ!



126 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 09:50:36 ]
>>125
著者の「プログラミング言語を作る」のサイトはぐだぐだ進行な上に
今ブログをチェックしてみたら最新エントリがエロゲの話で
しかもトンデモ理論だったので失笑せざるを得なかった

立ち読みはしてみるつもりだけど、はずれじゃないかなぁ

127 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 10:18:52 ]
前橋さんが言語本出すのか。
まあ、変なものにはならないでしょ。

128 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 18:57:40 ]
>>125
作者乙

129 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 20:24:01 ]
>>128
あの人の作る言語は神レベルの美しさだぞ
お前こそ何言ってるんだw?

130 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 20:26:33 ]
>>129
どの人??

131 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 08:43:47 ]
>>125 >>129 は信者だろうな。

ポインタ本とか、Java謎本とか、結構悪くなかったと思うけど、今回もそういう
他に類例のないところを押さえる趣向かねぇ。

ドラゴンブックに代わる、なんてことはないないw

132 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 09:01:10 ]
>ドラゴンブックに代わる、なんてことはないないw
学術書と実用系趣味本を一緒にすること自体おかしいよね


133 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 09:59:07 ]
ドラゴンブック買ったけど、全然役に立たなかった。オナニー書籍
りんご本のほうがよほど役に立ったわ

というくらい

134 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 10:21:41 ]
>>133
具体的に書かれてないと、単に難しいことが理解できなかった可哀想な趣味グラマにしか見えないな

135 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 10:50:14 ]
ドラゴンブック喧嘩せず



136 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 12:07:40 ]
ドラゴンブックは、
字句解析、構文解析はツールを使うから詳しくなる気はないし、
構文解析向けの言語理論にも興味ないって人にはまったく不向き。
構文解析ツール作ってみたいなって人、
計算機科学科の学生には今でもいい本の一つ。

137 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 14:08:10 ]
そこから先のバックエンドについても、高度な話の基本になるところを
押さえてあるからね。

138 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 16:24:11 ]
>>136
「内容に興味のない人には不向き」っていうことですねわかります

139 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 16:44:12 ]
>>138
当たり前の事ではないか


140 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 17:41:11 ]
特定書籍の信者って面白いね。
反撃が全部「ぼくは君をこういうキャラに設定したぞ。どうだ悔しいだろう」だし。

141 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 17:45:52 ]
>>140
具体的に書かれてないと、単に難しいことが理解できなかった可哀想な趣味グラマにしか見えないな

142 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 20:23:54 ]
>>140
構文が曖昧です。君からキャラへの変換は明示的なキャストが必要です。

143 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:43:48 ]
coinsの利用についてはどうよ?

COINSコンパイラ・インフラストラクチャ
ttp://www.coins-project.org/

144 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:52:47 ]
coinsは最凶最悪

145 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 00:01:52 ]
>>139
いやだから、内容に興味があるのは”前提”として、
その人たちにとって良い本かを議論しないと意味ないじゃんという話
まぁ全体的にいい本っていう論調だし俺も同意するが



146 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 00:06:19 ]
まずドラゴンブック読めない奴はゴミ
これ世界の常識あるね



147 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 06:51:19 ]
このスレで勧められ板から、ドラゴンブックせっかく奮発して買ったのに、
いきなりしょっぱなからはじめから変な数式ばっかでいやになった…。

論文とかたまに見るけど、どうして人にわかるように書かないんだろうか?
大学行ってたら、小学生でもわかるように、って習わなかったんだろうか?

148 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 07:24:21 ]
小学生でもわかるように書くと厚さと著作にかかる時間とが値段が10倍になりますがよろしいか。

149 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 07:26:33 ]
>>147
え?あの程度の数式読めないの?
何それこわい

150 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 07:28:12 ]
10倍じゃ全然きかないか

151 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 07:36:55 ]
>>147
貴様は人間の屑だ

152 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 08:23:43 ]
>>147
ただ単に読むのが早すぎただけでしょ。積読して、適正になったらまた読む

153 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:09:04 ]
小学生でもわかるように、ってのは 無 理 。

大学の教科書で、小学生でもわかるように書いてあるものなど皆無です。

高校生で奮発して読もうと思っているなら、学校の先生にでも相談しなさい。
多分集合の記号とか論理式とかでつまづいてるんじゃないかと思うんだけど。

154 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 23:36:05 ]
先に簡単なの何冊か読めばいいのに

155 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 00:00:30 ]
ドラゴンブックが一番簡単
これも読めないゆとりは来るな




156 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 00:07:00 ]
ドラゴンブック読まなくてもコンパイラ作れるけどね

157 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 00:13:25 ]
読まないと読めないは違う

158 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 16:33:02 ]
数年前、文系の見方で書いたとかいうコンパイラの本ってあったよね
日本のコンパイラの第一人者が監修になってたから、わりと買った人多い?
たとえ話がぜんぜん例えになってなくて大混乱
巻末のJavaで書いたコンパイラのプログラムはほとんどCからの丸写しみたいなつくりだった。

159 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 16:38:45 ]
上のほうですでに出てたかw

160 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:15:05 ]
むしろ、ドラゴンブックは、それさえ読めれば、相当なコンパイラが書ける本だろ。
確かLSI-Cの作者がそう言ってたと中村正三郎か誰かが書いていた記憶がある。

161 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:27:01 ]
コンパイラを書けるくらいの人なら読める

162 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:45:10 ]
>>160
「ドラゴンブックを読めば誰でもLSI-Cぐらいのコンパイラは書ける」だなw

163 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 19:39:56 ]
LSI-Cのひとはyacc互換のコンパイラコンパイラも作っていましたよね。
「ドラゴンブック読めば誰でもコンパイラコンパイラは書ける」なの?

164 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 19:57:12 ]
スクリプトエンジンプログラミング 買ってきた。半分くらい読んだとこ。

なんか書いてみたいなレベルの自分にとっては、ぴったりのイメージ
なんだが、この本あんまり話題に上らないね・・・

C++出来ない自分にゃ読み替えるのが大変w

javaVM向けの中間言語を吐くやつのサンプルとかがあると、最高
だったんだけど。

165 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:40:34 ]
>>162
LSI-Cは1980年代始めから中頃までが全盛期だと思うが、
当時最高の最適化を行なう最強コンパイラですよ。
作者はデータフロー解析、レジスタカラーリングは、
原論文をバリバリ読んでいた人だと思う。
かなりの腕前の人。



166 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 21:33:02 ]
>>165
いやいや、>>162は作者がそう言ったので
中村正三郎か誰かがしょんぼり、という話w

167 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 22:14:46 ]
>>164
ちょっと薄い本だけど、日立の人が書いた、Javaのバイトコード
を吐くコンパイラがサンプルで載ってる本あったね。

って調べたらあった↓
www.amazon.co.jp/dp/4274133087/

168 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 23:13:16 ]
>>167
著者の最初に名前上がってる人、コボラーだね。

169 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 23:15:27 ]
まじかよw
興味あったけど買うのよしたw

170 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 23:19:24 ]
作者じゃないが。最近発売された「プログラミング言語を作る 」がインタープリタ
もバイトコードコンパイラのソースも載ってるぞ。買って読んでないから内容は
知らんが。

171 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 23:20:09 ]
MiniCamlで良いじゃん。

172 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:34:54 ]
スレ住人に聞くけどJIT関係の最適化に関するプロファイリングネタはここでいいのかな?


173 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 04:30:55 ]
さっきJavaで書かれた独自形式の中間言語を出力する
コンパイラが欲しいと書いてる人がいたが、
よくよく考えてみると、.NETやJavaなどのそれ自体が
中間言語でかかれててJITコンパイラまで付いてる環境では、
下手に独自で作るよりもその環境の中間言語を出力してしまう、
要するにコンパイラそのものを作ってしまったほうが簡単なんだよな。
中間言語の書式や(基本的に)仮想マシンの仕様を考えなくて済む。

だからJavaにおけるGroovy、.NETにおけるIronPythonなど、
中身はインタプリタというよりもコンパイラそのものだ。

174 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:51:31 ]
そこでLLVMやCOINSが出てくるわけだ。

175 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 07:32:42 ]
プログラミング言語を作るは神本
ドラゴンブック不要といわれる理由がよくわかる
読んでみろ



176 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 07:41:40 ]
はい。

177 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 08:03:25 ]
はいじゃないが。

178 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 10:29:52 ]
>>170,175
信者か作者かしらんがいい加減うざい

179 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:43:34 ]
そう思わせるのが目的のアンチかもよ

180 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:29:32 ]
プログラミング言語を作る
買って読んでみたぞ

普通の本だろこれ
金返せよ

181 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:40:43 ]
え?俺の本からは神様が出てきたぞ?正に神本だと思ったw

182 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:16:58 ]
>>181
作者乙

183 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:20:30 ]
間違えた、紙だったw

>>182
偽エスパー乙

184 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:25:07 ]
無理に面白いこと言おうとしなくてもいいよ

185 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:31:29 ]
ドラゴンブック持ってないのに
コンパイラの本書いてるやついるけど
あいつは何なの?




186 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:35:37 ]
分かりません。

187 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 14:13:43 ]
>>169
いや、コボラーはコボラーでもIBMの奴隷って意味のコボラーじゃないからw

188 名前:デフォルトの名無しさん [2009/06/27(土) 23:40:48 ]
>>160
確か、LSI-Cの作者がそれしか読んでないとかいってただけだと思う。
万人に当てはまるわけではない と


189 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 00:30:24 ]
大昔の話じゃいろいろ説明をつけないと通じないんだなあ……
というかその大昔の時点で意味わかってなかったのか?

LSI-Cの最適化は凄いとよく言われたが
詰めが甘くて実際には骨折り損だという話もあったよ
コンパイル時間はMS-Cの倍だったしね

190 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 01:40:22 ]
>>189
8080版の最適化の話だろすごかったの


191 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 07:18:31 ]
LSI-C(笑)

192 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 07:19:14 ]
4004(笑)

193 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 09:20:58 ]
>>189
知りもしないことをよくもまあ

194 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 11:56:45 ]
知ってる人だけ。。。
MSX-Cは変数が自動でレジスタに割り当てられるんだけど、
そうなるとポインタを介したアクセスと一貫性がなくなる。


195 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 12:01:02 ]
MSX-C = LSI-C



196 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 21:23:22 ]
>>194
変数のポインタを取り出せばメモリ上に確保しなおしてたよ
それともループ内に持ち込んだ変数を割り込み処理で外部から変更した時に関与が出ないって意味で言ってる?

197 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 21:59:34 ]
#include <stdio.h>
#pragma nonrec

main()
{
    int n;
    int *p;

    p = &n;
    n = 10;
    *p = 100;
    printf("n = %d\n", n);
}


MSX-C のマニュアルに載ってたサンプル。
これで「n = 10」と表示されるそうな。

198 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 23:10:50 ]
なんじゃこりゃ。
これが仕様なの?

199 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 23:30:24 ]
往年の8ビットマイコン用Cコンパイラの#pragmaか
コード書く人もコンパイラの振る舞いにあわせて組んでたんだね

200 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 23:40:43 ]
逆だろ。
pragmaはコンパイルの動作を指定するためにある。


201 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:14:16 ]
MSX-CでC言語を勉強したんだけど、これによくはまった。
レジスタに割り当てないこともできるけど。
#pragma nonrecはローカル変数をstaticがついているかのようにする。
non-recursiveの略。CPUの制限でスタック上の変数にアクセスするのが
遅いからです。コードの再利用のことを考えてのことだと思う。
あとMSX-Cはlongと浮動小数点数がないんです。
#ifもない。if文で代用とマニュアルにありました。実行されないコードは
生成されない。
なにかの役に立つかな?

202 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:17:14 ]
#pragma有効で組むか
さもなくば死か
この時代にCを開発用途に使えたという時点である意味幸運だったとも言える

203 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 12:13:13 ]
8080でのスタックフレームってめんどくさいよな

204 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 23:59:31 ]
高級言語を意識して設計されてないから仕方ない
Z80だとIX/IYで強引にやるのか?汎用/裏レジスタで最適化とかしてたら凄いが

205 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 00:51:28 ]
IX/IYは人間向きのレジスタで、
便利ではあるけど遅いからコンパイラは使わない。
(HD64180あたりになると結構速かったが)
LSI-C(MSX-C)はもちろん裏レジスタ使いまくり。




206 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:30:31 ]
むかし見たLSI-C80の広告ではIXかIYをフレームポインタに使っていた
コードが掲載されていた。
MSX-Cは裏レジスタ,IX,IYを使うコードは生成しなかったと思う。
付属のライブラリでは使っているかもしれませんが。
スタック上のローカル変数アクセスの方法はどうだったか記憶にありません。
MSX-Cのアセンブリ言語出力をZ80に最適化するプログラムを書いた人もいるようです。
僕も出力を見ていたときすこし考えたことありました。
アセンブリ言語レベルで8080から8086に変換するプログラムの存在を古い本で読んだのも思い出しました。

207 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 23:41:00 ]
コンパイラが将来性のない
回顧主義者おっさんのたまり場であることがよくわかる

だから日本は研究でも実業でもこの分野でチョン以下になる。







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

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

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