fmaster.dvi



Similar documents
i


Wide Scanner TWAIN Source ユーザーズガイド

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV




生活設計レジメ

44 4 I (1) ( ) (10 15 ) ( 17 ) ( 3 1 ) (2)

I II III 28 29


178 5 I 1 ( ) ( ) ( ) ( ) (1) ( 2 )

2 1 Web Java Android Java 1.2 6) Java Java 7) 6) Java Java (Swing, JavaFX) (JDBC) 7) OS 1.3 Java Java

メタコンピュータ構成方式の研究

ii

untitled

i

AccessflÌfl—−ÇŠš1

2


86 7 I ( 13 ) II ( )


入門ガイド

<4D F736F F F696E74202D C835B B E B8CDD8AB B83685D>

SC-85X2取説


untitled

第1部 一般的コメント

新・明解Java入門

o 2o 3o 3 1. I o 3. 1o 2o 31. I 3o PDF Adobe Reader 4o 2 1o I 2o 3o 4o 5o 6o 7o 2197/ o 1o 1 1o

untitled

表1票4.qx4

福祉行財政と福祉計画[第3版]

第1章 国民年金における無年金

橡ミュラー列伝Ⅰ.PDF

II III I ~ 2 ~

中堅中小企業向け秘密保持マニュアル


PR映画-1

- 2 -



1 (1) (2)

support.book

ONLINE_MANUAL

ONLINE_MANUAL

II

これわかWord2010_第1部_ indd

パワポカバー入稿用.indd

これでわかるAccess2010

ipsj-final.dvi

平成18年版 男女共同参画白書

ÿþ

installtk.ps

組込みシステムシンポジウム2011 Embedded Systems Symposium 2011 ESS /10/20 FPGA Android Android Java FPGA Java FPGA Dalvik VM Intel Atom FPGA PCI Express DM

provider_020524_2.PDF

「産業上利用することができる発明」の審査の運用指針(案)


エクセルカバー入稿用.indd

intra-mart Web for SellSide ver /03/31 Oracle MS-SQL Server IBM DB2 MS-SQL Server IBM DB2 Client Side JavaScript Server Side JavaScript URL -



untitled

01_.g.r..

untitled

活用ガイド (ソフトウェア編)


konicaminolta.co.jp PageScope Net Care

困ったときのQ&A

コスト効率の高い業界標準サーバーへのERPの導入


Java

III


ii

新・明解Java入門

活用ガイド (ソフトウェア編)


i

...J QX

橡6.プログラム.doc

CRS4

2

活用ガイド (ソフトウェア編)

パソコン機能ガイド

パソコン機能ガイド


Javaと.NET

