Another entry for HOPL-III that is an interesting account of The Evolution of Lua by Roberto Ierusalimschy, Luiz Henrique de Figueiredo and Waldemar Celes.



We report on the birth and evolution of Lua, and discuss how Lua moved from a simple configuration language to a versatile, widely used language that supports extensible semantics, anonymous functions, full lexical scoping, proper tail calls, and coroutines.

The paper is timely for me, since I recently acquired the book "Programming in Lua V2" and am slowly trying to learn the language. It's hard not to like the model of language evolution taken by the Lua community. Lua has actively staked the ground of an embeddable scripting language, having simplicity and size as a major focus, and a very active two way street between embedded scripting language and host language C. The paper provides a good accounting of many of the design decisions made through the history of versions, though I would have liked a bit more mention of the decision to go with a register based VMs.

Overall, I'd rate it as a very good read for those that are interested in PL design. Other papers from HOPL-III mentioned on LtU: Haskell and AppleScript.