Traditionally, Smalltalk has been ill-suited for modeling the complex memory structures used by low-level languages like C, and by most modern operating systems. Often programmers were required to build facilities for accessing these structures using variable-byte classes and complex glue code. IBM Smalltalk, in addition to having byte, word, and long classes for accessing simple array-like memory structures efficiently, provides a mechanism for describing and accessing arbitrary memory structures.