前言

這里,我們打算對(duì)虛幻4 中藍(lán)圖虛擬機(jī)的實(shí)現(xiàn)做一個(gè)大概的講解,如果對(duì)其它的腳本語(yǔ)言的實(shí)現(xiàn)有比較清楚的認(rèn)識(shí),理解起來會(huì)容易很多,我們先會(huì)對(duì)相關(guān)術(shù)語(yǔ)進(jìn)行一個(gè)簡(jiǎn)單的介紹,然后會(huì)對(duì)藍(lán)圖虛擬機(jī)的實(shí)現(xiàn)做一個(gè)講解。

術(shù)語(yǔ)

編程語(yǔ)言一般分為編譯語(yǔ)言和解釋型語(yǔ)言。

編譯型語(yǔ)言

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

解釋性語(yǔ)言

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

然而關(guān)于Java、C#等是否為解釋型語(yǔ)言存在爭(zhēng)議,因?yàn)樗鼈冎髁鞯膶?shí)現(xiàn)并不是直接解釋執(zhí)行的,而是也編譯成字節(jié)碼,然后再運(yùn)行在jvm等虛擬機(jī)上的。

 

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

什么是虛擬機(jī)

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

延伸閱讀

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