Class-Based and Algebraic Models of Objects by Gary T. Leavens and Don Pigozzi Abstract We compare different kinds of first-order models of objects and message passing, as found in object-oriented programming languages. We show that generic function models can easily simulate record models for static, class-based languages. We explore type systems for such languages, and show that our simulation preserves typing. Algebraic models emerge as abstractions of the generic function model that suppress details that are irrelevant for client code. Keywords: object-oriented, record, generic function, type, subtype, algebraic model, category-sorted algebra, order-sorted algebra, semantics, type theory. 1998 CR Categories: D.3.1 [Programming Languages] Formal Definitions and Theory --- Semantics; D.3.3 [Programming Languages] Language Constructs --- Abstract data types; F.3.2 [Logics and Meanings of Programs] Semantics of Programming Languages --- algebraic approaches to semantics, denotational sematics.