什么是腳本語言?
腳本語言是一種介於標記語言和編程語言之間的語言,沒有編程語言復雜、嚴謹的語法和規則。
腳本語法比較簡單,比較容易掌握,與編程語言也有許多相似之處,其函數與編程語言比較相似一些。與編程語言之間最大的區別是編程語言的語法和規則更為嚴格和復雜一些。
腳本語言是解釋性的語言,例如Python、javascript(目前接觸過的)等等,它不象c\c++等可以編譯成二進制代碼,以可執行文件的形式存在。而腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。
什么是編譯語言?
編譯語言是程序在執行之前需要一個專門的編譯過程,運行時不需要重新編譯,直接使用編譯的結果就行了,脫離其語言環境獨立執行。程序執行效率高,使用方便。但程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件才能執行。因需依賴編譯器,故跨平台性差些。
兩者的區別:
抽象的級別不同: 腳本語言更抽象。在腳本語言中,存在有高級的數據結構,如列表和字典結構,和對這種結構簡單方便的嵌套和操作。編譯語言有比較明確的定義等等。
類型定義不同: 腳本語言對類型的定義就比較松散,不需要類型聲明,而且在運行時自動進行動態類型檢查。而編譯語言通常是強類型定義或靜態定義,也就是說變量的類型在程序中指定了。
執行方式不同: 腳本語言是解釋成指令被立即執行。這樣完全將編譯過程從編輯-編譯-運行循環中去掉了。而編譯語言的程序被編譯成可執行的二進制。
運行速度不同: 腳本語言是解釋執行的,在運行時解釋每一條語句然后執行。這樣比編譯執行的語言要慢。而編譯語言因為編譯成機器碼,可以直接運行,所以在運行速度上快比較快。