Plua is a port of the programming language Lua 5.0.3, along with a small IDE, for the Palm Computing platform. Lua is a programming language designed at TeCGraf, the Computer Graphics Technology Group of PUC-Rio, Brazil. Plua includes some extensions to Lua to better support the Palm platform. Development has ceased on Plua, and the latest stable version of Plua 2.0 can only be downloaded from a discussion board. The prior version, Plua 1.1, is a port of Lua 4.0. The extensions differ somewhat between versions. The new version is thus sometimes called Plua 2 to avoid confusion. Language resources Plua has some special functions, or extensions, to support the Palm platform, including: Graphical user interface (GUI) components, defined by position: buttons, checkboxes, etc. Direct plotting of graphics based on vertex information: lines, circles, etc. Can work with streams, databases or computer files on memory cards. Supports communication via infrared and serial ports. Rudimentary sprite engine. Sample code, Plua 1 The compiler and interpreter is approximately 150 KB, and the compiled helloworldApp.prc shown below is approximately 2 KB. The classic hello world program (in the old version) can be written as follows: -- HelloWorld.lua ptitle("Hello World") print ("Hello, world!") pevent() This text will be saved as a normal memo in the Palm, and executed by tapping the "Run" button in the IDE. Alternatively, the program can be compiled into a PRC (Palm OS Program File, which is executable on any Palm Platform, provided that the runtime program is present) from the same IDE. A breakdown of the program: Line #1: The double dashes define the above line as a comment. All Plua memo files must be defined as such before it can be run or compiled in Plua. Line #2: Defines the title at the top of the page. Line #3: Prints the message "Hello, world!" onscreen under the title bar. Line #4: The above command pauses the execution of the programs and waits for any interaction from the user. These include button taps, character input, or the push of a hard button. Sample code, Plua 2 The equivalent program with the new extensions can be written as follows: -- HelloWorld.lua gui.title 'Hello world' print 'Hello world!' gui.event(ioPending) A breakdown of the program: The first line comment is the same as before, but the rest is a little different. Line #2: The gui.title function defines the title at the top