Type Systems for Programming Languages
by Robert Harper
Number of pages: 199
These notes were prepared for use in the graduate course Computer Science 15–814: Type Systems for Programming Languages at Carnegie Mellon University. Their purpose is to provide a unified account of the role of type theory in programming language design and implementation. The stress is on the use of types as a tool for analyzing programming language features and studying their implementation. The course studies the theory of type systems, with a focus on applications of type systems to practical programming languages. The emphasis is on the mathematical foundations underlying type systems and operational semantics. The course includes a broad survey of the components that make up existing type systems, and also teaches the methodology behind the design of new type systems.
Download or read it online for free here:
by Morten Heine B. Sorensen, Pawel Urzyczyn - Elsevier Science
This book give an introduction to parts of proof theory and related aspects of type theory relevant for the Curry-Howard isomorphism. It can serve as an introduction to any or both of typed lambda-calculus and intuitionistic logic.
by Keijo Ruohonen - Tampere University of Technology
In these notes the classical Chomskian formal language theory is fairly fully dealt with, omitting however much of automata constructs and computability issues. Surveys of Lindenmayer system theory and the mathematical theory of codes are given.
by Shuly Wintner - ESSLLI
This text is a mild introduction to Formal Language Theory for students with little or no background in formal systems. The motivation is Natural Language Processing, and the presentation is geared towards NLP applications, with extensive examples.
by Mike Grant, Zachary Palmer, Scott Smith
An introduction to the study of programming languages for juniors, seniors, and graduate students. The book treats topics from a foundational perspective, it focuses on core concepts in language design, not directly on applied languages.