- 【初心者歓迎】C/C++室 Ver.105【環境依存OK】
775 :デフォルトの名無しさん[sage]:2020/03/29(日) 12:55:27.64 ID:Kzf4aDfw - >>771
Rustの入門書はどれがお勧めですか。 Box<T>や、Option<Box<T>> の代入や参照について詳しいものがあれば幸いです。
|
- 次世代言語18 Go Rust Elixir Kotlin TypeScript
845 :デフォルトの名無しさん[sage]:2020/03/29(日) 15:19:30.65 ID:Kzf4aDfw - >>844
Wasmはマシン語に相当するものなので、Wasm自体には使用言語に関する混合に関して何の制限も無い。 ただし、nativeアプリの場合と同じで、C言語の関数を通じてお互いに呼び出しあうなどは必要。 なお、今のところ、最低限マシン語とC言語の仕組みに関して知識がないと難しい。 (最低、アドレスやポインタについての理解がいる。)
|
- 次世代言語18 Go Rust Elixir Kotlin TypeScript
846 :デフォルトの名無しさん[sage]:2020/03/29(日) 15:27:11.95 ID:Kzf4aDfw - >>845
例えば、LLVMをバックエンドに持つコンパイラであって、LLVMの中の %struct.XXXX のアラインメントのとり方が同じであって、かつ、 export、importする関数がC言語のインターフェースを持っているならば、 Wasm用のリンカでリンクが可能。 この条件を満たさない場合、リンクするのは難しいが、以下のようにすれば、 実行段階でお互いに関数を呼び出しあうことが出来る。 ・それぞれの言語処理系でリンクを行って、*.wasm ファイルを作る。 これらは、「Module」と呼ばれる。 ・ModuleをWasmとして機能させるには、JSでInstace化を行う。 ・この際に、それぞれの関数名を import すれば、お互いに関数を呼び出しあうことが可能。 ・この場合、文字列や配列の様なものにアクセスし合いたい場合、ポインタ値がJSレベルでは 単なる整数値になるので、それを、Memory と呼ばれる線形メモリーの ArrayBufferの アドレス値とすることで、可能。
|
- 【初心者歓迎】C/C++室 Ver.105【環境依存OK】
779 :デフォルトの名無しさん[sage]:2020/03/29(日) 18:35:29.30 ID:Kzf4aDfw - >>778
Javaのclasspath相当の機能をC++に移植したいということかね。
|