Next: , Up: iklib memory   [Index]


6.46.1 Introduction to managing memory

Vicare Scheme is a managed environment: Scheme objects are allocated in a special memory region (the Scheme heap) and have type–specific object layouts; this allows the run time system to distinguish object types and the garbage collector to locate all potentially live objects, and reclaim the memory of dead objects.

Scheme objects are also opaque in the sense that the data structures used to represent Scheme objects are not exposed, at the Scheme level, to the programmer who can only interact with objects through an interface.

Unmanaged environments, such as the operating system on which Vicare runs, require that the programmer manages the allocation and deallocation of system resources herself. Memory regions, file handles, external devices, the screen, etc., are all examples of resources whose management must be coordinated among the different parts of the system, and this becomes the responsibility of the programmer who is wiring the different subsystems together.

The procedures acting on pointer objects are meant to provide a way to interface with the low level memory operations such as setting and getting bytes from specific locations in memory.