異曲同工之妙之java虛擬機和php內核

由解釋性語言與編譯性語言的區別,來說明java虛擬機和php內核有異曲同工之妙.

解釋性語言與編譯性語言的區別在於,解釋性語言是把用戶的邏輯語言翻譯成機器語言來執行,有人說,這和編譯性語言有什麼差別?有的,之間多了一步“翻譯”,例如PHP的詞法解析與語法解析就是一種翻譯。

兩種類型的語言同樣是告訴機器如何操作,只是方法不一樣而已。看下例子:

如果,我要寫一個加法運算程序,用兩種不同語言會是怎樣的呢,看下面:

例如編譯性語言C/C++

#<iostream>
using namespace std;
 
int main(void){
         int a,b;
         cin>>a>>b;
         cout<<a+b;
         return 0;
}


解釋性語言PHP

<?php
         $a=$_GET[“a”];
         $b=$_GET[“b”];
         echo $a+$b;
?>


 

仔細一看,好像並沒有什麼差別,其實,邏輯上來說,的確沒有什麼差別,那麼爲什麼還要有解釋性語言的誕生呢?有編譯性語言就好了嘛。原則上是這樣的,可是,人們太懶啊,編譯語言如果有了問題,每次都要重新編譯(有這個時間,還不如去找女朋友),而解釋性語言是如何俘虜人們的歡心呢?方便,快速。。。。說回上面的程序吧:

第一個,簡簡單單,編譯器編譯,生成可執行程序(如exe),over

第二個,把代碼統統發給一個可執行程序(如jvm,php內核),可執行文件會自動處理該代碼邏輯,翻譯,再執行,不需要編譯

 

Java虛擬機和PHP內核其實是在做着同樣的事情,而且底層都是使用C來實現的,刨除語法之類的,確實有着異曲同工之妙。

發佈了45 篇原創文章 · 獲贊 25 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章