摘自:http://www.diybl.com/course/3_program/java/javajs/20081124/152528.html
什麼是編譯性語言、解釋性語言和指令碼語言
電腦不能直接理解進階語言,只能直接理解機器語言,所以必須要把進階語言翻譯成機器語言,電腦才能值型進階語言編寫的程式。
翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把程式編譯成為機器語言的檔案,比如exe檔案,以後要啟動並執行話就不用重新翻譯了,直接使用編譯的結果就行了(exe檔案),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程式執行效率高。
解釋則不同,解釋性語言的程式不需要編譯,省了道工序,解釋性語言在運行程式的時候才翻譯,比如解釋性basic語言,專門有一個解譯器能夠直接執行basic程式,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。
什麼是指令碼語言?
1.指令碼語言(JavaScript,VBscript等)介於HTML和C,C++,Java,C#等程式設計語言之間。
HTML通常用于格式化和鏈結文本。而程式設計語言通常用於向機器發出一系列複雜的指令。
2.指令碼語言與程式設計語言也有很多相似地方,其函數與程式設計語言比較相象一些,其也涉及到變數。與程式設計語言之間最大的區別是程式設計語言的文法和規則更為嚴格和複雜一些.
3.與程式碼的關係:指令碼也是一種語言,其同樣由程式碼組成。
註:指令碼語言一般都有相應的指令碼引擎來解釋執行。 他們一般需要解譯器才能運行。JAVASCRIPT,ASP,PHP,PERL都是指令碼語言。C/C++編譯、連結後,可形成獨立執行的exe檔案。
4.指令碼語言是一種解釋性的語言,例如vbscript,javascript,installshield script等等,它不象c/c++等可以編譯成二進位代碼,以可執行檔的形式存在.
指令碼語言不需要編譯,可以直接用,由解譯器來負責解釋。
5.指令碼語言一般都是以文本形式存在,類似於一種命令.
舉個例子說,如果你建立了一個程式,叫aaa.exe,可以開啟.aa為副檔名的檔案.
你為.aa檔案的編寫指定了一套規則(文法),當別人編寫了.aa檔案後,你的程式用這種規則來理解編寫人的意圖,並作出回應.那麼,這一套規則就是指令碼語言.
JAVA語言
java很特殊,java程式也需要編譯,但是沒有直接編譯稱為機器語言,而是編譯稱為位元組碼,然後用解釋方式執行位元組碼。Java既可以被編譯,也可以被解釋。通過編譯器,可以把Java程式翻譯成一種中間代碼 - 稱為位元組碼 - 可以被Java解譯器解釋的獨立於平台的代碼。通過解譯器,每條Java位元組指令被分析,然後在電腦上運行。只需編譯一次,程式運行時解釋執行。說明了它是如何工作的