This thesis describes a project to design and implement a data abstraction facility for LISP. The result of this project, the CADRS (Compiler for Access of Data Regardless of Structure) system, supports the definition, creation, and efficient manipulation of hybrid data/procedure structures that closely resemble class objects in languages like Simula [2] and Smalltalk