An Experiential Introduction to Principles of Programming Languages

An Experiential Introduction to Principles of Programming Languages

Author: Hridesh Rajan

Publisher: MIT Press

Published: 2022-05-03

Total Pages: 305

ISBN-13: 0262045451

DOWNLOAD EBOOK

A textbook that uses a hands-on approach to teach principles of programming languages, with Java as the implementation language. This introductory textbook uses a hands-on approach to teach the principles of programming languages. Using Java as the implementation language, Rajan covers a range of emerging topics, including concurrency, Big Data, and event-driven programming. Students will learn to design, implement, analyze, and understand both domain-specific and general-purpose programming languages. Develops basic concepts in languages, including means of computation, means of combination, and means of abstraction. Examines imperative features such as references, concurrency features such as fork, and reactive features such as event handling. Covers language features that express differing perspectives of thinking about computation, including those of logic programming and flow-based programming. Presumes Java programming experience and understanding of object-oriented classes, inheritance, polymorphism, and static classes. Each chapter corresponds with a working implementation of a small programming language allowing students to follow along.


An Experiential Introduction to Principles of Programming Languages

An Experiential Introduction to Principles of Programming Languages

Author: Hridesh Rajan

Publisher: MIT Press

Published: 2022-05-03

Total Pages: 305

ISBN-13: 0262362430

DOWNLOAD EBOOK

A textbook that uses a hands-on approach to teach principles of programming languages, with Java as the implementation language. This introductory textbook uses a hands-on approach to teach the principles of programming languages. Using Java as the implementation language, Rajan covers a range of emerging topics, including concurrency, Big Data, and event-driven programming. Students will learn to design, implement, analyze, and understand both domain-specific and general-purpose programming languages. Develops basic concepts in languages, including means of computation, means of combination, and means of abstraction. Examines imperative features such as references, concurrency features such as fork, and reactive features such as event handling. Covers language features that express differing perspectives of thinking about computation, including those of logic programming and flow-based programming. Presumes Java programming experience and understanding of object-oriented classes, inheritance, polymorphism, and static classes. Each chapter corresponds with a working implementation of a small programming language allowing students to follow along.


Essentials of Programming Languages, third edition

Essentials of Programming Languages, third edition

Author: Daniel P. Friedman

Publisher: MIT Press

Published: 2008-04-18

Total Pages: 433

ISBN-13: 0262062798

DOWNLOAD EBOOK

A new edition of a textbook that provides students with a deep, working understanding of the essential concepts of programming languages, completely revised, with significant new material. This book provides students with a deep, working understanding of the essential concepts of programming languages. Most of these essentials relate to the semantics, or meaning, of program elements, and the text uses interpreters (short programs that directly analyze an abstract representation of the program text) to express the semantics of many essential language elements in a way that is both clear and executable. The approach is both analytical and hands-on. The book provides views of programming languages using widely varying levels of abstraction, maintaining a clear connection between the high-level and low-level views. Exercises are a vital part of the text and are scattered throughout; the text explains the key concepts, and the exercises explore alternative designs and other issues. The complete Scheme code for all the interpreters and analyzers in the book can be found online through The MIT Press web site. For this new edition, each chapter has been revised and many new exercises have been added. Significant additions have been made to the text, including completely new chapters on modules and continuation-passing style. Essentials of Programming Languages can be used for both graduate and undergraduate courses, and for continuing education courses for programmers.


Design Concepts in Programming Languages

Design Concepts in Programming Languages

Author: Franklyn Turbak

Publisher: MIT Press

Published: 2008-07-18

Total Pages: 1347

ISBN-13: 0262303159

DOWNLOAD EBOOK

Key ideas in programming language design and implementation explained using a simple and concise framework; a comprehensive introduction suitable for use as a textbook or a reference for researchers. Hundreds of programming languages are in use today—scripting languages for Internet commerce, user interface programming tools, spreadsheet macros, page format specification languages, and many others. Designing a programming language is a metaprogramming activity that bears certain similarities to programming in a regular language, with clarity and simplicity even more important than in ordinary programming. This comprehensive text uses a simple and concise framework to teach key ideas in programming language design and implementation. The book's unique approach is based on a family of syntactically simple pedagogical languages that allow students to explore programming language concepts systematically. It takes as premise and starting point the idea that when language behaviors become incredibly complex, the description of the behaviors must be incredibly simple. The book presents a set of tools (a mathematical metalanguage, abstract syntax, operational and denotational semantics) and uses it to explore a comprehensive set of programming language design dimensions, including dynamic semantics (naming, state, control, data), static semantics (types, type reconstruction, polymporphism, effects), and pragmatics (compilation, garbage collection). The many examples and exercises offer students opportunities to apply the foundational ideas explained in the text. Specialized topics and code that implements many of the algorithms and compilation methods in the book can be found on the book's Web site, along with such additional material as a section on concurrency and proofs of the theorems in the text. The book is suitable as a text for an introductory graduate or advanced undergraduate programming languages course; it can also serve as a reference for researchers and practitioners.


Abstraction Mechanisms and Language Design

Abstraction Mechanisms and Language Design

Author: Paul N. Hilfinger

Publisher: MIT Press (MA)

Published: 1983

Total Pages: 200

ISBN-13:

DOWNLOAD EBOOK

