Bit-Level Object-Oriented Programming (BLOOP) David F. Bacon IBM T.J. Watson Research Center Object-oriented programming languages have always distinguished between ``primitives'' and ``user-defined'' data types, and in the case of languages like C++ and Java, the primitives are not even treated as objects, further fragmenting the programming model. This distinction is aesthetically unappealing, creates continuing pressure to expand the set of primitive types in the language, and requires an external specification of the semantics of primitive types. BLOOP provides a uniform reference-based object model down to the bit level, and allows primitive types to be defined within the language. While the semantics is uniform, implementations need not be, and complicated types can be represented very efficiently and often stored in registers. The result is a language that allows programmers to expand the set of primitive types in a simple and natural way, and provides many efficiency benefits. http://www.research.ibm.com/people/d/dfb