運行時系統

運行時系統

運行時系統指一種把半編譯的運行碼在目標機器上運行的環境。所有基於運行時系統的語言都是半編譯半解釋性語言,典型的如 Java .NET 框架下的 C#Visual Basic.NET 等。

基本介紹

  • 軟體名稱:運行時系統
  • 軟體語言:中文
  • 外文名:run-time system
  • 又稱運行環境
簡介,JAVA的運行環境,

簡介

運行環境是由英語的“runtime environment”直譯,意指一種把半編譯的執行碼在目標機器上運行的環境。簡單地說就是運行環境。拿 Cocoa 來說,包括如何載入 解析 動態連結你編譯生成的 Mach-O 檔案 如何為動態載入資源 二進制代碼等提供支持的等等環境綜合就是運行時。
運行時系統是一種介乎編譯(Compile)和解釋(Interpret)的運行方式,由編譯器(Compiler)首先將原始碼編譯為一種中間碼,在執行時由運行時(Runtime)充當解釋器(Interpreter)對其解釋。該過程以運行時為先決條件,因此系統被稱為運行時系統。
Java 的運行時被稱為Java運行環境(Java Runtime Environment, JRE);.NET 框架下的運行時有兩種,一種是運行於Microsoft Windows上的公共語言運行庫(Common Language Runtime,CLR),另一種是 Xamarin 推出的跨平台運行時Mono

JAVA的運行環境

運行時系統就是虛擬機是運行時的環境,狀態以及所有的資源。假定作業系統為Windows。
以Java為例:作業系統與虛擬機以及程式語言的關係:摘要:作業系統給為此平台編寫的程式提供記憶體,I/O,網路等底層接口,Java程式執行過程中,這個Java程式被載入到Java虛擬機中,則Java的虛擬機進程是一個運作中的Windows程式,底層調用的還是作業系統暴露給程式的接口。虛擬機在編寫的時候,其實是C/C++以及少量彙編語言,連同Windows提供的API 函式的接口代碼一起,那么二進制程式就能夠運行在作業系統上,訪問作業系統的資源,實現程式語言所期望的行為或者功能。
程式語言與虛擬機的關係:從狹義上說程式語言本身是一組數字字母等符號組成的文本,那么按照約定的格式、文法編寫出 編譯器所認識的 原始碼,就可以被編譯或者解釋。那么解釋成什麼?從計算機最底層講:CPU執行的是二進制代碼,那么我們簡單地認為是彙編語言,ADD A1,#3(下一步直接能轉換成01010),之類的,那么虛擬機是怎么做的呢,Java虛擬機也定義了類似彙編代碼指令集,如IADD,LADD之類的,分別是int型、long型數值相加的指令。而在編譯的時候,最終編譯成虛擬機所能認識的二進制位元組碼,在運行的時候,他會解釋並執行這些位元組碼所代表的意義。那么請看:Java程式
對編譯之後的位元組碼進行反編譯得到 如下的“彙編代碼”
運行時系統
JAVA程式
運行時系統
彙編代碼
那么虛擬機吃進這些彙編的二進制位元組碼的時候,虛擬機中所發生的一些事情,就由代碼決定了。解釋一下部分代碼:對於第一個方法,代碼里並沒有寫,而位元組碼里有Language()方法,他就是進行類實例化和初始化用的,當其他代碼需要使用這個Language類的時候,在實例化一個這個類對象的時候,虛擬機則會執行Language()這個構造方法,此處是默認提供的實例構造方法,在運行時這個方法叫做,(如果有類的初始化方法,還有一個叫做),而只有在運行時(runtime)虛擬機才會調用這樣的方法。invokespecial 則就是創建實例的意思,#1則將實例放在SLOT 1。

相關詞條

熱門詞條

聯絡我們