* コード体系について
-(by [[K]], 2014.09.01)
** (1) フロントエンドバイトコード
-現状のフロントエンドバイトコードは、[[page0103]]のとおり、圧倒的に小さいという特徴があるけれど、しかしこれは限界ではない。なぜならエンコードはhh4をベースにしていて、各命令のより精密な出現頻度を反映できていないし、文字列定数も単純な8ビット形式と7ビット形式くらいしかないので、やはり各文字の精密な出現頻度を反映できていない。
-もしレンジコーダなどを利用してこれらについても最適化できたとしたら、おそらくさらに1割くらいの改善が見込めるのではないかと思う。つまりhelloは13バイトになり、hexdumpは94バイトになるのではないかと思っている。
-そういう研究をやりやすくするためにも、(2)のコード体系の拡充は重要だと思う(いろんな実験がやりやすくなる)。
** (2) さまざまなバイトコード体系
-フロントエンドコード(fr):hh4
-バックエンドコード(bk):hh4
-バックエンドコードb32形式(b32):hh4
-bs32形式(bs32):バックエンドコードをSInt32でエンコードしたもの
-fs16形式(fs16):バックエンドコードをSInt16でエンコードしたもの
-fr32形式(fr32):フロントエンドコードをSInt32でエンコードしたもの
-fs32形式(fs32):簡易フロントエンドコードをSInt32でエンコードしたもの
--fs32形式にはリピートレジスタや型推論がない。
-fs16形式(fs16):fs32のSInt16版
-なぜコード体系を増やすのか?
--コンパイラやVMを作ってもらうときに、いきなりbkかfrを使わせるのは、少々大変だなと感じたから。bs32がもっとも単純。
--bs32→fs32→fr32→frの順で変換する。
--ASKA→bs32→fs32→fr32→frの順で変換する。
--ASKA→bs32→bkの順で変換する。
* こめんと欄
#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS