Programming in Lua (first edition)
  • Author: Roberto Ierusalimschy
  • Format: online HTML
  • Price: free

This book is a detailed and authoritative introduction to all aspects of Lua programming, by Lua’s chief architect.

Programming in Lua gives a solid base for any programmer who wants to use Lua. It covers all aspects of Lua—from the basics to its API with C—explaining how to make good use of its features and giving numerous code examples. The book is targeted at people with some programming background, but it does not assume any prior knowledge about Lua or other scripting languages.

Chapters include:

  • Chunks
  • Global Variables
  • Some Lexical Conventions
  • The Stand-Alone Interpreter
  • Nil
  • Booleans
  • Numbers
  • Strings
  • Tables
  • Functions
  • Userdata and Threads
  • Arithmetic Operators
  • Relational Operators
  • Logical Operators
  • Concatenation
  • Precedence
  • Table Constructors
  • Assignment
  • Local Variables and Blocks
  • Control Structures
  • break and return
  • Multiple Results
  • Variable Number of Arguments
  • Named Arguments
  • Closures
  • Non-Global Functions
  • Proper Tail Calls
  • Iterators and the Generic for
  • Compilation, Execution, and Errors
  • Coroutine Basics
  • Pipes and Filters
  • Coroutines as Iterators
  • Non-Preemptive Multithreading
  • Complete Examples
  • Arrays
  • Linked Lists
  • Matrices and Multi-Dimensional Arrays
  • Queues and Double Queues
  • Sets and Bags
  • String Buffers
  • Data Files and Persistence
  • Arithmetic Metamethods
  • Relational Metamethods
  • Library-Defined Metamethods
  • Table-Access Metamethods
  • Accessing Global Variables with Dynamic Names
  • Declaring Global Variables
  • Non-Global Environments
  • Packages
  • Object-Oriented Programming
  • Weak Tables
  • The Mathematical Library
  • The Table Library
  • The String Library
  • The I/O Library
  • The Operating System Library
  • The Debug Library
  • An Overview of the C API
  • Extending your Application
  • Calling C from Lua
  • Techniques for Writing C Functions
  • User-Defined Types in C
  • Managing Resources

http://www.lua.org/pil/