EssenR2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* Essen Rev2
-(by [[K]], 2017.07.31)
** (0)
-EssenRev1が完成しないうちから、Rev2の構想が進んでしまい...
** (1)
-EssenRev2では実行方式がJITコンパイル方式になります。
-EssenRev1では「速度はどうでもいい、速さがほしければイン...
--10倍未満なら、まあそんなもんだよなーと思えたのですが・...
-JITコンパイル方式だと、変換速度は実行速度にほとんど影響...
--もちろん、ダメダメなコードを生成してはいけませんが。
** (2)
-JIT00 : 仮想アセンブラ(JIT00) → 機械語
--CPUに依存する最下層のレイヤ
-JIT01 : Essen → JIT00
--EssenからJIT00へ変換するレイヤ
-それぞれのレイヤは、C言語のライブラリ関数として実装され...
** (3) 主な仕様
-真偽値はintだが、最下位ビットのみで真偽をあらわす。他の...
--そもそも0かそれ以外かという基準だと、すべてのビットを見...
--しかもどのビットが化けても偽が真に化ける。EssenRev2なら...
--なお、真偽値を0か-1かであらわすことにすれば、ビット化け...
-C言語ではintは16ビット以上、longはint以上、long longはlo...
--intは32ビット以上。longは64ビット以上。
--Essenでは上記さえ満たしていれば、intのビット幅とlongの...
--同様にfloatは32ビット以上。doubleは64ビット以上。
--intとfloatを基本型として、それ以外は拡張型とする。
-こう書けば機種異存のないコードが作りうるという仕様になっ...
-&&や||の演算子は作らずに、&や|で代用する。&&や||には最初...
--ヌルポインタを使うif文が一行で書けないという心配がある...
--どうしても&&や||的な挙動がほしい場合は、ifを二回使えば...
終了行:
* Essen Rev2
-(by [[K]], 2017.07.31)
** (0)
-EssenRev1が完成しないうちから、Rev2の構想が進んでしまい...
** (1)
-EssenRev2では実行方式がJITコンパイル方式になります。
-EssenRev1では「速度はどうでもいい、速さがほしければイン...
--10倍未満なら、まあそんなもんだよなーと思えたのですが・...
-JITコンパイル方式だと、変換速度は実行速度にほとんど影響...
--もちろん、ダメダメなコードを生成してはいけませんが。
** (2)
-JIT00 : 仮想アセンブラ(JIT00) → 機械語
--CPUに依存する最下層のレイヤ
-JIT01 : Essen → JIT00
--EssenからJIT00へ変換するレイヤ
-それぞれのレイヤは、C言語のライブラリ関数として実装され...
** (3) 主な仕様
-真偽値はintだが、最下位ビットのみで真偽をあらわす。他の...
--そもそも0かそれ以外かという基準だと、すべてのビットを見...
--しかもどのビットが化けても偽が真に化ける。EssenRev2なら...
--なお、真偽値を0か-1かであらわすことにすれば、ビット化け...
-C言語ではintは16ビット以上、longはint以上、long longはlo...
--intは32ビット以上。longは64ビット以上。
--Essenでは上記さえ満たしていれば、intのビット幅とlongの...
--同様にfloatは32ビット以上。doubleは64ビット以上。
--intとfloatを基本型として、それ以外は拡張型とする。
-こう書けば機種異存のないコードが作りうるという仕様になっ...
-&&や||の演算子は作らずに、&や|で代用する。&&や||には最初...
--ヌルポインタを使うif文が一行で書けないという心配がある...
--どうしても&&や||的な挙動がほしい場合は、ifを二回使えば...
ページ名: