Tree Adjoining Grammar (TAG) is a highly expressive formalism used in computational linguistics to model the syntactic structure of natural languages. It extends context-free grammar by allowing operations of adjoining and substitution, which enable the representation of complex language phenomena such as recursion and cross-serial dependencies.