Synopses & Reviews
This book is for students and professionals who are intrigued by the prospect of learning and using a powerful language that provides a rich infrastructure for creating programs. No programming knowledge is necessary to benefit from this book except for the section on Lua bindings, which requires some familiarity with the C programming language. A certain comfort level with command-line operations, text editing, and directory structures is assumed.
Software developers who have experience with functions, strings, and associative arrays can skim Chapters 2 through 5 with the caveat that certain Lua colloquialisms are introduced there along with programming concepts.
Throughout the text, sections pertaining to a particular operating system are clearly marked and can be skipped by readers working on a different platform.
This book is organized to guide you through the basics of using Lua. Its structure is as follows:
- Installing Lua on your system (Chapter 1)
- Learning the fundamentals of programming in Lua (Chapters 2 through 10)
- Reviewing standard Lua functions (Chapter 11)
- Exploring application development with Lua using packages contributed by the community (Chapters 12 through 18)
- Using Lua's many community resources (Chapter 19)
Chapters 2 through 10 each build on concepts that are presented in its predecessors, so a sequential reading of this part of the book is advised. The summary of Lua's built-in libraries contains examples that assume you have a good grasp of the materials presented in the first 10 chapters.
Some of the libraries and techniques presented in Chapters 12 and 13 are needed in the remaining chapters of the book. Chapters 14 through 19 are relatively independent of one another and can be read out of sequence.
You need surprisingly little in the way of computer resources to learn and use Lua. This book focuses on Windows and Unix-like (including Linux) systems, but any operating system that supports a command shell should be suitable. You'll need a text editor to prepare and save Lua scripts.
If you choose to extend Lua with libraries written in a programming language like C, you'll need a suitable software development kit. Many of these kits are freely available on the Internet but, unlike Lua, they can consume prodigious amounts of disk space and memory.
Chapter 18 discusses using Lua on a Palm Pilot. Even if you don't own or have access to one of these devices, this chapter shows how you can simulate one on the major desktop systems.
This book will provide an introduction to all aspects of programming in Lua, with attention paid to the beginning programmer who will benefit from seeing complete code samples with practical applications and robust error handling. Diagrams will provide a visual glimpse behind the scenes of important Lua features such as stacks, hash tables, garbage collection, lexical scope and function closures. Key topics include Managing Memory Garbage Collection Handling Errors Using Libraries Strings Tables Extending Lua Event Handling Databases Web Programming Game Programming
Lua offers a wide range of features that you can utilize to support and enhance your applications. With this book as your guide, you'll gain a thorough understanding of all aspects of programming with this powerful language. It will walk you through the basics, covering everything from installing Lua on your system to developing games and web sites.
Experts Jung and Brown first present the fundamentals of programming and explain standard Lua functions. They then show you how to take advantage of all of the free Lua community resources that are available. Complete code samples are integrated throughout the chapters to clearly demonstrate how to apply the information. Diagrams are also included to highlight important Lua features such as stacks, hash tables, garbage collection, and function closures. All of this will help you to quickly write your own effective programs.
What you will learn from this book
- Ways to extend Lua's operators with metamethods
- Methods on how to use tables, strings, and modules
- How to handle events naturally with coroutines
- Techniques for managing information with databases
- Tips for handling and avoiding programming errors
- Ways to create your own innovative games
- How to enhance application development using packages contributed by the Lua community
- Steps for presenting dynamic information on your web site
Who this book is for
This book is for beginning programmers, game developers, and web site developers who are interested in a simple yet powerful introduction to programming.
Wrox Beginning guides are crafted to make learning programming languages and technologies easier than you think, providing a structured, tutorial format that will guide you through all the techniques involved.
Lua offers a wide range of features that you can use to support and enhance your applications. With this book as your guide, you’ll gain a thorough understanding of all aspects of programming with this powerful language. The authors present the fundamentals of programming, explain standard Lua functions, and explain how to take advantage of free Lua community resources. Complete code samples are integrated throughout the chapters to clearly demonstrate how to apply the information so that you can quickly write your own programs.
Easy to follow step by step lessons enable students to quickly and efficiently learn the features of Microsoft Project 2002 and Project 2003 and how to use them at home and in the workplace. This Microsoft Official Academic Course offers friendly, straightforward instruction with a focus on real-world business scenarios. A complete instructor support program is available with the text.
About the Author
Between his first programs submitted to a Burroughs 5500 on Hollerith punch cards and his latest programs tapped into a Palm Pilot, Kurt Jung
has been the principal programmer on various projects ranging from airline yield management to state machine–driven workflow.
Aaron Brown began programming in elementary school on a Commodore 64. He plays various musical instruments and speaks Esperanto.
Table of Contents
Chapter 1: Getting Situated.
Choosing How to Install Lua.
Finding Your System’s Shell.
Dealing with Tarballs and Zip Files.
Chapter 2: First Steps.
Numbers and Arithmetic Operations: Basic Interpreter Usage.
Variables and Assignment.
Relational Operators and Boolean Values.
The nil Value.
The Concatenation, Length, and Modulo Operators.
Automatic Conversion of Operands.
Precedence and Associativity.
Variables and Values.
Expressions and Statements.
Chapter 3: Extending Lua with Functions.
Chunks as Functions.
Understanding Side Effects.
Functions Calling Functions.
Functions as Values.
Whitespace, Semicolons, and Function Calls.
Upvalues and Closures.
Chapter 4: Working with Tables.
A Shorter Way to Write Some Keys.
Altering a Table’s Contents.
Tables as Arrays.
Looping through Tables.
Tables of Functions.
Functions with Variable Numbers of Arguments.
Different but the Same.
Building Other Data Structures from Tables.
Global Variable Environments.
Chapter 5: Using Strings.
Basic String Conversion Functions
Converting Between Characters and Character Codes.
Formatting Strings and Numbers with string.format.
Chapter 6: Handling and Avoiding Errors.
Kinds of Errors.
Chapter 7: Using Modules.
Interfaces and Implementations.
The require Function.
Where to Put Modules.
Preserving a Module’s Interface.
The module Function.
Chapter 8: Extending Lua’s Behavior with Metamethods.
Using Concatenation and Arithmetical Operators on Tables.
Indexing and Call Metamethods.
Non-Tables with Metamethods.
Chapter 9: Handling Events Naturally with Coroutines.
Coroutines and Program Control.
Managing Concurrent Tasks.
Handling Events Simply.
Chapter 10: Looking Under the Hood.
Bytecode and luac.
The Implementation of Tables and Strings.
The Debug Library.
Chapter 11: Exploring Lua’s Libraries.
Operating System Library.
Chapter 12: Using Community Libraries.
How Lua Interacts with Libraries.
The pack Binary Structuring Library.
The cURL File Transfer Library.
The gd Graphics Library.
The SQLite Database Library.
Chapter 13: Interfacing Lua with Other Languages.
How C Programs Use Lua.
Communicating Between Lua and C.
Calling Lua from C.
Working with Userdata.
Indexing Values in C.
Retaining Values in C.
Layering Your Extension Library.
Chapter 14: Managing Information with Databases.
Some Basic Relational Database Concepts.
SQL, LuaSQL, and MySQL.
Chapter 15: Programming for the Web.
A Web Server Primer.
Dynamic Web Content.
Executing CGI Scripts.
Installing a Web Server.
Testing Your Web Server with Static Content.
Serving Dynamic Web Content.
Interactive CGI Applications.
The Kepler Project.
Chapter 16: Connecting to a Larger World.
Using LuaSocket for Network Communication.
Handling Multiple Persistent Connections.
The Application Protocols.
Networking with Lua and Streams.
Chapter 17: Programming Games with Lua.
Understanding Why and When to Use Lua.
Simple 2-D Action Game Using SDL.
Chapter 18: Carrying Lua with You.
Getting Started with Plua.
Exploring Plua’s Features.
Plua on the Mothership.
Programming with Plua.
Chapter 19: Fitting into the Lua Community.
The Lua Web Site.
The Lua Reference Manual.
The Lua Mailing List.
The Lua Chat Room.
The Lua Wiki.
Appendix A: Answers.