The research reported in this book advances the art of designing programming languages. It sets forth some design principles for abstraction mechanisms and demonstrates their power by showing how they led to improvements in the design of Ada, a new language devised for the Department of Defense and one that will be wisely used in DOD-related projects. The author was a full-time consultant for the preliminary Ada language design and his suggestions for revising it were remarkable in that of the many revisions proposed, his were among the few that proved effective. The book also considers the likely outcome of even more substantial changes to the current version of Ada. In focusing on the effects of abstracting or generalizing the definitional mechanisms of a particular language, the author notes that these effects are manifested in two ways: in the complexity and expressive power of the language, and in the expected performance of programs written in it. He concludes, with regard to the first effect, that proper design of the abstraction facilities of a language can simpify it and icrease its utility to programmers, and wiht regard to the second, that abstraction mechanisms need not involve.


Foundations for Programming Languages

Foundations for Programming Languages

Author: John C. Mitchell

Publisher: Mit Press

Published: 1996

Total Pages: 846

ISBN-13: 9780262133210

DOWNLOAD EBOOK

"Programming languages embody the pragmatics of designing software systems, and also the mathematical concepts which underlie them. Anyone who wants to know how, for example, object-oriented programming rests upon a firm foundation in logic should read this book. It guides one surefootedly through the rich variety of basic programming concepts developed over the past forty years." -- Robin Milner, Professor of Computer Science, The Computer Laboratory, Cambridge University "Programming languages need not be designed in an intellectual vacuum; John Mitchell's book provides an extensive analysis of the fundamental notions underlying programming constructs. A basic grasp of this material is essential for the understanding, comparative analysis, and design of programming languages." -- Luca Cardelli, Digital Equipment Corporation Written for advanced undergraduate and beginning graduate students, "Foundations for Programming Languages" uses a series of typed lambda calculi to study the axiomatic, operational, and denotational semantics of sequential programming languages. Later chapters are devoted to progressively more sophisticated type systems.


Computer Programming with COMIT II

Computer Programming with COMIT II

Author: Victor H. Yngve

Publisher: MIT Press (MA)

Published: 1972

Total Pages: 234

ISBN-13:

DOWNLOAD EBOOK

COMIT is a symbol-manipulating (or string-processing) language designed to handle texts, words, characters, logical expressions, descriptors, attributes, tags, and the like, and to manipulate them in the computer in ways that are relevant to problems in a variety of fields. COMIT is a general-purpose language which has been most efficiently used for problems in linguistics, mechanical translation of languages, information retrieval, modeling of cognitive processes, theorem proving, game playing, content analysis, graph theory, and many other primarily nonnumerical problems. In addition, COMIT serves as an introduction to a whole class of programming languages and language design features. This book is derived from two older manuals that have been out of print for some time, An Introduction to COMIT Programmingand COMIT Programmers' Reference Manual(MIT Press 1962). The programs originally run under COMIT will still run under COMIT II; yet this new publication includes improvements in the language that allow easier programming plus additional facilities. COMIT II is designed to be easily learned and used both as a language for a first course in programming for students in a wide range of disciplines and as a second or third programming language for more advanced students who can use this book for self-study. Included are numerous exercises and problems along with answers, as well as problems to be run on the computer under a problem-grader program that may be obtained from the author. COMIT II is fully available on the IBM 7000 series of computers, including the 709, 7090, 7040, and 7044, and a more recent implementation is available for the IBM 360.


Simply Scheme

Simply Scheme

Author: Brian Harvey

Publisher: MIT Press

Published: 1999

Total Pages: 620

ISBN-13: 9780262082815

DOWNLOAD EBOOK

Showing off scheme - Functions - Expressions - Defining your own procedures - Words and sentences - True and false - Variables - Higher-order functions - Lambda - Introduction to recursion - The leap of faith - How recursion works - Common patterns in recursive procedures - Advanced recursion - Example : the functions program - Files - Vectors - Example : a spreadsheet program - Implementing the spreadsheet program - What's next?


A Little Java, a Few Patterns

A Little Java, a Few Patterns

Author: Matthias Felleisen

Publisher: MIT Press

Published: 1998

Total Pages: 204

ISBN-13: 9780262561150

DOWNLOAD EBOOK

foreword by Ralph E. Johnson and drawings by Duane Bibby 'This is a book of 'why' not 'how.' If you are interested in the nature of computation and curious about the very idea behind object orientation, this book is for you. This book will engage your brain (if not your tummy). Through its sparkling interactive style, you will learn about three essential OO concepts: interfaces, visitors, and factories. A refreshing change from the 'yet another Java book' phenomenon. Every serious Java programmer should own a copy.' -- Gary McGraw, Ph.D., Research Scientist at Reliable Software Technologies and coauthor of Java Security Java is a new object-oriented programming language that was developed by Sun Microsystems for programming the Internet and intelligent appliances. In a very short time it has become one of the most widely used programming languages for education as well as commercial applications. Design patterns, which have moved object-oriented programming to a new level, provide programmers with a language to communicate with others about their designs. As a result, programs become more readable, more reusable, and more easily extensible. In this book, Matthias Felleisen and Daniel Friedman use a small subset of Java to introduce pattern-directed program design. With their usual clarity and flair, they gently guide readers through the fundamentals of object-oriented programming and pattern-based design. Readers new to programming, as well as those with some background, will enjoy their learning experience as they work their way through Felleisen and Friedman's dialogue. src='/graphics/yellowball.gif' href='/books/FELTP/Java-fm.html'Foreword and Preface