ACM Home Page
Please provide us with feedback. Feedback
Efficient compilation of Lua for the CLR
Full text PdfPdf (216 KB)
Source Symposium on Applied Computing archive
Proceedings of the 2008 ACM symposium on Applied computing table of contents
Fortaleza, Ceara, Brazil
SESSION: Programming languages table of contents
Pages 217-221  
Year of Publication: 2008
ISBN:978-1-59593-753-7
Authors
Fabio Mascarenhas  PUC-Rio, Rio de Janeiro, Brazil
Roberto Ierusalimschy  PUC-Rio, Rio de Janeiro, Brazil
Sponsor
SIGAPP: ACM Special Interest Group on Applied Computing
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 131,   Citation Count: 0
Additional Information:

abstract   references   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1363686.1363743
What is a DOI?

ABSTRACT

Microsoft's Common Language Runtime offers a target environment for compiler writers that provides a managed execution environment and type system, garbage collection, access to OS services, multithreading, and a Just-In-Time compiler. But the CLR uses a statically typed intermediate language, which is a problem for efficient compilation of dynamically typed languages in general, and the Lua language in particular.

This paper presents a way to implement a Lua compiler for the CLR that generates efficient code. The code this compiler generates outperforms the same code executed by the Lua interpreter and similar code generated by Microsoft's IronPython compiler. It approaches the performance of Lua code compiled to native code by LuaJIT.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
A. L. de Moura, N. Rodriguez, and R. Ierusalimschy. Coroutines in lua. Journal of Universal Computer Science, 10(7):910--925, 2004.
 
2
M. Hammond. Python for .NET: Lessons Learned, 2000. Technical report by ActiveState, not available online at the time of this paper's writing.
3
 
4
J. Hugunin. Ironpython: A fast python implementation for .net and mono. In Proceedings of PyCon DC 2004, 2004. Available at http://www.python.org/pycon/dc2004/papers/9.
 
5
J. Hugunin. A Dynamic Language Runtime (DLR), 2007. Available at http://blogs.msdn.com/hugunin/archive/2007/04/30/a-dynamic-language-runtime-dlr.aspx.
6
 
7
R. Ierusalimschy, L. H. Figueiredo, and W. Celes. Lua 5.1 Reference Manual. Technical Report 14/03, PUC-Rio, 2006. Available at http://www.lua.org/manual/5.1.
 
8
F. Mascarenhas and R. Ierusalimschy. Luainterface: Scripting the .net clr with lua. Journal of Universal Computer Science, 10(7):892--909, 2004.
 
9
F. Mascarenhas and R. Ierusalimschy. Running lua scripts on the clr through bytecode translation. Journal of Universal Computer Science, 11(7):1275--1290, 2005.
 
10
Microsoft. ECMA C# and Common Language Infrastructure Standards, 2005. Available at http://msdn.microsoft.com/net/ecma/.
 
11
M. Pall. The LuaJIT project, 2007. Available at http://luajit.org/.
12


REVIEW

"Arthur Gittleman : Reviewer"

Lua is a simple, small, dynamically typed language used in industrial applications and game development. Since 1993, Ierusalimschy has been a principal developer of Lua. This paper presents a way to implement a compiler for Microsoft's common lang  more...

Collaborative Colleagues:
Fabio Mascarenhas: colleagues
Roberto Ierusalimschy: colleagues