那麼這就是問題所在。是否有其他語言的項目試圖模仿python的堆棧python?是否有像其他語言項目(Java,Lisp,Haskell,Go等)的任何Stackless Python
回答
安德魯·阿佩爾寫了很久以前一本書Compiling with Continuations,實施了一些舊版本(110?)SML/NJ(不堆棧,但與收集「的延續幀」垃圾),並寫了一篇論文(這一切上個世紀)。
幾篇論文提到彙編與continuations例如, Flanagan等
方案有一個延續相關的原始call/cc。
此外,Queinnec的Lisp In Small Pieces,甚至從J.Pitrat的書Artificial Beings (the conscience of a conscious machine)
而且Go Routines等一章..
最近GCC給出-fsplit-stack頗爲相似(和有用的特別是爲實施Go Language的GCC的前端)以及GCC編譯的許多語言(包括C & C++)可用(小心)。
Chicken Scheme正在玩堆棧中的奇怪技巧(特別是對於tail calls和call/cc
)。
所以我不認爲Stackless Python是第一個想到這個(並實現這些想法)。
另請參閱call stack wikipage。
PS。當然,Haskell,Erlang,Oz ......
Haskell和Erlang都包含(在標準實現中)具有多核支持的微線程/綠色線程,一個搶先式調度器和一些模擬通道。我能想到的Stackless唯一相當獨特的功能是線程序列化,儘管有時可以通過提供序列化函數狀態的方式來僞造它。
如果您指的是輕量併發的無堆棧編譯,Haskell從一開始就這樣做了。 IIRC第一個Haskell編譯方案被稱爲G-machine。後來被STG機器取代。這對於有效的懶惰來說實際上是必要的,但簡單的併發性和並行性成爲額外的好處。
該領域的另一個值得注意的語言是Erlang及其糟糕的玩笑模仿語言Go以及Scheme這樣的基於延續的語言。與Haskell不同,它們不使用STG編譯方案。
- 1. 是否有R等價於其他語言的三重引號?
- 2. 這是可能的java或任何其他編程語言
- 3. Python:確定序列中的任何項是否等於任何其他
- 4. 與其他語言中的Ruby的method_missing是否等價?
- 5. 爲Haskell(和其他語言)打包C++庫的選項
- 6. 做其他語言有一個等同於Python的GEVENT?
- 7. 協程棧是否以Lua,Python,Ruby或任何其他語言增長?
- 8. 除D之外還有其他語言是否有靜態if?
- 9. 是否有一種ml語言(標準ml/ocaml/f#/ haskell /等),其中列表元素是選項類型
- 10. 是否有任何好的庫來解釋Java語言?
- 11. Go是否存在Go? (像在Python中)
- 12. 腳本語言是否可以翻譯成其他語言?
- 13. 是否有在Objective-C在C#或任何其他語言的任何自定義Date類一樣的DateTime
- 14. python是否讀取腳本與其他語言不同?
- 15. 在Data :: Dumper中是否有與Perls的Dumper()方法等價的Go語言?
- 16. 是否可以使用其他語言編寫java代碼?
- 17. 是否有可用於其他語言的TFS的API?
- 18. 沒有「新的android項目」,但有其他像「android示例項目」等
- 19. 控制網頁槽python或任何其他編程語言
- 20. Haskell的記錄語法是否有任何有用的抽象?
- 21. 是否有一個Django模板語言等價於Python的range()?
- 22. 調整大部分圖像(php或任何其他語言)
- 23. SQL注入指南在Java(或任何其他語言)
- 24. 是否有GIT(C++或其他語言)的API
- 25. Java比較2列表,看看是否包含其他任何項目
- 26. 是否有任何其他編程謎語?
- 27. 使用Javascript(沒有任何其他語言)的實時日曆
- 28. 是否有任何其他Web編程語言可以在沒有框架的情況下使用?
- 29. 是否有任何用功能語言(即Haskell,erlang等)編寫的生產系統配置管理框架?
- 30. 是否有任何定義非標準控制流程語言的語言?
無堆棧python的核心優勢在於它提供了一條圍繞GIL的途徑。除此之外,它並不令人印象深刻。由於其他語言沒有GIL,因此「執行python的無堆棧python」並不是很有意義。 – sclv 2013-05-14 13:31:55
你可以更具體地瞭解什麼語言或運行時功能/特別是/你看到堆棧python提供給python?因爲許多語言支持先發制人的綠線和更多,而不需要模仿。 – 2013-05-14 13:55:28