2010-04-04 73 views
33

我想知道是否有任何靜態類型,可嵌入腳本語言。 Python,JavaScript等是優秀的語言,但它們是動態類型的(即在運行時檢查類型)。我只是想知道是否有人知道任何可以嵌入到C++應用程序中的靜態類型的腳本語言?是否有任何靜態類型的可嵌入腳本語言?

+5

python如何鬆散地鍵入?在python中,很多操作拋出一個TypeError,這隻會導致C++中的未定義行爲。 – sepp2k 2010-04-04 19:08:55

+2

根據定義(@runtime,也就是),它們中的大多數(Python,Ruby,...)可以被視爲強類型。你可能想擴展你的特定'強類型'定義。 – ChristopheD 2010-04-04 19:09:33

+1

哦,親愛的,我可以看到一個bunfight醞釀出這個... – skaffman 2010-04-04 19:09:51

回答

3

嗯,有Ch - 可嵌入的C/C++解釋

+0

你可以擴大一點Ch嗎?它是跨平臺的嗎?它是根據GPL還是不同的許可證發佈的?文檔是最新的嗎? – 2010-04-04 19:17:28

+0

@George:我還沒有真正嘗試過(個人我沒有看到這一點),但它是跨平臺和免費的。它似乎是有據可查的,並且還有一個商業版本(可能是)全面支持 – 2010-04-05 04:44:16

+7

在什麼樣的世界中C算作'靜態類型'? – 2010-06-14 14:47:53

2

如何C#?退房單的實現的C#「腳本語言」 REPL(http://www.mono-project.com/CsharpRepl

更新:如果你不知道一個REPL是什麼,這是你所看到的,當你不帶任何參數運行Python或IRB

11

我建議你退房Angelscript。我們在Warsow上使用它,它很不錯。它具有所有您期望的功能,如類,內存管理等。由於它是靜態類型的,因此它可以爲您提供更好的優化,因此字節碼的結束速度比其他腳本語言快。

但是,AS並不像Lua那樣容易使用,並且只有一個.zip下載 - 這意味着沒有.exe安裝程序,.deb軟件包,.dmg或任何其他文件。一般來說,這是好的,因爲你想要將AS捆綁到你的項目中。與Lua相比,主要困難在於圖書館更大(但具有更多功能)。並不是很多人使用它,所以它很難找到例子和幫助,但有很好的文檔,所以它不應該很難開始。

但是,我個人寧願有一個動態的腳本語言。當我編寫一個應用程序時,我想進入該應用程序並編寫垃圾代碼,而不必擔心C型行李。除了AngelScript之外,我真的不能想到任何值得推薦的東西。

+0

「不用擔心C型包袱」:事實上,Angelscript似乎太重,不適合用作我的「腳本語言」。 – Stefan 2016-02-19 17:59:14

1

Haskell是靜態類型的。你也許可以嵌入ghci或擁抱(都是口譯員)到另一個程序中。但這並不容易,afaik。

+0

我曾嘗試使用Haskell作爲Python的替代品,但經過幾次嘗試後,很明顯,在Haskell中實現任何東西都需要比Python中多5倍的時間。我試圖將這種差異歸因於我對Haskell的糟糕認識,但是在重新考慮之後,我從來沒有用任何新語言表現過如此糟糕的表現,所以我堅持Python。另外與IO結合的懶惰評估給出了可怕的不可預知的錯誤。它就像是在訂單很重要時抓住多線程,但事情發生的順序不正確,而對於Haskell而言,您沒有強制執行順序的手段。 – Trismegistos 2014-08-14 14:59:59

+2

Haskell絕對命令強加。例如IO操作的排序順序就是它們發生的順序。 – Evan 2015-06-30 16:23:11

相關問題