Plua
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 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 can be written as follows:
-- HelloWorld.lua
ptitle
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 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
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.titlefunction defines the title at the top of the page. Parentheses are optional for a Lua function call with a single string argument. String literals may be either single-quoted or double-quoted. - Line #3:
- : Prints the message "Hello, world!" onscreen under the title bar. If the optional parentheses and double quotes had been used, this line would be identical to the first version.
- Line #4:
- : The above command pauses the execution of the programs and waits for any interaction from the user. The argument ioPending is simply a predefined number included in Plua 2 representing a request for this behavior.