可能重複:
When is a language considered a scripting language?腳本或編程語言?
是什麼編程語言和腳本語言之間的區別?我曾經在C/C++上工作了一段時間,現在我開始看Python,我被告知這是一種很好的腳本語言this post。
但是,當我在學習時,我發現所有可以用C完成的工作都可以用Python來完成!那麼腳本和編程語言之間真正的真正區別是什麼?
可能重複:
When is a language considered a scripting language?腳本或編程語言?
是什麼編程語言和腳本語言之間的區別?我曾經在C/C++上工作了一段時間,現在我開始看Python,我被告知這是一種很好的腳本語言this post。
但是,當我在學習時,我發現所有可以用C完成的工作都可以用Python來完成!那麼腳本和編程語言之間真正的真正區別是什麼?
我確實相信這個問題有點誤導。當然,腳本語言也是一種編程語言。但有差異:
編譯和解釋語言之間。
傳統上,像c這樣的語言被編譯成可以直接被CPU理解的機器代碼。另一方面,「腳本語言」通常不會在執行前被編譯成機器代碼,而是使用解釋器進行解釋。 解釋型語言的優勢通常在於它具有更快的開發週期,因爲不需要編譯,並且從一個平臺移動到另一個平臺更容易。例如。 python腳本可以在windows,linux,mac上執行而不用修改。另一方面,編譯語言的優點是通常執行得更快。
我經常使用「通常」和「傳統」,因爲現在有技術使得繪製線更加困難。例如。有可能將python代碼直接編譯爲本機代碼,並且還有用於c代碼的解釋器。此外,「Just In Time」編譯器和虛擬機使得在這裏繪製黑白圖像更加困難。
更多:http://en.wikipedia.org/wiki/Interpreted_language
鴨類型化和強類型語言
一般腳本語言是鴨類型的,這意味着一個變量可分配任何類型的,並且沒有或僅是可選的檢查類型。在C和C++等另一端的編譯語言中,每個變量都是鍵入的,它只能保存該類型的值。 鴨式語言的優點通常是它需要較少的物理類型和較少的代碼(例如,類型名稱可以留給函數聲明等),並且編寫可重用函數更容易。 強類型語言的優勢通常在於它可以幫助程序員在運行應用程序之前發現錯誤。例如。編譯器會抱怨類型錯誤,而不需要運行發生錯誤的具體行。特別是在有許多貢獻者的大型項目中,這可以成爲一個驚人的優勢。