授業-ソフトウェア工学(IndexPage) >> 2017年度-ソフトウェア工学 >> 2017年度-ソフトウェア工学-第02回 >> ダイジェスト
授業-2017年度-ソフトウェア工学-第02回-ダイジェスト (SoftEng201702Digest)
(公開)
月
09
10
10
10
10
11
11
11
11
12
12
12
12
01
日
27
04
11
18
25
01
08
15
29
06
13
20
27
17
頁
実習
例題
課題
ダイジェスト
テキスト
Q&A
アンケート
↑
Contents
ダイジェスト
概念編
言語処理系
言語処理系: コンパイラとインタープリタ
仮想機械アーキテクチャ
- JVM(Java Virtual Machine)
- コンパイルしたコード(オブジェクトコード)が,いろいろなCPU上で動くように,仮想機械アーキテクチャを採用している
- 仮想機械はソフトウェアで実現されている
- JVMをハードウェアでネイティブに実行できるCPUもある.
- たとえば,Phone/iPhone 3G/Raspberry Piなどにも採用されているARM CPU のJazelleテクノロジ
- javacコマンド=コンパイラ(翻訳系)
- Javaのソースコードを,JVMの機械語(バイトコード)へ変換する言語処理系
- javaコマンド=JVMの実行系(インタープリタとして)
- JVMの機械語(バイトコード)を逐次実行するインタープリタ
- classファイルは,Javaソースプログラムをコンパイルした結果であるJVM(Java Virtual Machine=仮想機械)用機械語(バイトコード)が入っています.
- JVMをハードウェアでネイティブに実行できるCPUもある.
- たとえば,Phone/iPhone 3G/Raspberry Piなどにも採用されているARM CPU のJazelleテクノロジ
- C言語やC++言語では,一般的には,特定のCPUの機械語を生成するネイティブコードコンパイラが使われます
- たとえば,Windowsのコマンドには,拡張子がexeとなっている実行可能ファイルがありますね.このファイルの中には,使用しているPCのCPUの機械語が入っています(機械語は二進数として読めますので,バイナリー=binaryと呼ぶことがあります)
- これに対し,現実のハードウェアCPUではなく,仮想的にソフトウェアで実現されたCPU(いわばCPUシミュレータですね)を仮想機械と呼びます.
- JVMはそうした仮想機械の一つであり,クラスファイルはそのJVMの機械語プログラムです.
- クラスという単位がどういうものかは,今後授業の中でやっていきますが,1つのクラス定義に対しclassファイルは一つ作られます
仮想計算機アーキテクチャ
コンパイラ方式とインタープリタ方式のハーフ
仮想計算機アーキテクチャ
コンパイルと仮想計算機での実行
コンパイルと仮想計算機での実行
実習編
最初のプログラム
最初のプログラム
当面の間のプログラム概形(テンプレート)
- 当面の間のプログラム概形(テンプレート)