Computerworld
The A-Z of Programming Languages: Lua
Professor Roberto Ierusalimschy offers an in-depth examination of what he believes to be the most successful programming language not born in a developed country.
Naomi Hamilton  11 September, 2008 20:29

Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously we have spoken to Alfred v. Aho of AWK fame, S. Tucker Taft on the Ada 1995 and 2005 revisions, Microsoft about its server-side script engine ASP, Chet Ramey about his experiences maintaining Bash, Bjarne Stroustrup of C++ fame, and Charles H. Moore about the design and development of Forth. We’ve also had a chat with the irreverent Don Woods about the development and uses of INTERCAL, as well as Stephen C. Johnson on YACC, Luca Cardelli on Modula-3, Walter Bright on D, Brendan Eich on JavaScript, and most recently to Guido van Rossum about Python.

This time we chat to Prof. Roberto Ierusalimschy about the design and development of Lua. Prof. Ierusalimschy is currently an Associate Professor in the Pontifical Catholic University of Rio de Janeiro's Informatics Department where he undertakes research on programming languages, with particular focus on scripting and domain specific languages. Prof. Ierusalimschy is currently supported by the Brazilian Council for the Development of Research and Technology as an independent researcher, and has a grant from Microsoft Research for the development of Lua.Net. He also has a grant from Finep for the development of libraries for Lua.

Please note that due to popular demand we are no longer following alphabetical order for this series. If you wish to submit any suggestions for programming languages or language authors you would like to see covered, please email naomi@computerworld.com.au.

What prompted the development of Lua? Was there a particular problem you were trying to solve?

In our paper for the Third ACM History of Programming Languages Conference we outline the whole story about the origins of Lua.

To make a long story short, yes, we did develop Lua to solve a particular problem. Although we developed Lua in an academic institution, Lua was never an "academic language", that is, a language to write papers about. We needed an easy-to-use configuration language, and the only configuration language available at that time (1993) was Tcl. Our users did not consider Tcl an easy-to-use language. So we created our own configuration language.

How did the name Lua come about?

Before Lua I had created a language that I called SOL, which stood for "Simple Object Language" but also means "Sun" in Portuguese. That language was replaced by Lua (still nameless at that time). As we perceived Lua to be "smaller" than Sol, a friend suggested this name, which means "moon" in Portuguese.

Were there any particularly difficult problems you had to overcome in the development of the language?

No. The first implementation was really simple, and it solved the problems at hand. Since then, we have had the luxury of avoiding hard/annoying problems. That is, there have been many problems along the way, but we never had to overcome them; we have always had the option to postpone a solution.

Some of them have waited several years before being solved. For instance, since Lua 2.2, released in 1995, we have wanted lexical scoping in Lua, but we didn’t know how to implement it efficiently within Lua's constraints. Nobody did. Only with Lua 5.0, released in 2003 did we solve the problem, with a novel algorithm.

What is the most interesting program that you've seen written with Lua and why?

I have seen many interesting programs written in Lua, in many different ways. I think it would be unfair to single one out. As a category, I particularly like table-driven programs, that is, programs that are more generic than the particular problem at hand and that are configured for that particular problem via tables.

Comments

Brazil

I'm proud as a programmer about this language having its roots down here in Brazil.

Congratulations to professor Roberto, his students and to every one around the globe who contributed to this amazing scripting language.

Regards,
George.

Thanks for this article. I

Thanks for this article. I didnt know that there is such programing language.

MikeCrabe

Post new comment

Login or register to link comments to your user profile, or you may also post a comment without being logged in.
The content of this field is kept private and will not be shown publicly.
Enter the fully qualified URL, eg. http://www.example.com/
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

Zones
Zone logoZones provide focussed content from Computerworld and leading technology partners.
Newsletter Subscription
Newsletter Subscription
Sign up for our Computerworld newsletters!
Syndicate content Syndicate content Syndicate content Syndicate content
 

Computerworld Webinar

Thursday, June 11th, 2009
10:30am EST (Sydney, Australia)
Screening at your PC

Computerworld is hosting a 30 minute live webinar to help you to learn how unified communications can save you money, foster innovation and business agility by making it easier for people to find, reach and collaborate with one another.

Register Now

Computerworld Community Comments
Whitepaper

Customer Experience Management: Improving the Consistency and Quality of Customer Interactions

Don't let your customers have a bad experience. Customer experience management (CEM) research from Ventana highlights the failures of traditional CRM and indicates many companies are hearing the message, but few have implemented the processes and technology to make it a reality. Download the report today!

Enterprise IT Buyer's Guide
Find Technology Vendors Fast
 
Find vendors by name | Find by category
Sponsored Links
 
Send Us E-mail | Privacy Policy
Features List | Media Kit | Advertising | Contact Us

Copyright 2009 IDG Communications. ABN 14 001 592 650. All rights reserved.
Reproduction in whole or in part in any form or medium without express written permission of IDG Communications is prohibited.