The theory of formal languages is one of the oldest branches of theoretical computer science. Its original aim (in the fifties and sixties) was to clarify the laws and algorithms that underlie the definition and compilation of programming languages. Since then, formal language theory has changed very much. Today it includes mathematical topics like combinatorics of words, word equations, and coding theory, but it also covers connections to linguistics (for example, the study of contextual grammars), new computational paradigms (like DNA computing), and a wide range of applications, among them hypertext processing, database theory, and formal program verification. Many of these themes of modern formal language theory are represented in this volume.