Storage allocation in typed languages - Lampson, Butler (Proc. 5th Ann. III Conf: Implementation and Design of Algorithmic Languages, 1977)
Several interfaces between a strongly typed language and a storage allocator or deallocator are defined. Using these interfaces, it is possible to program a wide variety of allocation and automatic deallocation strategies: boundary tag allocator, buddy system, reference counting, trace-and-mark garbage collection and many others. Provided the allocator and deallocator have certain well-defined properties, the type-safeness of the language can be guaranteed.