The finite-state paradigm of computer sciences has provided a basis for natural-language applications that are efficient, elegant and robust. This volume is a practical guide to finite-state theory and the affiliated programming languages lexc and xfst. Readers will learn how to write tokenizers, spelling checkers, and especially morphological analyzer/generators for words in English, French, Finnish, Hungarian and other languages. Included are graded introductions, examples, and exercises suitable for individual study as well as formal courses. These take advantage of widely tested lexc and xfst applications that are just becoming available for noncommercial use via the Internet.