Principles of Programming Languages


In this open book, our goal is to study the fundamental concepts in programming languages, as opposed to learning a range of specific languages. Languages are easy to learn, it is the concepts behind them that are difficult. The basic features we study in turn include higher-order functions, data structures in the form of records and variants, mutable state, exceptions, objects and classes, and types. We also study language implementations, both through language interpreters and language compilers. Throughout the book we write small interpreters for toy languages, and in Chapter 8 we write a principled compiler. We define type checkers to define which programs are well-typed and which are not. We also take a more precise, mathematical view of interpreters and type checkers, via the concepts of operational semantics and type systems. These last two concepts 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. While the book uses formal mathematical techniques such as operational semantics and type systems, it does not emphasize proofs of properties of these systems. We will nonetheless sketch the intuitions of some proofs.
Download free tutorial in PDF (163 pages) created by Mike Grant .
Pages : 163
Size :
File type : HTML
Downloads: 183
Created: 2021-05-15
License: Free
Author(s): Mike Grant
Principles of Programming Languages

Warning: Trying to access array offset on false in /home/tutovnfz/public_html/article.php on line 233

Others Principles of Programming Tutorials

Others related eBooks about Principles of Programming Languages

Kotlin Notes for Professionals

Download free course Kotlin Notes for Professionals, pdf file on 93 pages by Stack Overflow Community....

Learning R

Download free course Learning R, pdf file on 619 pages by Stack Overflow Community....

A Graduate Course in Applied Cryptography

Cryptography is an indispensable tool used to protect information in computing systems. It..., download free Cryptography tutorial in PDF (900 pages) created by Dan Boneh ....

Keras Succinctly

Download free course Keras Succinctly, pdf file on 105 pages by James McCaffrey....

Functional Programming in OCaml

This book is about making you a better programmer. It gives you the opportunity to now learn a new language from scratch and reflect along the way about the difference between programming and programming in a language....

iOS Notes for Professionals

Do you want to understand all the facets of iOS programming and build complex iOS apps? Then you have come to the right place. This problem-solution guide will help you to eliminate expensive learning curves and focus on specific issues to make you proficient at tasks and the speed-up time involved....

Guide to NumPy

NumPy is an extension of Python, which provides highly optimized arrays and numerical operations. NumPy replaces a lot of the functionality of Matlab and Mathematica specifically vectorized operations, but in contrast to those products is free and open source. In today's world of science and technol...

Microsoft Dynamics NAV Administration

Microsoft Dynamics NAV is an Enterprise Resource Planning (ERP) software product that inte..., download free NAV Administration tutorial in PDF (190 pages) created by Amit Sachdev ....

Energy Efficient Servers

Download free course Energy Efficient Servers, pdf file on 347 pages by Corey Gough, Ian Steiner, Winston Saunders....

Complete guide to Adobe Photoshop

With this pdf tutorial you will be able to create your own project in Photoshop .You will learn all the basics and create a project from scratch. Free training courses designated for student....