# HG changeset patch # User Christian Urban # Date 1363287785 0 # Node ID df455e0a9f98dc6bba75c6ab07384d9489877ffb # Parent 0974c59e702985a771fc1a7bf9553afb18025b6c tuned diff -r 0974c59e7029 -r df455e0a9f98 scala/README --- a/scala/README Thu Mar 14 18:46:34 2013 +0000 +++ b/scala/README Thu Mar 14 19:03:05 2013 +0000 @@ -33,4 +33,11 @@ requires the jasmin assembler for Java avilable from - http://jasmin.sourceforge.net \ No newline at end of file + http://jasmin.sourceforge.net + +Calling + + scala -cp $PWD ex_jvm.scala + +generates a Prog.j intermediate file. +This will be assembled using jasmin. \ No newline at end of file diff -r 0974c59e7029 -r df455e0a9f98 scala/ex.scala --- a/scala/ex.scala Thu Mar 14 18:46:34 2013 +0000 +++ b/scala/ex.scala Thu Mar 14 19:03:05 2013 +0000 @@ -95,7 +95,7 @@ val res = (abc_f.run(abc_map))(arity) val end = System.nanoTime() val time = (end - start)/1.0e9 - ("Result: " + res + " length: " + abc_f.p.length + " time: " + "%.5f".format(time) + "\n Prog:" + abc_f) + ("Result: " + res + " length: " + abc_f.p.length + " time: " + "%.5f".format(time)) } println("S(3) " + test_comp2(S, 3)) diff -r 0974c59e7029 -r df455e0a9f98 scala/ex_jvm.scala --- a/scala/ex_jvm.scala Thu Mar 14 18:46:34 2013 +0000 +++ b/scala/ex_jvm.scala Thu Mar 14 19:03:05 2013 +0000 @@ -74,7 +74,7 @@ def compile(f: Rec, ns: List[Int]) : Unit = { - val class_name = "LOOP" + val class_name = "Prog" val (aprog, res, max) = compile_rec(f) val init_code = init_regs(ns.padTo(max, 0)) @@ -94,12 +94,19 @@ println("Result: " + result + " Time: " + (end - start) / 1.0e9) } +print("Add(69, 30) "); compile(Add, List(69, 30)) +print("Mult(13, 9) "); compile(recs.Mult, List(13, 9)) +print("Power(3, 4) "); compile(Power, List(3, 4)) +print("Strt: "); compile(Strt(2), List(2,3)) -//compile(S, List(3)) -//compile(Fact, List(11)) -//compile(Fact, List(12)) -//compile(Fact, List(13)) -//compile(Fact, List(14)) +println("FACTORIAL") + +for (i <- 5 to 9) { + println("Input: " + i) + compile(Fact, List(i)) +} + +println("PRIME TEST") for (i <- 10 to 20) { println("Input: " + i)