Practical Foundations for Programming Languages

Cambridge University Press
Free sample

Types are the central organizing principle of the theory of programming languages. In this innovative book, Professor Robert Harper offers a fresh perspective on the fundamentals of these languages through the use of type theory. Whereas most textbooks on the subject emphasize taxonomy, Harper instead emphasizes genetics, examining the building blocks from which all programming languages are constructed. Language features are manifestations of type structure. The syntax of a language is governed by the constructs that define its types, and its semantics is determined by the interactions among those constructs. The soundness of a language design – the absence of ill-defined programs – follows naturally. Professor Harper's presentation is simultaneously rigorous and intuitive, relying on elementary mathematics. The framework he outlines scales easily to a rich variety of language concepts and is directly applicable to their implementation. The result is a lucid introduction to programming theory that is both accessible and practical.
Read more

About the author

Robert Harper has been a member of the faculty of Computer Science at Carnegie Mellon University since 1988. His main research interest is in the application of type theory to the design and implementation of programming languages and to the development of systems for mechanization of mathematics. Professor Harper is a recipient of the Allen Newell Medal for Research Excellence and the Herbert A. Simon Award for Teaching Excellence at Carnegie Mellon and is a Fellow of the Association for Computing Machinery.

Read more
Loading...

Additional Information

Publisher
Cambridge University Press
Read more
Published on
Dec 17, 2012
Read more
Pages
491
Read more
ISBN
9781107311282
Read more
Language
English
Read more
Genres
Computers / Computer Science
Computers / Programming Languages / General
Computers / Systems Architecture / General
Read more
Content Protection
This content is DRM protected.
Read more
Read Aloud
Available on Android devices
Read more

Reading information

Smartphones and Tablets

Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.

Laptops and Computers

You can read books purchased on Google Play using your computer's web browser.

eReaders and other devices

To read on e-ink devices like the Sony eReader or Barnes & Noble Nook, you'll need to download a file and transfer it to your device. Please follow the detailed Help center instructions to transfer the files to supported eReaders.
The importance of typed languages for building robust software systems is, by now, an undisputed fact. Years of research have led to languages with richly expressive, yet easy to use, type systems for high-level programming languages. Types provide not only a conceptual framework for language designers, but also a ord positive bene ts to the programmer, principally the ability to express and enforce levels of abstraction within a program. Early compilers for typed languages followed closely the methods used for their untyped counterparts. The role of types was limited to the earliest s- ges of compilation, and they were thereafter ignored during the remainder of the translation process. More recently, however, implementors have come to - cognize the importance of types during compilation and even for object code. Several advantages of types in compilation have been noted to date: { They support self-checking by the compiler. By tracking types during c- pilation it is possible for an internal type checker to detect translation errors at an early stage, greatly facilitating compiler development. { They support certi cation of object code. By extending types to the ge- rated object code, it becomes possible for a code user to ensure the basic integrity of that code by checking its type consistency before execution. { They support optimized data representations and calling conventions, even in the presence of modularity. By passing types at compile-, link-, and even run-time, it is possible to avoid compromises of data representation imposed by untyped compilation techniques.
The “unofficial official” guide to the Raspberry Pi, complete with creator insight

Raspberry Pi User Guide, 3rdEdition contains everything you need to know to get up and running with Raspberry Pi. This book is the go-to guide for Noobs who want to dive right in. This updated third edition covers the model B+ Raspberry Pi and its software, additional USB ports, and changes to the GPIO, including new information on Arduino and Minecraft on the Pi. You’ll find clear, step-by-step instruction for everything from software installation and configuration to customizing your Raspberry Pi with capability-expanding add-ons. Learn the basic Linux SysAdmin and flexible programming languages that allow you to make your Pi into whatever you want it to be.

The Raspberry Pi was created by the UK Non-profit Raspberry Pi Foundation to help get kids interested in programming. Affordable, portable, and utterly adorable, the Pi exceeded all expectations, introducing millions of people to programming since its creation. The Raspberry Pi User Guide, 3rd Edition helps you and your Pi get acquainted, with clear instruction in easy to understand language.

Install software, configure, and connect your Raspberry Pi to other devices Master basic Linux System Admin to better understand nomenclature and conventions Write basic productivity and multimedia programs in Scratch and Python Extend capabilities with add-ons like Gertboard, Arduino, and more

The Raspberry Pi has become a full-fledged phenomenon, popular with tinkerers, hackers, experimenters, and inventors. If you want to get started but aren’t sure where to begin, Raspberry Pi User Guide, 3rd Edition contains everything you need. 

The importance of typed languages for building robust software systems is, by now, an undisputed fact. Years of research have led to languages with richly expressive, yet easy to use, type systems for high-level programming languages. Types provide not only a conceptual framework for language designers, but also a ord positive bene ts to the programmer, principally the ability to express and enforce levels of abstraction within a program. Early compilers for typed languages followed closely the methods used for their untyped counterparts. The role of types was limited to the earliest s- ges of compilation, and they were thereafter ignored during the remainder of the translation process. More recently, however, implementors have come to - cognize the importance of types during compilation and even for object code. Several advantages of types in compilation have been noted to date: { They support self-checking by the compiler. By tracking types during c- pilation it is possible for an internal type checker to detect translation errors at an early stage, greatly facilitating compiler development. { They support certi cation of object code. By extending types to the ge- rated object code, it becomes possible for a code user to ensure the basic integrity of that code by checking its type consistency before execution. { They support optimized data representations and calling conventions, even in the presence of modularity. By passing types at compile-, link-, and even run-time, it is possible to avoid compromises of data representation imposed by untyped compilation techniques.
©2018 GoogleSite Terms of ServicePrivacyDevelopersArtistsAbout Google
By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.