Java MIDP implementation
on
HTML5 and Flash
Yu Kobayashi
(yukoba)
Who am I?
□ “Virtual Machines on JavaScript and
ActionScript” OTAKU
□ My 4th
project of screen sharing
implemented by Java...
Web Browser
HTML5 Flash
Java MIDP Implementation
Application
My Compiler
Java class file
JavaScript ActionScript
Java source code
Demo
http://orto-app.com/
Just release now!
Alpha Version
Control Flow Graph
Java Source code
a = 1
b = 1
while (true) {
c = a + b;
System.out.println(c);
a = b;
b = c;
}
a = 1
b = 1
Is thread resume...
Java mnemonic
iload 2
istore 1
iload 3
istore 2
Java source code
a = b
b = c
JavaScript
stack.push(localVar2)
localVar1 = ...
Java mnemonic
iload 2
istore 1
iload 3
istore 2
Java source code
a = b
b = c
JavaScript
stack.push(localVar2)
localVar1 = ...
Upcoming SlideShare
Loading in...5
×

Firefox Developers Conference 2010

1,811

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,811
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Firefox Developers Conference 2010

  1. 1. Java MIDP implementation on HTML5 and Flash Yu Kobayashi (yukoba)
  2. 2. Who am I? □ “Virtual Machines on JavaScript and ActionScript” OTAKU □ My 4th project of screen sharing implemented by JavaScript and ActionScript
  3. 3. Web Browser HTML5 Flash Java MIDP Implementation Application
  4. 4. My Compiler Java class file JavaScript ActionScript Java source code
  5. 5. Demo
  6. 6. http://orto-app.com/ Just release now! Alpha Version
  7. 7. Control Flow Graph
  8. 8. Java Source code a = 1 b = 1 while (true) { c = a + b; System.out.println(c); a = b; b = c; } a = 1 b = 1 Is thread resume? Resume System.out.println(c) c = a + b System.out.println(c) a = b b = c
  9. 9. Java mnemonic iload 2 istore 1 iload 3 istore 2 Java source code a = b b = c JavaScript stack.push(localVar2) localVar1 = stack.pop() stack.push(localVar3) localVar2 = stack.pop() More Optimized JavaScript localVar1 = localVar2 localVar2 = localVar3 JIT x86 mov eax, [0004h] mov [0000h], eax mov eax, [0008h] mov [0004h], eax Optimized JavaScript stack1 = localVar2 localVar1 = stack1 stack1 = localVar3 localVar2 = stack1
  10. 10. Java mnemonic iload 2 istore 1 iload 3 istore 2 Java source code a = b b = c JavaScript stack.push(localVar2) localVar1 = stack.pop() stack.push(localVar3) localVar2 = stack.pop() More Optimized JavaScript localVar1 = localVar2 localVar2 = localVar3 JIT x86 mov eax, [0004h] mov [0000h], eax mov eax, [0008h] mov [0004h], eax Optimized JavaScript stack1 = localVar2 localVar1 = stack1 stack1 = localVar3 localVar2 = stack1
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×