The Palm Computing environment impose many interesting problems. The memory model is very restricted. You have only 4 Kb. of stack, a heap of 64 Kb. and a large storage area called the database area. It is possible, that we must use the database area for temporary values.
We extend the ML Kit, a free Standard ML compiler, to generate code for the Palm Pilot. The ML Kit does not use a garbage collector to reclain unused storage.
The ML Kit uses region inference. In the region inference memory model, all memory allocation directives (both allocation and de-allocation) are inferred by the compiler at compile time. The ML Kit uses a technique, where the heap is organised in many smaller heaps, called region pages. Values are allocated in region and automatically de-allocated.
Region inference ensures the safety of de-allocation, that is, if a memory area is de-allocated, then the memory area will never be referenced. This is a key feature of the ML Kit and an important aspect of making reliable applications. You do not have this safety with C, the primary programming language for Palm Pilot applications.