授業-ソフトウェア工学(IndexPage) >> 2017年度-ソフトウェア工学 >> 2017年度-ソフトウェア工学-第02回 >> ダイジェスト


授業-2017年度-ソフトウェア工学-第02回-ダイジェスト (SoftEng201702Digest)

(公開) 





ダイジェスト

概念編

言語処理系

言語処理系: コンパイラとインタープリタ


仮想機械アーキテクチャ

  • JVM(Java Virtual Machine)
    • コンパイルしたコード(オブジェクトコード)が,いろいろなCPU上で動くように,仮想機械アーキテクチャを採用している
    • 仮想機械はソフトウェアで実現されている
    • JVMをハードウェアでネイティブに実行できるCPUもある.
  • javacコマンド=コンパイラ(翻訳系)
  • javaコマンド=JVMの実行系(インタープリタとして)
  • classファイルは,Javaソースプログラムをコンパイルした結果であるJVM(Java Virtual Machine=仮想機械)用機械語(バイトコード)が入っています.
  • JVMをハードウェアでネイティブに実行できるCPUもある.
  • C言語やC++言語では,一般的には,特定のCPUの機械語を生成するネイティブコードコンパイラが使われます
    • たとえば,Windowsのコマンドには,拡張子がexeとなっている実行可能ファイルがありますね.このファイルの中には,使用しているPCのCPUの機械語が入っています(機械語は二進数として読めますので,バイナリー=binaryと呼ぶことがあります)
    • これに対し,現実のハードウェアCPUではなく,仮想的にソフトウェアで実現されたCPU(いわばCPUシミュレータですね)を仮想機械と呼びます.
      • JVMはそうした仮想機械の一つであり,クラスファイルはそのJVMの機械語プログラムです.
      • クラスという単位がどういうものかは,今後授業の中でやっていきますが,1つのクラス定義に対しclassファイルは一つ作られます

仮想計算機アーキテクチャ

コンパイラ方式とインタープリタ方式のハーフ

仮想計算機アーキテクチャ

コンパイルと仮想計算機での実行

コンパイルと仮想計算機での実行


実習編

最初のプログラム

最初のプログラム

   1 // 注釈
   2 public class P001Hello {
   3     public static void main( String[] args ) {
   4         System.out.println("こんにちは");
   5     }
   6 }

当面の間のプログラム概形(テンプレート)

  • 当面の間のプログラム概形(テンプレート)

   1 // 注釈
   2 public class クラス名 {
   3     public static void main( String[] args ) {
   4         // 実行文(セミコロンで終わる)
   5         //       ....
   6         // 実行文(セミコロンで終わる)
   7     }
   8 }


SoftEng: SoftEng201702Digest (last edited 2017-10-05 15:57:10 by TadashiIijima)