Java へのコード変換における注意点
|
説明
|
|
•
|
CodeGeneration[Java] によって生成された Java コードは、Java Language Specification で定義されているとおり、Java 2 に対して有効です。
|
•
|
CodeGenerationDetails ヘルプページに記載されている関数のほかに、CodeGeneration[Java] では次の Maple 関数を使用できます。
cat、ceil、floor、および if (演算子形式)
|
•
|
一般に、CodeGeneration[Java] で使用できる数学関数は java.lang.Math ライブラリ内にある関数に変換されます。また、Maple 記号 Pi は java.lang.Math の定数 Math.PI に変換されます。
|
•
|
CodeGeneration[Java] に対するパラメータがプロシージャの場合、別の Java プログラムにインクルードしやすいように出力は CodeGenerationClass クラスに埋め込まれます。
|
•
|
java.lang.Math には双曲線関数に相当する関数がないため、CodeGeneration[Java] で双曲線関数は指数関数で表現されます。
|
•
|
Java には sign および signum に相当するものがないため、CodeGeneration[Java] はそれらを条件演算子付きの式として変換します。
|
•
|
関数 mod、modp、および mods はすべて、モジュロ演算子 (剰余演算子) % を使用した Java の数式に変換されます。
|
|
注意: 引数の値によっては、これらの関数の動作は % の動作と一致しない場合があります。
|
•
|
2 を超える指数を含む Maple 式は Math.pow 関数コールに変換されるので、自動型推定システムは適切な型を推定できない場合もあります。
|
•
|
CodeGeneration[Java] は printf 文を System.out コールに変換しますが、printf 書式の文字列については限定された分析しか実行しません。そのため、書式設定の指示 (たとえば、小数点の精度など) の一部は変換時に無視されます。
|
•
|
単精度と倍精度の浮動小数間における変換は実行されません。precision=single オプションを指定した場合は、CodeGeneration[Java] で生成される java.lang.Math コールの結果に明示的に型変換を追加する必要があります。
|
•
|
Maple の Arrays と rtables の範囲は、結果の Java 配列がインデックス 0 から始まるように調整されます。
|
•
|
Maple モジュールは Java クラスに変換されます。このとき、モジュールメンバーは static クラスメンバーにマッピングされます。モジュールのエクスポートは Java クラスの public メソッドまたはフィールドとして変換されます。一方、モジュールのローカル変数は private メソッドまたはフィールドとして変換されます。すべてのクラスメンバーは static になります。
|
|
|
Download Help Document
Was this information helpful?