對於一門語言實現一種通用執行環境,能夠叫作虛擬機(系統與進程的通用平臺),也能夠叫作解釋器。須要實現如下幾個部分:
1 語言內置對象在虛擬機中的實現,通常有字符串,列表,hash,object對象等,字符串通常採用字符串池來實現。
2 內存管理,包括了內存分配,內存回收,垃圾回收等內容
3 獨立於os平臺的中間碼,java字節碼,python字節碼等
4 虛擬機的執行字節碼的部分:模擬cpu在執行語言層的「彙編」代碼
5 模塊加載
6 編譯過程
7 任務執行粒度,線程,進程,協程以及實現等內容
8 線程/進程/協程的通訊與同步機制
下面簡單對幾種語言進行對比,只是做爲一種理解的劃分(很不全面)java