translate Maple code to Java code - Maple Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Programming : Input and Output : Translation : CodeGeneration/Java

CodeGeneration[Java] - translate Maple code to Java code

Calling Sequence

Java(x, cgopts)




expression, list, rtable, procedure, or module



(optional) one or more CodeGeneration options



The Java(x, cgopts) calling sequence translates Maple code to Java code.


- If the parameter x is an algebraic expression, then a Java statement assigning the expression to a variable is generated.


- If x is a list, Maple Array, or rtable of algebraic expressions, then a sequence of Java statements assigning the elements to a Java array is produced.  Only the initialized elements of the rtable or Maple Array are translated.


- If x is a list of equations nm=expr where nm is a name and expr is an algebraic expression, this is understood as a sequence of assignment statements.  In this case, the equivalent sequence of Java assignment statements is generated.


- If x is a procedure, then a Java class is generated containing a function equivalent to the procedure, along with any necessary import statements.


- If x is a module, then a Java class is generated, as described on the JavaDetails help page.


The parameter cgopts may include one or more CodeGeneration options, as described in CodeGenerationOptions.


For more information about how the CodeGeneration package translates Maple code to other languages, see Translation Details. For more information about translation to Java in particular, see JavaDetails.


For a description of the options used in the following examples, see CodeGenerationOptions.


Translate a simple expression and assign to the name ``w'' in the target code.


w = -2 * x * z + y * z + x;

Translate a list and assign to an array with name ``w'' in the target code.


w[0][0] = x;
w[0][1] = 2 * y;
w[1][0] = 5;
w[1][1] = z;

Translate a computation sequence.  Optimize the input first.



s = 0.10e1 + x;
t1 = Math.log(s);
t2 = Math.exp(-x);
t = t1 * t2;
r = x * t + t2;

Declare that x is a float and y is an integer. Return the result in a string.


s:=cg = x + (double) y + 0.1e1;


Translate a procedure.  Assume that all untyped variables have type integer.

f := proc(x, y, z) return x*y-y*z+x*z; end proc:


class CodeGenerationClass {
  public static int f (int x, int y, int z)
    return(x * y - y * z + x * z);

Translate a procedure containing an implicit return.  A new variable is created to hold the return value.

f := proc(n)
  local x, i;
  x := 0.0;
  for i to n do
    x := x + i;
  end do;
end proc:


class CodeGenerationClass {
  public static double f (int n)
    double x;
    int i;
    double cgret;
    x = 0.0e0;
    for (i = 1; i <= n; i++)
      x = x + (double) i;
      cgret = x;

Translate a procedure accepting an Array as a parameter.  Note that the indices are renumbered so that the Java array starts at index 0.

f := proc(x::Array(numeric, 5..7))
  return x[5]+x[6]+x[7];
end proc:


class CodeGenerationClass {
  public static double f (double[] x)
    return(x[0] + x[1] + x[2]);

Translate a module.

m := module() export p; local q;
    p := proc(x,y) if y>0 then trunc(x); else ceil(x); end if; end proc:
    q := proc(x) sin(x)^2; end proc:
end module:


import java.lang.Math;

class m {
  public static int p (double x, int y)
    if (0 < y)
  private static double q (double x)
    return(Math.pow(Math.sin(x), 0.2e1));

Translate a linear combination of hyperbolic trigonometric functions.


cg0 = 0.2e1 * (Math.exp(x) + Math.exp((-0.1e1) * x)) / 0.2e1 - 0.7e1 * (Math.exp(0.2e1 * x) - 0.1e1) / (Math.exp(0.2e1 * x) + 0.1e1);

Translate a procedure with no return value containing a printf statement.

f := proc(a::integer, p::integer)
  printf("The integer remainder of %d divided by %d is: %d\n", a, p, irem(a, p));
end proc:


class CodeGenerationClass {
  public static void f (int a, int p)
    System.out.println("The integer remainder of " + a + " divided by " + p + " is: " + a % p);

See Also

CodeGeneration, CodeGenerationOptions, ExternalCalling/Java, JavaDetails, trademark, TranslationDetails

Download Help Document

Was this information helpful?

Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam