* Universal eXecutable Format - 02
-(by [[K]], 2016.09.27)

** Essenでのuxfのサポート
-Essenではuxfdlとしてはprintfくらいしかサポートしない。これはデバッグのために提供されていて、本来は使わないことを想定している。基本的に、入出力はEssenの命令を使って行うべきで、uxf内で行うべきではない。
-uxfはもっぱらオンメモリ演算の高速化の手段を提供するだけである。
 void entry(unsigend char *p)
 {
     ...
 }
-基本的にこの関数が呼び出される。データの受け渡しはpのみを使って行う。

-いや、任意のEssen文を実行できる関数がuxfdlで提供できればより良い気がする。
--じゃあ、entryの引数を UCHAR *p だけじゃなくて void *handle も付けることにしよう。このhandleはessen関数を呼ぶときにのみ使う。

-Essenからuxfにデータを渡す場合、Essen側で文字列変数を一つ作り、そこに渡したいパラメータを書いて、uxfに渡す(unsigned char *pになる)。
--uxf側では、与えられたpの一部を書き換えて終了すれば、Essenはそれを受け取ることができる。
-ではessen関数を使って、uxfからessen命令を実行する場合は?
--やはり文字列(というかバイト列だけど)を作ってそれを渡し、そこから変数を作っていく感じになると思われる。
--これをやるとなると、Essen側に、特殊な文字列型がほしくなるなあ。
---普通の文字列型: 変数や値の寿命が尽きたら、領域は解放される
---特殊な文字列型: 変数や値の寿命が尽きても、領域の解放をしない
--Essenから値を返す場合も、同じ文字列にデータを書き込んでいけばいい。そしたらuxf側でも値を受け取れる。

-しかしこうしてみると、Essenとはなんなのだろうか。
--さまざまな言語をつなぐインターフェース環境?
--そういう考え方も面白いかもしれない。



* こめんと欄

#comment



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS