EE 192D / CS 193L
Scripting Embedded Systems with Lua
Instructor · Brief Description · When/Where · Syllabus · Bibliography

Instructor

Roberto Ierusalimschy is the leading architect of the Lua programming language. He is an Associate Professor at PUC-Rio, Brazil, and a Tinker Visiting Professor at Stanford University.

Brief Description

Scripting languages are a popular choice for programming embedded systems, as they allow rapid application development and take care of much of the platformʼs underlying complexity.

This course will discuss the tradeoffs in the design of an embedded system language and how one can adapt languages to embedded systems. The course will review several popular options today (Forth, Java ME, PyMite, etc.) and focus on Lua, a popular language used in systems ranging from Adobe Lightroom to World of Warcraft. Course assignments will involve using Lua to program the BeagleBoard-xM, a low-cost, ARM-based embedded platform.

When/Where

Classes meet on Tuesdays and Thursdays, 2:15-3:30pm, in MEYER 142.

Rules for room 36.

Syllabus

1Introduction
2Why Scripting? Why Scripting for embedded systems?
3An overview of Lua
4Functional facilities
5Tables and data structures
6Tables and language constructs: environments and modules
7OO programming in Lua
8Memory management and weak tables
9Event-driven programming and coroutines
10The Lua-C API
11User-defined types in C
12Some real use scenarios
13An overview of the implementation of Lua
14eLua: a distribution of Lua focused on embedded systems
15Scripting languages x dynamic languages
16Embedding x extending
17Tradeoffs in language design
18Other languages for embedding
19Languages for "highly restricted systems" (sensors)

Bibliography