page0013
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* jck0ライブラリについて
-(by [[K]], 2018.06.07)
** (0) これはなに?
-jck0ライブラリは、JITコンパイラなプログラミング言語を自...
-jck0ライブラリを使えば、JITコンパイラをCPUに依存せずに書...
-呼び出し元は最適化をがんばらないという想定で考えています...
-jはJITのj、cはコンパイラのc、kはKHシリーズのk、0は言語に...
** (1) 基本構文
-パーサーをがんばりたくないので、トークンはすべて1つのス...
(例) "i = i + 1 ; "
-文頭のみ、スペース、改行、タブを好きなだけおくことができ...
-//は行コメント命令なので、これを置けば'\n'まではすべて無...
-演算子以外の予約語はすべて「$」で始まります。なぜ$にした...
-変数名やラベルの文字数は自由です。数字で始まるものはダメ...
-jck0ライブラリでは1つのソースコードに含まれる関数は1つだ...
-雰囲気を分かってもらうために例をだします。
$startup ; // スタックフレームを作らせる
$local $int32 i ; // ローカル変数の宣言
i = 0 ;
$label l ; // ラベル宣言
i = i + 1 ;
$if i < 100000000 $goto l ;
$#0 = i ; // 第一引数を i にする
$call 0x???? ; // 関数呼び出し.
$return ; // スタックフレームを解放して関数を終了する
** (2) 関数
-int jck0(const unsigned char *src, unsigned char *dst, i...
--このライブラリにおける中心的な関数。srcにjck0のソーステ...
--pc0はエラーを起こした命令の文頭を示す(該当箇所はsrc[*p...
--pc1はエラーとなったトークンを指している(該当箇所はsrc[...
--pc2はエラーを起こすまでに到達した、最後のチェックポイン...
--ソースの先頭に半角スペースを置いておくと、jck0ライブラ...
--以上は2018.07.02以降にリリースされた版で有効となる。
-void *mallocRWX(int siz)
--jck0ライブラリではOSに対して実行権限のついたメモリを要...
** (3) 位置独立なコードを生成するには?
-デフォルトでは位置独立なコードを生成するための努力はしな...
-位置独立なコードが生成できるようになると、静的なコンパイ...
** (4) 関連リンク
-[[page0015]] : ローカルラベル(jck0_v02以降で使える機能)
-[[page0016]] : jck0ライブラリのバージョン
* こめんと欄
#comment
終了行:
* jck0ライブラリについて
-(by [[K]], 2018.06.07)
** (0) これはなに?
-jck0ライブラリは、JITコンパイラなプログラミング言語を自...
-jck0ライブラリを使えば、JITコンパイラをCPUに依存せずに書...
-呼び出し元は最適化をがんばらないという想定で考えています...
-jはJITのj、cはコンパイラのc、kはKHシリーズのk、0は言語に...
** (1) 基本構文
-パーサーをがんばりたくないので、トークンはすべて1つのス...
(例) "i = i + 1 ; "
-文頭のみ、スペース、改行、タブを好きなだけおくことができ...
-//は行コメント命令なので、これを置けば'\n'まではすべて無...
-演算子以外の予約語はすべて「$」で始まります。なぜ$にした...
-変数名やラベルの文字数は自由です。数字で始まるものはダメ...
-jck0ライブラリでは1つのソースコードに含まれる関数は1つだ...
-雰囲気を分かってもらうために例をだします。
$startup ; // スタックフレームを作らせる
$local $int32 i ; // ローカル変数の宣言
i = 0 ;
$label l ; // ラベル宣言
i = i + 1 ;
$if i < 100000000 $goto l ;
$#0 = i ; // 第一引数を i にする
$call 0x???? ; // 関数呼び出し.
$return ; // スタックフレームを解放して関数を終了する
** (2) 関数
-int jck0(const unsigned char *src, unsigned char *dst, i...
--このライブラリにおける中心的な関数。srcにjck0のソーステ...
--pc0はエラーを起こした命令の文頭を示す(該当箇所はsrc[*p...
--pc1はエラーとなったトークンを指している(該当箇所はsrc[...
--pc2はエラーを起こすまでに到達した、最後のチェックポイン...
--ソースの先頭に半角スペースを置いておくと、jck0ライブラ...
--以上は2018.07.02以降にリリースされた版で有効となる。
-void *mallocRWX(int siz)
--jck0ライブラリではOSに対して実行権限のついたメモリを要...
** (3) 位置独立なコードを生成するには?
-デフォルトでは位置独立なコードを生成するための努力はしな...
-位置独立なコードが生成できるようになると、静的なコンパイ...
** (4) 関連リンク
-[[page0015]] : ローカルラベル(jck0_v02以降で使える機能)
-[[page0016]] : jck0ライブラリのバージョン
* こめんと欄
#comment
ページ名: