Paula Script
Paula Script is a lightweight scripting language written in C++.

Small and stand-alone
Minimal external dependencies and built-in parser. The whole thing only takes up a few dozen kilobytes.

No runtime memory allocation
Reserve all the required memory at startup for performance, predictability, and safety.

Easy to expand
Add callbacks from your source code with a simple API.


For technical information and to try it
yourself see the GitHub project:

Doxygen docs for programmers:
GitHub: paula-script Paula C++ API

n:20; i:0; a:0; b:1
while(i < n)
	c:a+b
	print(c, " ")
	a:b; b:c
	i:i+1
Code sample: print 20 Fibonacci numbers (n=20).

What is a scripting language?

Computer programs or apps consist of Scripts control computer programs by instructions, written in some scripting language, like Python or JavaScript... or Paula! A common example of a scripting language in use is JavaScript, which is used by web pages to add functionality.

CPU (Central Processing Unit) is a microprocessor and the "brain" of the computer, smart phone, or other electronic gadget. It reads and executes the machine code to make the app run.

Machine code is executed by the CPU whereas scripts are interpreted and executed by the program.

Inside the machine code is the script interpreter that does what the script it tells it to do. So, the CPU executes the script interpreter (Paula), and the interpreter executes the script, if that makes any sense.

Economic scripting

Paula (meaning "small" in Latin) is a compact language designed to take up minimal space in a program. This is especially important in constrained environments, such as electronic devices, where the interpreter, other code, and scripts must all fit within a limited memory (RAM).
If the interpreter is too big, you just can't use it.
In addition to being compact, Paula is designed to be suitable for environments without such resource limitations, providing the needed flexibility while remaining secure and efficient, something between archaic and extravagant.

Memory allotion

Most script interpreters allocate memory for their use during runtime. Allocated memory is freed when it's not needed anymore.

Usually, this approach is fine and practical. Problems arise, however, if more memory is allocated than is available, causing the program to slow down or crash. This can happen, for example, when large files are loaded into memory for processing.

In Paula, this issue does not occur because it doesn't allocate memory during runtime at all. Paula's users can be confident that it won't cause unpleasant surprises due to excessive memory allocation.

The downside is that the user must know how much memory Paula will need and define it when launching the program. However, the guarantee that users can specify the required memory themselves provides a sense of security and reliability to Paula's users.


Meanwhale, 2024