© 2014

Foundations of Programming Languages

  • Focuses on the three paradigms of programming: imperative, functional, and logic programming

  • Demonstrates not only how programming language concepts are used in language, but also how these concepts are implemented

  • Covers assembly language programming, C++, Standard ML, and Prolog


Part of the Undergraduate Topics in Computer Science book series (UTICS)

Table of contents

  1. Front Matter
    Pages i-xiii
  2. Kent D. Lee
    Pages 1-26
  3. Kent D. Lee
    Pages 27-52
  4. Kent D. Lee
    Pages 53-92
  5. C++
    Kent D. Lee
    Pages 93-171
  6. Kent D. Lee
    Pages 173-226
  7. Kent D. Lee
    Pages 227-266
  8. Kent D. Lee
    Pages 267-293
  9. Kent D. Lee
    Pages 295-323
  10. Kent D. Lee
    Pages 335-352
  11. Back Matter
    Pages 353-354

About this book


This clearly written and simple to follow textbook introduces the reader to the three styles of programming, examining object-oriented/imperative, functional, and logic programming. The focus of the text moves from highly prescriptive languages to very descriptive languages, demonstrating the many and varied ways in which we can think about programming.

Designed for interactive learning both inside and outside of the classroom, each programming paradigm is highlighted through the implementation of a non-trivial programming language, demonstrating when each language may be appropriate for a given problem.

Topics and features:

  • Includes review questions and solved practice exercises, with supplementary code and support files available from an associated website
  • Discusses the historical background to the models of computation used in implementing the programming languages we use today
  • Provides the foundations for understanding how the syntax of a language is formally defined by a grammar
  • Examines assembly language programming through a series of examples, using a Python Virtual Machine implementation called CoCo
  • Introduces object-oriented languages through examples in C++, functional programming with Standard ML, and programming using the logic language Prolog
  • Describes the development and implementation of a type inference system for the full-featured functional language Small

Suitable for stude

nts of computer science at the undergraduate level, this engaging textbook takes an active learning approach to the next stage in understanding programming languages, once the reader has established some familiarity with an imperative language and the basics of data structures.


Assembly Language Programming C++ Imperative, Functional, and Logic Programming Prolog Standard ML

Authors and affiliations

  1. 1.Luther CollegeDecorahUSA

About the authors

Dr. Kent D. Lee is Professor of Computer Science at Luther College, Decorah, Iowa, USA. He is the author of the successful Springer textbook Python Programming Fundamentals and the forthcoming Data Structures and Algorithms with Python.

Bibliographic information

  • Book Title Foundations of Programming Languages
  • Authors Kent D. Lee
  • Series Title Undergraduate Topics in Computer Science
  • Series Abbreviated Title Undergraduate Topics Computer Sci.
  • DOI
  • Copyright Information Springer International Publishing Switzerland 2014
  • Publisher Name Springer, Cham
  • eBook Packages Computer Science Computer Science (R0)
  • Softcover ISBN 978-3-319-13313-3
  • eBook ISBN 978-3-319-13314-0
  • Series ISSN 1863-7310
  • Series E-ISSN 2197-1781
  • Edition Number 1
  • Number of Pages XIII, 354
  • Number of Illustrations 0 b/w illustrations, 0 illustrations in colour
  • Topics Programming Languages, Compilers, Interpreters
  • Buy this book on publisher's site
Industry Sectors
IT & Software
Consumer Packaged Goods
Finance, Business & Banking
Oil, Gas & Geosciences


“Undergraduates studying programming languages will find this book to be a skillful and informative introduction to the subject.” (Marlin Thomas, Computing Reviews, July, 2015)