前言

這里,我們打算對虛幻4 中藍圖虛擬機的實現(xiàn)做一個大概的講解,如果對其它的腳本語言的實現(xiàn)有比較清楚的認識,理解起來會容易很多,我們先會對相關術語進行一個簡單的介紹,然后會對藍圖虛擬機的實現(xiàn)做一個講解。

術語

編程語言一般分為編譯語言和解釋型語言。

編譯型語言

程序在執(zhí)行之前需要一個專門的編譯過程,把程序編譯成 為機器語言的文件,運行時不需要重新翻譯,直接使用編譯的結果就行了。程序執(zhí)行效率高,依賴編譯器,跨平臺性差些。如C、C++、Delphi等.

解釋性語言

編寫的程序不進行預先編譯,以文本方式存儲程序代碼。在發(fā)布程序時,看起來省了道編譯工序。但是,在運行程序的時候,解釋性語言必須先解釋再運行。

然而關于Java、C#等是否為解釋型語言存在爭議,因為它們主流的實現(xiàn)并不是直接解釋執(zhí)行的,而是也編譯成字節(jié)碼,然后再運行在jvm等虛擬機上的。

 

UE4中藍圖的實現(xiàn)更像是lua的實現(xiàn)方式,它并不能獨立運行,而是作為一種嵌入宿主語言的一種擴展腳本,lua可以直接解釋執(zhí)行,也可以編譯成字節(jié)碼并保存到磁盤上,下次調(diào)用可以直接加載編譯好的字節(jié)碼執(zhí)行。

什么是虛擬機

虛擬機最初由波佩克[a]與戈德堡定義為有效的、獨立的真實機器的副本。當前包括跟任何真實機器無關的虛擬機。虛擬機根據(jù)它們的運用和與直接機器的相關性分為兩大類。系統(tǒng)虛擬機(如VirtualBox)提供一個可以運行完整操作系統(tǒng)的完整系統(tǒng)平臺。相反的,程序虛擬機(如Java JVM)為運行單個計算機程序設計,這意謂它支持單個進程。虛擬機的一個本質(zhì)特點是運行在虛擬機上的軟件被局限在虛擬機提供的資源里——它不能超出虛擬世界。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式