The document provides an overview of software languages and language processors. It discusses natural languages, controlled languages, and artificial languages. It then covers software languages which are used to engineer software. Different types of language processors like compilers, interpreters, scanners and parsers are described. Traditional compiler architecture and compilation by transformation are summarized. Modern compilers used in integrated development environments are also discussed. The document concludes by covering compiler construction and language workbenches.