Introduction to Programming Languages

Download the latest edition of the book

The book Introduction to Programming Languages is an introductory book on programming languages. We, Jaemin Hong and Sukyoung Ryu, write this book as the textbook of the KAIST Programming Languages course. However, we do not limit the use of the book; we would be happy to see the book being used by anyone who wants to learn or teach basic programming language concepts, including syntax, semantics, type systems, and interpreter/type-checker implementations. If you are a faculty and want to use the book in your lecture, we politely ask you to introduce the authors and this webpage to your students. We would be delighted to receive comments and corrections, which may be sent to jaemin.hong [at]


The contents of this book are based on the KAIST Programming Languages course. We thank PLT since the course referred to many materials from PLT in the beginning. We also thank every student who took the course before. We have learned many things from the interaction with the students, and those lessons have affected various parts of the book. In addition, we thank all the previous and current teaching assistants of the course. They gave opinions to the course and wrote some of the exercises in the book. Especially, Jihyeok Park highly contributed to the course, and Jihee Park helped us edit the exercises. We thank in advance everyone who will contribute to the book in the future.


The book is updated every six months.