前言
這里,我們打算對虛幻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ì)特點是運行在虛擬機上的軟件被局限在虛擬機提供的資源里——它不能超出虛擬世界。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26