Attribute and unification grammar are syntax-directed grammatical formalisms that bear an important resemblance to each other and, especially in the case of unification grammar, enjoy certain currency as tools for linguistic description. A systematic study and comparison of the two formalisms, however, has not been reported to date. This paper reviews and compares the two formalisms, both from the point of view of their notations and expressive capabilities, and from that of their underlying algebraic semantics. The key to the semantic comparison is an algebraic formulation of the semantics of unification and the algebraic semantics of attribute grammar developed by Chirica and Martin [6]. The main result is that, from the point of view of their definitions and semantics, attribute grammar is more general than unification grammar, since it rests on a richer semantic algebra. This greater generality has important implications regarding the expressive power of the formalism and the possibility of efficient computational implementations for it. Also regarding their semantics, it is revealed that attribute grammar, unlike unification grammar, does not restrict attribute values to their basic term interpretation. This is a double-edged sword which, on the one hand, makes attribute grammar expressive and computationally efficient and, on the other, makes it computationally difficult to implement, because of the so-called “attribute evaluation problem”. For unification grammar, the noted restriction on term interpretations is at the heart of the difficulties encountered in implementing such linguistically motivated extensions to the basic formalism as negation and disjunction. The conclusion of this study is that attribute grammar is a better suited and more highly developed grammatical formalism for the description of natural and artificial languages, due to its greater generality, expressive power and, also importantly, more efficient computational implementations.