我需要找到一個很好的Lua to JavaScript轉換器; luaforge.org上的lua2js已過時(3歲左右,看起來不適用於Lua 5.1),我還沒有在Google上找到任何東西。有沒有最近的Lua to JavaScript轉換器或解釋器?
有沒有人有任何其他轉換器的經驗嗎?它應該在Lua 5.1上工作,最好是基於.NET的,但.NET不是必需的。一個javascript lua解釋器也可以工作。
我需要找到一個很好的Lua to JavaScript轉換器; luaforge.org上的lua2js已過時(3歲左右,看起來不適用於Lua 5.1),我還沒有在Google上找到任何東西。有沒有最近的Lua to JavaScript轉換器或解釋器?
有沒有人有任何其他轉換器的經驗嗎?它應該在Lua 5.1上工作,最好是基於.NET的,但.NET不是必需的。一個javascript lua解釋器也可以工作。
這是一個關於Lua列表的經常性問題,我猜是因爲兩種語言的膚淺相似性。
不幸的是,有很多重要的差異並不那麼明顯。讓它工作需要一個成熟的編譯器來定位JS而不是Lua的字節碼,或者用JavaScript重寫Lua VM。
我不知道Lua2js的原始目標;但如果它僅僅是一個有限的「翻譯者」,那麼編寫想要翻譯的Lua代碼將會拒絕大多數(全部)關於Lua的好事。例如,我不認爲你可以使用函數作爲表鍵,因爲在JavaScript中,鍵只是字符串(和數字?我不確定)。
.NET的選擇更合理,可以通過改變現有的編譯器來發出CLR字節碼而不是標準的Lua字節碼。即使CLR是爲其他類型的語言而設計和優化的,它絕對是通用的,足以運行得非常好。主要的障礙是圖書館的可用性。
我剛剛發現的另一種選擇是由Roberto Ierusalmschy和Fabio Mascarenhas提供的this paper,他們在那裏探索將LuaVM字節碼轉換爲CLR字節碼。
與往常一樣,在學術論文中,沒有關於寫作日期的說明,所以我不知道它是新的革命性的還是舊的和遺忘的。
翻譯爲JavaScript是有趣的,可以在瀏覽器端進行JavaScript替換。我們也可以在瀏覽器上採取一些安全措施。將JavaScript作爲平臺定位的目標是最普遍的平臺之一 - 地球上的瀏覽器。 GWT執行java2js,但我不確定是否要在應用程序中僅引入幾個頁面的GWT。我得想想。對於你作爲表中關鍵的功能,必須要做一些魔術。也許只需在編譯時爲每個函數分配一個唯一的名稱,並將其用於您的密鑰。您還可以爲所有的鍵添加前綴以進行類型檢查,這是一個不錯的開始。
Emscripten包含將Lua解釋器轉換爲JavaScript。您可以try it in your browser。但是大小是1.5MB。
我已經寫了一個部分完整的Lua到ECMAscript靜態編譯器。
https://github.com/mherkender/lua2js-experiment
它可能無法滿足您的需求,爲項目缺少許多關鍵功能,我不急於去完成它,因爲它是一個死衚衕。詳情請閱讀自述文件。
儘管我在互聯網上看到了一些擔憂,但只有少數Lua特有的功能(如* fenv函數或大多數調試庫),Javascript並不真正支持這些功能。其他人,如文件庫,受到VM有權訪問的功能的限制。
我也親自嘗試過Lua + Emscripten選項,雖然它令人印象深刻,但它也很慢。
ljs在javascript中有一個lua vm的工作演示。源代碼甚至可以使用lua編寫的lua解釋器在瀏覽器中編譯。出現
一個新的挑戰者:Lua.js https://github.com/mherkender/lua.js
對於一些真棒演示證明它的成熟,看到https://github.com/ghoulsblade/love-webplayer
Lua.js的工作方式是直接將Lua代碼對ECMAScript(包括JavaScript,ActionScript),這使它比試圖在JavaScript中實現Lua VM的解決方案具有重要的速度優勢。
我一直在使用此實現https://github.com/mherkender/lua.js以前的答案中提到過。它可以離線和加載時解析,我發現它非常易於使用。
我的Lua腳本通過C函數進行調用,並將該C代碼轉換爲Javascript並將它與lua.js連接起來非常簡單。
訪問http://luajs.org看到我的工作。
有網站菜單上的演示和基準。
壓縮前只有35.5K,壓縮後只有12.2K。它可以直接訪問Javascript對象/數組。它幾乎每天都會更新。
它比lua.vm.js更快。 (因爲metatable的實現不那麼快),我一直在優化它。
我想知道人們的真正目標是什麼?他們知道Lua,並且想要編寫JavaScript而不必學習JavaScript?他們有一個用Lua編寫的大型應用程序,並希望以最少的工作將其移植爲一個Web應用程序?這些對我來說似乎都不是那麼可能 – davr 2008-10-08 16:15:29
http://www.computerworld.com.au/index.php/id;1028768484的採訪使得聽起來像Lua.NET是一個近期和正在進行的項目。 – 2008-10-09 19:22:33
問候,人們可以使用一個函數作爲javascript中的表鍵。您的意見似乎並不知情。 – tomdemuyt 2010-07-06 15:43:41