A refinement of denotational semantics that stresses the algebraic structure on both syntactic and semantic entities. Typically syntactic and semantic entities are expressed as elements of some algebra, and the mapping from syntax to semantics is then a homomorphism. The syntax and semantics of expressions and simple languages invariably have obvious and natural algebraic structures. Any context-free language has the structure of an algebra of terms over a signature. Equations and initial algebras play a fundamental role in algebraic semantics. A feature of this approach is that it seeks, as far as possible, to study properties of programs subject only to some precisely stated axiomatic assumptions about the range of possible semantic algebras.