回答
我不太明白你的問題。除了PHP,VBScript,COMMAND.COM
和Unix外殼,我無法真正想到任何鬆散類型的腳本語言。一些非鬆散類型的腳本語言的例子是Python,Ruby,Mondrian,JavaFXScript,PowerShell,Haskell,Scala,ELisp,Scheme,AutoLisp,Io,Ioke,Seph,Groovy,Fantom,Boo,Cobra,Guile ,Slate,Smalltalk,Perl,…
Ren't Python和Perlo鬆散地鍵入? – nbrogi 2014-11-28 23:54:15
首先,您的術語存在一些問題。有沒有這樣的東西,如鬆散類型語言和術語腳本語言也很模糊,最通常指的是所謂的動態編程語言。
有弱鍵入有關如何嚴格是不同類型之間的分辨與強類型(即,如果1 + "2"
收率3
或錯誤)。
而且有動態與靜態類型,大約是當類型信息確定 - 同時或之前運行。
那麼現在什麼是動態語言?解釋而不是編譯的語言? 當然不是,因爲語言運行的方式從來不是語言的固有特性,而是純粹的實現細節。事實上,可以有解釋者和編譯器來用於同一種語言。 Haskell有GHC和GHCi,即使C有Ch解釋器。
但是,那麼什麼是動態語言?我想通過如何與他們合作來定義他們。
在動態語言中,您喜歡快速爲您的程序創建原型,並讓它以某種方式工作。你不想做的是正式指定你的程序的行爲,你只是希望它的行爲像打算。
因此,如果你寫
foo = greatFunction(42)
foo.run()
在
腳本語言
,你會簡單地假設有一些greatFunction
採取了許多會返回一些對象,你可以run
。你不以任何方式證明這是編譯器 - 沒有預定義的類型,沒有IRunnable
...。這會自動讓你在的域名中動態輸入。
但也有類型推斷也。類型推斷意味着在一個靜態類型的語言中,編譯器會自動找出你的類型。結果代碼可以非常簡潔,但仍然是靜態類型。以舉例
square list = map (\x -> x * x) list
在Haskell。 Haskell提前計算出涉及的所有類型。我們有list
是一個數字列表,map
某些函數將某些其他函數應用於列表中的任何元素,並且square
可生成另一個數字列表中的數字列表。
儘管如此,編譯器可以提前證明一切正常 - 任何支持的操作都是正式指定的。因此,我從來不會將Haskell稱爲腳本語言,儘管它可以達到類似的表現水平(如果不是更多!)。
因此,所有的一切,腳本語言是動態類型因爲它允許您原型運行的系統,而無需指定,但假設參與每一個操作存在,這是使用什麼腳本語言對於。
- 1. 什麼是腳本語言?
- 2. C++製作鬆散類型的語言解析器
- 3. 爲什麼要嵌入腳本語言?
- 4. Lisp鬆散地是什麼類型的lambda演算?
- 5. 爲什麼說ActionScript是腳本語言,即使長大了很多,編譯過語言?
- 6. 爲什麼不需要在腳本語言中指定變量的類型?
- 7. 爲腳本語言選擇正確的數據類型
- 8. 鬆散類型的indexOf()?
- 9. 爲什麼解釋/腳本語言很少有多行註釋?
- 10. 什麼類型是最好的在C#中鬆散的數字索引列表?
- 11. 寫什麼語言的NSIS腳本?
- 12. Python是語言還是腳本語言?
- 13. 什麼是鬆散耦合的代碼?
- 14. 鬆散XAML的侷限性是什麼?
- 15. 什麼是基本文件操作的良好腳本語言?
- 16. ,要學什麼windows腳本語言?
- 17. 帶參數的多語言腳本
- 18. 「腳本類型」和「腳本語言」聲明之間的區別
- 19. 假設數據類型的鬆散類型數據集
- 20. 什麼是完全類型推斷的語言?這種語言的限制?
- 21. 編程語言和腳本語言有什麼區別?
- 22. PHP多語言腳本
- 23. MYSQL中的多語言數據類型
- 24. 什麼是大型SOA系統的最佳編程語言?
- 25. 什麼是WinNT環境的腳本語言?
- 26. 內核Makefile中的腳本語言是什麼?
- 27. 什麼是可用於Jenkins CI的所有腳本語言?
- 28. 什麼是Flash和Facebook API之間建議的腳本語言?
- 29. Animate CC中用於HTML5 Canvas的腳本語言是什麼?
- 30. 什麼語言是寫入腳本的初始編譯器?
我認爲如果這是一個社區維基,你會得到更好的答案(但是我認爲你現在不能發佈它;你可以用代表> 100)。這並不是真的有一個正確的答案。 – 2010-11-21 15:48:09