I...4 II III IV...18 ( ) ( ) ( ) ( ) V...22 ( ) ( ) ( ) (

163 prépension prépension prépension prépension prépension

( ) ID - 2 -

2004年度日本経団連規制改革要望

intra-mart ver /10/31 1. / intra-mart 3.2 AND intra-mart (JavaMail ) ( )

インテル® VTune™ パフォーマンス・アナライザー 9.1 Windows* 版

今から間にあう仮想化入門とXenについて



imageWARE Prepress Manager Select エディターガイド

Wesley86.indd


Transcription:

9 888 Java Just-in-Time OpenJIT 11 1

1 1 1.1 : : : : : : : : : : : : : : : : : : : : 1 1.2 : : : : : : : : : : : : : : : : : : : : : : : : 2 1.3 : : : : : : : : : : : : : : : : : : : : : : : : 6 1.4 : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 2 10 2.1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 2.2 : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 3 15 4 25 5 28 5.1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 28 5.1.1 OpenJIT : : : : : : : : : : : : : : 29 5.1.2 OpenJIT : : : : : : : : : : : : : : : 30 5.2 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 31 5.3 : : : : : : : : : : : : : : : : : : : : : : 33 6 OpenJIT 34 6.1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 34 6.2 : : : : : : : : : : : : : : 36 6.3 OpenJIT : : : : : : : : : : : : : : : : : : : : 38 6.3.1 OpenJIT : : : : : : : : : : : : : : : : : : : : : : 40 i

6.3.2 OpenJIT : : : : : : : : 41 6.3.3 OpenJIT JNI API : : : : : : : : : : : : : : : : : : 42 6.4 OpenJIT : : : : : : : : : : : 43 6.4.1 : : : : : : : : : : : : : : : : : : : : : 45 6.4.2 : : : : : : : : : : : : : : : : : : 46 6.4.3 AST : : : : : : : : : : : : : : : : : : : : : : : : : : 47 6.5 OpenJIT : : : : : : : : : 48 6.5.1 : : : : : : : : : : : : : : : : : : : : 50 6.5.2 : : : : : : : : : : : : : : : : : : : : 51 6.5.3 : : : : : : : : : : : : : : : : : : : : : : : 52 6.6 OpenJIT : : : : : : : : : : : : : : : : : : : : : : : : : 53 6.6.1 : : : : : : : : : : : : : : : : : : : : : : : : : 55 6.6.2 : : : : : : : : : : : : : : : : : : : : : 56 6.7 OpenJIT : : : : : : : : : : : : : : : : : : : 57 6.7.1 AST : : : : : : : : : : : : : : : : : : : : : : : : : 59 6.7.2 : : : : : : : : : : : : : : : : : : 60 6.7.3 : : : : : : : : : : : : : : : 61 6.7.4 : : : : : : : : : : : : : : : : : : : : : : : 62 6.8 OpenJIT : : : : : : : : : : : : : : : : : : : 63 6.8.1 : : : : : : : : : : : : : : : : : : : 65 6.8.2 : : : : : : : : : : : : : : : : : : : : : 66 6.8.3 : : : : : : : : : : : : : : : : : : : : : : : : : 67 6.8.4 : : : : : : : : : : : : : : : : : : : : : : : 68 6.9 OpenJIT : : : : : : : : : : : : : : : : : : : : 69 6.9.1 AST : : : : : : : : : : : : : : : : : : : : 71 6.9.2 AST : : : : : : : : : : : : : : : : : : : : 72 6.9.3 AST : : : : : : : : : : : : : : : : : : : : : : : : : : 73 7 OpenJIT 74 7.1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 74 7.2 : : : : : : : : : : : : : : 76 7.3 OpenJIT : : : : : : : : : : : : : : : : 78 ii

7.3.1 : : : : : : : : : : : : : : : : : : : : 80 7.3.2 : : : : : : : : : : : : : : : : : : : : : : : : : 81 7.3.3 : : : : : : : : : : : : : : : : : : : : 82 7.3.4 : : : : : : : : : : : : : : : : : : : : 83 7.4 OpenJIT : : : : : : : : : : : : : : : : : : : : 84 7.4.1 : : : : : : : : : : : : : : : : : : : : : : : : : 86 7.4.2 : : : : : : : : : : : : : : : : : : : : : : : 87 7.4.3 : : : : : : : : : : : : : : : : : : : 88 7.5 OpenJIT RTL : : : : : : : : : : : : : : : : : : : : : : : 89 7.5.1 : : : : : : : : : : : : : : : : : : : : : : : 91 7.5.2 : : : : : : : : : : : : : : : : : : : 92 7.6 OpenJIT Peephole : : : : : : : : : : : : : : : : : : : : 93 7.6.1 : : : : : : : : : : : : : : : : : : : : : : : 95 7.6.2 Peephole : : : : : : : : : : : : : : : : : : : : : 96 7.7 OpenJIT : : : : : : : : : : : : : : : : : : : : : 97 7.7.1 : : : : : : : : : : : : : : : : : : : : : : : 99 7.7.2 : : : : : : : : : : : : : : : : : : : : : : : 100 7.7.3 : : : : : : : : : : : : : : : : : : : : : : : : : 101 7.8 OpenJIT SPARC : : : : : : : : 102 7.9 OpenJIT : : : : : : : : : : : : : : : : : : : 103 8 104 8.1 OpenJIT : : : : : : : : : : : : : : : : : 104 8.1.1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 104 8.1.2 : : : : : : : : : : : : : : : : : : : : : : : 105 8.2 OpenJIT : : : : : : : : : : : : : : : : : : : 119 8.2.1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 119 8.2.2 : : : : : : : : : : : : : : : : : : : : : : : 120 9 130 9.1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 130 9.2 : : : : : : : : : : : : : : : : : : : : : : : : : : : 131 iii

9.3 : : : : : : : : : : : : : : : : : : : : : : : : 132 133 iv

1.1 OpenJIT : : : : : : : : : : : : : : : : : : : : : : : : : : 9 2.1 JIT OpenJIT : : : : 12 2.2 OpenJIT : : : : : : : : : : : 14 3.1 OpenJIT : : : : : : : : : : : : : : : : : : 19 3.2 OpenJIT : : : : : : : : : : : : : : : : : : : 20 3.3 OpenJIT : : : : : : : 22 5.1 OpenJIT : : : : : : : : : : : : : : 32 6.1 OpenJIT : : : : : : : : : : : : : : : : : : 37 6.2 OpenJIT : : : : : : : : : : : : : : : : : : : : 39 6.3 OpenJIT : : : : : : : : : : : 44 6.4 OpenJIT : : : : : : : : : 49 6.5 OpenJIT : : : : : : : : : : : : : : : : : : : : : : : : : 54 6.6 OpenJIT : : : : : : : : : : : : : : : : : : : 58 6.7 OpenJIT : : : : : : : : : : : : : : : : : : : 64 6.8 OpenJIT : : : : : : : : : : : : : : : : : : : : 70 7.1 OpenJIT : : : : : : : : : : : : : : : : : : : 77 7.2 OpenJIT : : : : : : : : : : : : : : : : 79 7.3 OpenJIT : : : : : : : : : : : : : : : : : : : : 85 7.4 OpenJIT RTL : : : : : : : : : : : : : : : : : : : : : : : 90 7.5 OpenJIT Peephole : : : : : : : : : : : : : : : : : : : : 94 7.6 OpenJIT : : : : : : : : : : : : : : : : : : : : : 98 v

8.1 OpenJIT : : : : : : : : : : : : : : : : : : : : 106 8.2 OpenJIT : : : : : : : : : : : 108 8.3 OpenJIT : : : : : : : : : 110 8.4 OpenJIT : : : : : : : : : : : : : : : : : : : : : : : : : 112 8.5 OpenJIT : : : : : : : : : : : : : : : : : : : 114 8.6 OpenJIT : : : : : : : : : : : : : : : : : : : 116 8.7 OpenJIT : : : : : : : : : : : : : : : : : : : : 118 8.8 OpenJIT : : : : : : : : : : : : : : : : 121 8.9 OpenJIT : : : : : : : : : : : : : : : : : : : : 123 8.10 OpenJIT RTL : : : : : : : : : : : : : : : : : : : : : : : 125 8.11 OpenJIT Peephole : : : : : : : : : : : : : : : : : : : : 127 8.12 OpenJIT : : : : : : : : : : : : : : : : : : : : : 129 vi

1 1.1 NC Java Java Just-In-Time (JIT) JIT \Resource-Ecient"( ) (1) (2) JIT (1) (2) Java 1

1.2 OpenJIT Java JIT (API ) JIT 2

(1) JIT JIT Lisp Smalltalk Lisp, Smalltalk, Java (Java ) Java javac (Java Java Virtual Machine - JVM ) Just- In-Time(JIT) JIT amortization( ) Java JDK JIT JVM API JIT JIT JIT JIT JIT API OpenJIT JDK API 3

(2) OpenJIT OpenJIT Open Compiler ( ) 1982 Indiana ( MIT) Brian Smith 3-Lisp Open Compiler Java JIT JVM(Java Virtual Machine) JVM Intel 486 RISC 30 JVM JVM VM JVM 4

peephole JIT C Open Compiler JIT Open Compiler OpenJIT Java Java HBC(High performance Bytecode Compiler) C Fortran Java HBC OpenJIT 5

1.3 ( ) \Open Compiler"( ) JIT \OpenJIT" Java 6

1.4 Open Compiler ( Reection) Just-In-Time Open Compiler OpenJIT OpenJIT JIT JIT OpenJIT Java OpenJIT OpenJIT Java OpenJIT Java VM ( ) OpenJIT 7

1.1 OpenJIT 8

Java Java OpenJIT JIT 1.1: OpenJIT 9

2 2.1 (1) ( ) \Open Compiler"( ) JIT \OpenJIT" Java (2) OpenJIT JIT JDK 1.1.4 JIT JDK 1.1.4 JavaVM JIT OpenJIT 10

OpenJIT Java JavaVM Open- JIT (3) OpenJIT JIT 2.1 11

Just-In-Time JIT OpenJIT OO JIT 2.1: JIT OpenJIT 12

2.2 (1) ( ) \Open Compiler"( ) JIT \OpenJIT" (2) Open Compiler API Java ( ) OpenJIT OpenJIT (AST) JIT peephole (3) OpenJIT 2.2 OpenJIT OpenJIT 13

Java Java javac Java OpenJIT OpenJIT JavaVM Java OpenJIT RTL OpenJIT 2.2: OpenJIT 14

3 (1) OpenJIT OpenJIT OpenJIT OpenJIT Java OpenJIT OpenJIT Open- JIT OpenJIT AST OpenJIT AST AST OpenJIT OpenJIT OpenJIT OpenJIT OpenJIT 15

OpenJIT OpenJIT OpenJIT OpenJIT OpenJIT RTL (RTL) OpenJIT Peephole RTL RTL OpenJIT SPARC SPARC OpenJIT SPARC OpenJIT JavaVM OpenJIT OpenJIT Java Java Virtual Machine JIT API OpenJIT ( 3.1,3.2 ) OpenJIT 1. OpenJIT OpenJIT 2. OpenJIT Java discompiler 16

3. OpenJIT (AST) OpenJIT 4. OpenJIT 5. OpenJIT AST 6. OpenJIT 7. OpenJIT OpenJIT OpenJIT 1. OpenJIT OpenJIT 2. OpenJIT 3. OpenJIT RTL RTL 4. OpenJIT Peephole RTL 5. OpenJIT 17

6. OpenJIT SPARC RTL 7. OpenJIT : 13, 14 18

OpenJIT OpenJIT Java OpenJIT OpenJIT JavaVM OpenJIT OpenJIT OpenJIT OpenJIT Java OpenJIT 3.1: OpenJIT 19

Java OpenJIT OpenJIT OpenJIT OpenJIT RTL RTL OpenJIT Peephole RTL OpenJIT OpenJIT SPARC SPARC OpenJIT OpenJIT JavaVM Java OpenVM OpenJIT 3.2: OpenJIT 20

(2) 3.3 21

Java Java javac Java OpenJIT OpenJIT JavaVM Java OpenJIT RTL OpenJIT 3.3: OpenJIT 22

(3) Open Compiler Java Java 23

(4) 24

4 (1) : Sun Ultra 60 (UltraSPARC-II22) : 256MB : 4GB 25

(2) : OS: Sun Solaris 2.6 Java : JDK 1.1.6 26

(3) JDK JDK JIT API API OpenJIT JDK JIT JDK JIT OpenJIT OpenJIT native method abstract method (invoker) invoker Invoker OpenJIT OpenJIT OpenJIT invoker JDK OpenJIT invoker 27

5 5.1 OpenJIT OpenJIT 28

5.1.1 OpenJIT OpenJIT Java OpenJIT OpenJIT OpenJIT AST OpenJIT AST AST OpenJIT OpenJIT OpenJIT OpenJIT 29

5.1.2 OpenJIT OpenJIT OpenJIT OpenJIT OpenJIT OpenJIT OpenJIT RTL (RTL) OpenJIT Peephole RTL RTL OpenJIT SPARC SPARC OpenJIT SPARC OpenJIT JavaVM OpenJIT 30

5.2 5.1 31

Java Java javac Java OpenJIT OpenJIT JavaVM Java OpenJIT RTL OpenJIT 5.1: OpenJIT 32

5.3 5.1 33

6 OpenJIT 6.1 OpenJIT Java OpenJIT OpenJIT OpenJIT AST OpenJIT AST AST OpenJIT 34

OpenJIT OpenJIT OpenJIT 35

6.2 OpenJIT 6.1 36

7.3 OpenJIT 6.3 OpenJIT Java 6.4 OpenJIT 6.5 OpenJIT JavaVM 6.7 OpenJIT 6.6 OpenJIT 6.8 OpenJIT 6.9 OpenJIT Java OpenJIT 6.1: OpenJIT 37

6.3 OpenJIT (1) OpenJIT Sun JDK Java Native Code API(Application Programmer's Interface) API JVM OpenJIT API JDK VM OpenJIT JIT JVM (2) OpenJIT 6.2 (3) (4) (5) (6) 38

OpenJIT 6.4-6.9 OpenJIT 7.3-7.9 OpenJIT OpenJIT OpenJITJNI API 6.2: OpenJIT 39

6.3.1 OpenJIT (1) OpenJIT OpenJIT OpenJIT OpenJIT (2) 6.2 (3) (4) (5) (6) 40

6.3.2 OpenJIT (1) OpenJIT OpenJIT OpenJIT OpenJIT (2) 6.2 (3) (4) (5) (6) 41

6.3.3 OpenJIT JNI API (1) OpenJIT JNI (Java Native Interface) API JavaVM JIT JDK API OpenJIT JIT (2) 6.2 (3) (4) (5) (6) 42

6.4 OpenJIT (1) OpenJIT Java discompiler AST() OpenJIT (2) OpenJIT 6.3 (3) (4) AST (5) (6) 43

AST AST 6.3: OpenJIT 44

6.4.1 (1) AST (VMInstruction ) AST (2) 6.3 (3) (4) (5) (6) 45

6.4.2 (1) (VMInstruction ) (2) 6.3 (3) (4) (5) (6) 46

6.4.3 AST (1) (VMInstruction ) Java AST (2) 6.3 (3) (4) AST (5) (6) 47

6.5 OpenJIT (1) OpenJIT OpenJIT (AST) OpenJIT (2) OpenJIT 6.4 (3), AST (4) AST (5) (6) 48

AST AST 6.4: OpenJIT 49

6.5.1 (1) AST (2) 6.4 (3) AST (4) (5) (6) 50

6.5.2 (1) AST AST (2) 6.4 (3) (4) AST (5) (6) 51

6.5.3 (1) AST (2) 6.4 (3) (4) (5) (6) 52

6.6 OpenJIT (1) OpenJIT OpenJIT OpenJIT OpenJIT OpenJIT (2) OpenJIT 6.5 (3) () AST (4) (5) (6) 53

AST OpenJIT OpenJIT OpenJIT 6.5: OpenJIT 54

6.6.1 (1) OpenJIT OpenJIT OpenJIT AST (2) 6.5 (3) (4) (5) (6) 55

6.6.2 (1) OpenJIT AST OpenJIT (2) 6.5 (3) (4) (5) (6) 56

6.7 OpenJIT (1) OpenJIT AST (2) OpenJIT 6.6 (3) AST (4) (5) (6) 57

AST AST 6.6: OpenJIT 58

6.7.1 AST (1) AST (2) 6.6 (3) AST (4) (5) (6) 59

6.7.2 (1) AST AST (2) 6.6 (3) (4) (5) (6) 60

6.7.3 (1) AST AST AST (2) 6.6 (3) (4) (5) (6) 61

6.7.4 (1) AST AST AST (2) 6.6 (3) (4) (5) (6) 62

6.8 OpenJIT (1) OpenJIT OpenJIT (2) OpenJIT 6.7 (3) (4) (5) (6) 63

6.7: OpenJIT 64

6.8.1 (1) (2) 6.7 (3) (4) (5) (6) 65

6.8.2 (1) (2) 6.7 (3) (4) (5) (6) 66

6.8.3 (1) (2) 6.7 (3) (4) (5) (6) 67

6.8.4 (1) (2) 6.7 (3) (4) (5) (6) 68

6.9 OpenJIT (1) OpenJIT OpenJIT AST AST Java OpenJIT (2) OpenJIT 6.8 (3) AST (4) AST (5) (6) 69

AST AST AST AST AST 6.8: OpenJIT 70

6.9.1 AST (1) AST AST AST AST (2) 6.8 (3) (4) (5) (6) 71

6.9.2 AST (1) AST AST AST (2) 6.8 (3) AST (4) (5) (6) 72

6.9.3 AST (1) AST AST (2) 6.8 (3) (4) AST (5) (6) 73

7 OpenJIT 7.1 OpenJIT OpenJIT OpenJIT OpenJIT OpenJIT OpenJIT RTL (RTL) OpenJIT Peephole RTL RTL OpenJIT SPARC SPARC OpenJIT SPARC OpenJIT 74

JavaVM OpenJIT 75

7.2 OpenJIT 7.1 76

Java 7.4 OpenJIT 6.3 OpenJIT 7.3 OpenJIT 7.5 OpenJIT RTL RTL 7.6 OpenJIT Peephole RTL 7.7 OpenJIT 7.8 OpenJIT SPARC SPARC 7.9 OpenJIT OpenJIT JavaVM Java OpenVM OpenJIT 7.1: OpenJIT 77

7.3 OpenJIT (1) Java (2) OpenJIT 7.2 (3) (4) SPARC (5) (6) 78

OpenJIT OpenJIT RTL OpenJIT Peephole 7.2: OpenJIT 79

7.3.1 (1) SPARC OpenJIT OpenJIT RTL OpenJIT Peephole (2) 7.2 (3) (4) SPARC (5) (6) 80

7.3.2 (1) JDK Java constant pool constant pool (2) 7.2 (3) (4) (5) (6) 81

7.3.3 (1) JDK (2) 7.2 (3) (4) (5) (6) 82

7.3.4 (1) (2) 7.2 (3) (4) (5) (6) 83

7.4 OpenJIT (1) Java (2) OpenJIT 7.3 (3) (4) (5) (6) 84

7.3: OpenJIT 85

7.4.1 (1) constant pool constant pool (2) 7.3 (3) (4) (5) (6) 86

7.4.2 (1) constant pool signature Java (2) 7.3 (3) (4) (5) (6) 87

7.4.3 (1) boolean long oat double (2) 7.3 (3) (4) (5) (6) 88

7.5 OpenJIT RTL (1) OpenJIT RTL(Register Transfer Language) OpenJIT RTL (2) OpenJIT RTL 7.4 (3) (4) RTL (5) (6) 89

RTL 7.4: OpenJIT RTL 90

7.5.1 (1) (2) 7.4 (3) (4) (5) (6) 91

7.5.2 (1) Java RTL (2) 7.4 (3) (4) RTL (5) (6) 92

7.6 OpenJIT Peephole (1) OpenJIT RTL RTL RTL Peephole Peephole redundant load/store elimination Java Peephole Java RTL (2) OpenJIT Peephole 7.5 (3) RTL (4) RTL (5) (6) 93

RTL Peephole RTL 7.5: OpenJIT Peephole 94

7.6.1 (1) RTL (2) 7.5 (3) (4) (5) (6) 95

7.6.2 Peephole (1) RTL Peephole constant folding (2) 7.5 (3) RTL (4) RTL (5) (6) 96

7.7 OpenJIT (1) / (2) OpenJIT 7.6 (3) (4) / (5) (6) 97

7.6: OpenJIT 98

7.7.1 (1) (2) 7.6 (3) (4) (5) (6) 99

7.7.2 (1) (2) 7.6 (3) (4) (5) (6) 100

7.7.3 (1) (2) 7.6 (3) (4) / (5) (6) 101

7.8 OpenJIT SPARC ( : ) 102

7.9 OpenJIT ( : ) 103

8 8.1 OpenJIT 8.1.1 OpenJIT 104

8.1.2 (1) OpenJIT OpenJIT 8.1 105

(1-C1) OpenJIT OpenJIT OpenJIT (1-C4) (1-C3) (1-C2) OpenJIT OpenJITJNI API 8.1: OpenJIT 106

(2) OpenJIT OpenJIT 8.2 (2-D1) (2-D2) (2-D3) AST AST 107

(2-D1) (2-C1) (2-C2) AST AST (2-D3) (2-D2) 8.2: OpenJIT 108

(3) OpenJIT OpenJIT 8.3 (3-D1) (3-D2) AST OpenJIT (AST) (3-D3) AST (2-D3) AST 109

(3-D1) AST (3-D2) (3-C2) (3-C1) AST (3-D3) 8.3: OpenJIT 110

(4) OpenJIT OpenJIT 8.4 (4-D1) OpenJIT AST (7-D3) 111

AST (4-C1) (4-C4) OpenJIT (4-C2) (4-C3) OpenJIT (4-C5) OpenJIT (4-D1) 8.4: OpenJIT 112

(5) OpenJIT OpenJIT 8.5 (5-D1) AST OpenJIT (2-D3) AST OpenJIT (3-D3) (5-D2) OpenJIT (2-D2) (5-D3) a priori (5-D4) (5-D5) AST AST (5-D6) AST 113

AST (5-D1) (5-D2) (5-D3) AST (5-C2) (5-C3) (5-D4) (5-C1) (5-D5) (5-D6) 8.5: OpenJIT 114

(6) OpenJIT OpenJIT 8.6 (6-D1) OpenJIT (2-D2) (6-D2) OpenJIT (5-D5) (6-D3) OpenJIT (5-D4) (6-D4) OpenJIT (5-D6) (6-D5) 115

(6-D2) (6-D1) (6-D3) (6-D4) (6-C2) (6-C1) (6-C3) (6-C4) (6-D5) 8.6: OpenJIT 116

(7) OpenJIT OpenJIT 8.7 (7-D1) AST OpenJIT (2-D3) AST OpenJIT (3-D3) (7-D2) OpenJIT (7-D3) AST AST AST 117

AST (7-D1) (7-D2) AST (7-C2) (7-C1) AST AST AST (7-D3) 8.7: OpenJIT 118

8.2 OpenJIT 8.2.1 OpenJIT 119

8.2.2 (1) OpenJIT OpenJIT 8.8 (8-D1) OpenJIT (8-D2) SPARC SPARC 120

OpenJIT (8-C1) (8-D1) (8-C4) OpenJIT RTL (8-C2) OpenJIT Peephole (8-C3) (8-D2) (8-C6) (8-C5) 8.8: OpenJIT 121

(2) OpenJIT OpenJIT 8.9 (9-D1) OpenJIT (9-D2) 122

(9-D1) (9-D2) (9-C1) (9-C2) 8.9: OpenJIT 123

(3) OpenJIT RTL OpenJIT RTL 8.10 (10-D1) OpenJIT (9-D2) (10-D2) (10-D3) RTL RTL 124

(10-D1) (10-D2) RTL (10-D3) 8.10: OpenJIT RTL 125

(4) OpenJIT Peephole OpenJIT Peephole 8.11 (11-D1) OpenJIT RTL (10-D2) (11-D2) RTL OpenJIT RTL RTL(10-D3) (11-D3) RTL Peephole RTL RTL 126

(11-D1) RTL (11-D2) Peephole (11-C1) RTL (11-D3) 8.11: OpenJIT Peephole 127

(5) OpenJIT OpenJIT 8.12 (12-D1) RTL (12-D2) / / (12-D3) 128

(12-D1) (12-C1) (12-C2) (12-D2) (12-D3) 8.12: OpenJIT 129

9 9.1 Java Class 130

9.2 Java Class The Java Virtual Machine Specication[1] 131

9.3 132

[1] Sun Microsystems, Inc. \The Java Virtual Machine Specication", 1996. 133