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: 168
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

Signal Computing: Digital Signals in the Software Domain

This book teaches students how digital signals are captured, represented, processed, communicated, and stored in computers. building on the exceptionally readable coverage that made it the favorite of DSP professionals worldwide. ...

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 ....

Computer Science Tapestry: Exploring Programming and Computer Science with C++

This book is designed for a first course1 in computer science that uses C++ as the language by which programming is studied. My goal in writing the book has not been to cover the syntax of a large language like C++, but to leverage the best features of the language using sound practices of prog...

Arduino : a quick guide

This tutorial is a quick guide about Arduino ,free pdf courses under 37 pages designed to beginners.You will learn how to interfacing a Joystick ,playing melody and reading Potentiometer with the microcontroller of Arduino technology....

Modern C

Download free course Modern C, pdf file on 324 pages by Jens Gustedt....

Advances in Satellite Communications

Satellite communication systems are now a major part of most telecommunications networks as well as our everyday lives through mobile personal communication systems and broadcast television. A sound understanding of such systems is therefore important for a wide range of system designers, engineers ...

App Modernization on Azure Succinctly

Download free course App Modernization on Azure Succinctly, pdf file on 122 pages by by Lorenzo Barbieri....

Algorithms Notes for Professionals

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

Rational Cybersecurity for Business

Use the guidance in this comprehensive field guide to gain the support of your top executi..., download free Cybersecurity tutorial in PDF (333 pages) created by Dan Blum ....

Data + Design: A Simple Introduction to Preparing and Visualizing Information

Visualizing Data is about visualization tools that provide deep insight into the structure of data. But the book is much more than just a compendium of useful tools. It conveys a strategy for data analysis that stresses the use of visualization to thoroughly study the structure of data and t...