Principles of Programming Languages


Principles of Programming Languages
Principles of Programming Languages
CC BY-SA

Book Details

Authors Mike Grant, Zachary Palmer, Scott Smith
Published 2020
Edition 1
Paperback 163 pages
Language English
License Creative Commons Attribution-ShareAlike

Book Description

In this open book, the authors aim to study the fundamental concepts in programming languages, rather than teaching a range of specific languages. They posit that while languages are easy to learn, the concepts behind them are difficult. The basic features they examine in turn include higher-order functions, data structures in the form of records and variants, mutable state, exceptions, objects and classes, and types. The book also covers language implementations, both through interpreters and compilers. Throughout the text, the authors guide the reader in writing small interpreters for toy languages, and in Chapter 8, they present the construction of a principled compiler. They define type checkers to identify which programs are well-typed and which are not. A more precise, mathematical view of interpreters and type checkers is also adopted, through the concepts of operational semantics and type systems, concepts that have historically evolved from the logician's view of programming.

The material has evolved from lecture notes used in a programming languages course for juniors, seniors, and graduate students at Johns Hopkins University. Although the book employs formal mathematical techniques like operational semantics and type systems, it does not emphasize proofs of properties of these systems. The authors nonetheless sketch the intuitions behind some proofs.


This book is available under a Creative Commons Attribution-ShareAlike license (CC BY-SA), which means that you are free to copy, distribute, and modify it, as long as you credit the original author and license any derivative works under the same terms.

If you enjoyed the book and would like to support the author, you can purchase a printed copy (hardcover or paperback) from official retailers.

Download and Read Links

Share this Book

[localhost]# find . -name "*Similar_Books*"


Learn Programming

C / C++ Python JavaScript Unix

This book is aimed at readers who are interested in software development but have very little to no prior experience. The book focuses on teaching the core principles around software development. It uses several technologies to this goal (e.g. C, Python, JavaScript, HTML, etc.) but is not a book about the technologies themselves. The reader will le

Fundamentals of Computer Programming with C#

C#

This open book aims to provide novice programmers solid foundation of basic knowledge regardless of the programming language. This book covers the fundamentals of programming that have not changed significantly over the last 10 years. Educational content was developed by an authoritative author team led by Svetlin Nakov from the Software University

Fundamentals of Python Programming

Python

Guido van Rossum created the Python programming language in the late 1980s. In contrast to other popular languages such as C, C++ , Java, and C#, Python strives to provide a simple but powerful syntax. Python is used for software development at companies and organizations such as Google, Yahoo, Facebook, CERN, Industrial Light and Magic, and NASA.

TouchDevelop, 3rd Edition

Mobile devices such as smartphones and tablets are set to become the main computers that virtually all people will own and carry with them at all times. And yet,mobile devices are not yet used for all computing tasks. A project at Microsoft Research was created to answer a simple question: "It is possible to create interesting apps directly on a sm

Principles of Data Science

Python

Principles of Data Science is intended to support one- or two-semester courses in data science. It is appropriate for data science majors and minors as well as students concentrating in business, finance, health care, engineering, the sciences, and a number of other fields where data science has become critically important. The authors have include

Fundamentals of C++ Programming

C / C++

Bjarne Stroustrup of AT&T Bell Labs created C++ in the mid 1980s. C++ is an extension of the programming language C, a product of AT&T Bell Labs from the early 1970s. C was developed to write the Unix operating system, and C is widely used for systems-level software and embedded systems development. C++ initially provided object-oriented programmin