Dies ist eine wiederkehrende Frage auf der Lua-Liste, ich vermute wegen der oberflächlichen Ähnlichkeit der beiden Sprachen.
Leider gibt es viele wichtige Unterschiede, die nicht so offensichtlich sind. Damit es funktionieren kann, muss entweder ein kompilierter Compiler verwendet werden, der auf JS anstatt auf Lua's Bytecode abzielt, oder die Lua VM in JavaScript umgeschrieben werden.
Ich kenne die ursprünglichen Ziele von Lua2js nicht; aber wenn es nur ein begrenzter "Übersetzer" wäre, dann würde das Schreiben von Lua-Code, der übersetzt werden sollte, die meisten (alle?) der schönen Dinge über Lua bestreiten. Zum Beispiel glaube ich nicht, dass Sie eine Funktion als Tabellenschlüssel verwenden könnten, da die Schlüssel in JavaScript nur Strings sind (und Zahlen? Ich bin mir nicht sicher).
Die .NET-Wahl ist vernünftiger, es könnte getan werden, den vorhandenen Compiler zu ändern, CLR-Bytecode anstelle von Standard-Lua-Bytecode zu emittieren. Auch wenn CLR für andere Sprachen entwickelt und optimiert wurde, ist es auf jeden Fall generisch genug, um sehr gut zu funktionieren. Die Haupthürde wäre die Verfügbarkeit von Bibliotheken.
Eine andere Option, die ich gerade gefunden habe, ist this paper von Roberto Ierusalmschy und Fabio Mascarenhas, wo sie die Übersetzung von LuaVM-Bytecode in CLR-Bytecode untersuchen.
Wie es in wissenschaftlichen Arbeiten üblich ist, gibt es keine Hinweise auf das Datum, an dem es geschrieben wurde, also habe ich keine Ahnung, ob es neu und revolutionär oder alt und vergessen ist.
Ich frage mich, was das wahre Ziel der Menschen ist? Sie kennen Lua und möchten JavaScript schreiben, ohne JavaScript zu lernen? Sie haben eine große Anwendung in Lua geschrieben und möchten sie mit minimaler Arbeit als Webapp portieren? Keiner von diesen scheint mir sehr wahrscheinlich – davr
Das Interview bei http://www.computerworld.com.au/index.php/id;1028768484 macht es wie Lua.NET klingt ein neues und laufendes Projekt. –
Grüße, man kann eine Funktion als Tabellenschlüssel in Javascript verwenden. Ihre Meinung scheint nicht informiert zu sein. – tomdemuyt