  As transformers have gained prominence in natural language processing, some
researchers have investigated theoretically what problems they can and cannot
solve, by treating problems as formal languages. Exploring such questions can
help clarify the power of transformers relative to other models of computation,
their fundamental capabilities and limits, and the impact of architectural
choices. Work in this subarea has made considerable progress in recent years.
Here, we undertake a comprehensive survey of this work, documenting the diverse
assumptions that underlie different results and providing a unified framework
for harmonizing seemingly contradictory findings.
