SGO (すごー) [1]
- とりあえずいつ作るか分からないのでネタページ。まがいなりにも動くようになったら即座にOS-Wikiに引っ越し。
- GOはでかすぎるよ、もっとちっこくてコンパイル時間の短いやつを作って、デバッグに活用しようという、そういうCコンパイラ。
- もちろんセルフコンパイルくらいはできる。
- 100KB未満のcc1(50KB未満になりそうな気もちょっとする)。
- ANSI-Cとして一通りの機能を実装(コンパイラとしては)。でも微妙に妥協する可能性もあり。
- (出力依存部をいじると色々変えられるが)とりあえず、nask用のコードを出力。
- 出力依存部をいじって、これをgas出力やASKA出力にすることも可能である。
- まともな最適化はしないのだが、i += j;を EAX = i; EDX = j; EAX += EDX; i = EAX;にするほど馬鹿ではない(EAX = j; i += EAX;になる予定)。
- セグメンテーションに対応したC言語になりうる(この機能をOFFにすることもできる)。
- たとえばスタティックデータをコードセグメントに置くとか(ちゃんとCS:がついたコードを出しますよ)、DS == SSであることを前提にしないコードも書ける。
- これらは#pragmaで拡張されていて、この機能を使ったソースは当然GOではコンパイルできない。SGOでコンパイルする(SGOとGO混在も、ソースを分ければ記述できる)。
- EAXに値を返さないような関数やレジスタ渡しの関数も、ASKAやnaskやインラインアセンブラを使わずに利用できるし、記述できる。
- レジスタ変数として宣言すれば、最初の3つまではレジスタに割り振られることを保証。しかし4つめ以降はただの変数。
名前について [3]
- GOのシンプル版、という意味でSを頭にくっつけた。でもよく考えるとgcc由来の部分はないので、もはやGの文字が残っている必然性はない気もする。
- SGOはプリプロセッサがない(まあ将来は作るかもしれないけどね)。cpp0をそのまま使う。その意味では、まあgcc由来の部分があるといえるかもしれない。
- すごぉ。期待。 -- 名無しさん[5] 2003-10-11 (土) 12:58:30
- 古代、ccは5kbだったらしいです。 -- 名無しさん[5] 2003-10-11 (土) 21:50:29
- すばらしすぎる世界だ・・・。というかANSI-Cじゃなくてもいいなら、僕もそれを目指してみたりして(でも僕の実力じゃ無理です)。 -- K[6] 2003-10-11 (土) 22:09:58
- 目下のライバルは[[dev-j:TinyCC]]かな。。 およそ100k。 -- .mjt[7] 2003-10-11 (土) 23:13:12
- やべー、smallestとかかいてある・・・。多分勝てない・・・。プリプロセッサもアセンブラもリンカも込みらしい。というか、こいつを移植するほうが早い? -- K[6] 2003-10-11 (土) 23:58:44
- nask(27.0KB)とcpp0(37.5KB)とobj2bim(7.5KB)とbim2bin(7.0KB)でもう79KBだ・・・。 -- K[6] 2003-10-12 (日) 00:14:47
- PDP-11 UNIX(5th-7th Ed)なら、今BSDライセンスで公開されているので、参考にしてみると良いかも。(SCOが電波発言してても気にしない。) -- 名無しさん[5] 2003-10-12 (日) 11:31:38
- ちなみにこのあたり。http://minnie.tuhs.org/UnixTree/[8] -- 名無しさん[5] 2003-10-12 (日) 11:49:42
- 最近ではWin版のTinyCCがあるらしね。[[dev-j:TinyCC]] -- 名無しさん[5] 2004-05-15 (土) 10:28:26
- 本家TinyCC 0.9.23がPEバイナリ生成に対応しているようです。 -- 名無しさん[5]
- ヘタレな僕でもプリプロセッサくらいなら何とかなるかも…(時間があればですが) -- ZwergSpitz
Last-modified: 2009-11-17 (火) 00:00:00 (JST) (319d) by ゲスト
Links list
(This host) = http://osask.net
- (This host)/modules/osaskwiki/155.html#wfea839c
- (This host)/modules/osaskwiki/155.html#p48dca6f
- (This host)/modules/osaskwiki/155.html#l0f4c369
- (This host)/modules/osaskwiki/155.html#gb9aefb1
- (This host)/modules/osaskwiki/223.html
- (This host)/modules/osaskwiki/144.html
- (This host)/modules/osaskwiki/347.html
- http://minnie.tuhs.org/UnixTree/