English Title : Concepts in Programming Languages 1st Edition
عنوان فارسی : کتاب مفاهیم در زبانهای برنامه نویسی
Description
Concepts in Programming Languages elucidates the central concepts used in modern programming languages, such as functions, types, memory management, and control. The book is unique in its comprehensive presentation and comparison of major object-oriented programming languages. Separate chapters examine the history of objects, Simula and Smalltalk, and the prominent languages C++ and Java. The author presents foundational topics, such as lambda calculus and denotational semantics, in an easy-to-read, informal style, focusing on the main insights provided by these theories. Advanced topics include concurrency, concurrent object-oriented programming, program components, and inter-language interoperability. A chapter on logic programming illustrates the importance of specialized programming methods for certain kinds of problems.
Table of contents
Part 1 Functions and Foundations
1 Introduction
2 Computability
3 Lisp: Functions, Recursion, and Lists
4 Fundamentals
Part 2 Procedures, Types, Memory Management, and Control
5 The Algol Family and ML
6 Type Systems and Type Inference
7 Scope, Functions, and Storage Management
8 Control in Sequential Languages
Part 3 Modularity, Abstraction, and Object-Oriented Programming
John Mitchell is the Mary and Gordon Crary Family Professor, professor of computer science, and by courtesy professor of electrical engineering and professor of education. He was previously appointed as Stanford Vice Provost for Online Learning (2012-2015) and Vice Provost for Teaching and Learning (2015-2018). His team worked with more than 500 Stanford faculty members and instructors on over 1,000 online projects for campus or public audiences and organized the Year of Learning to envision the future of teaching and learning at Stanford and beyond. As co-director of the Lytics Lab, Carta Lab and Pathways Lab, he has worked to improve educational outcomes through data-driven research and iterative design.
Recent interviews and articles for the general public include: The Ethics of Emerging Technologies (podcast with Tom Byers and Mildred Cho), Aspen Institute Forum for the Future of Higher Education Interview Series - John Mitchell, and School of Engineering Interviews ”How can we improve online learning?” and “How can we design for security?.”
Mitchell’s past research has focused on computer security, including network protocols, web security, and privacy, as well as programming languages and applications of mathematical logic to computer science. Relevant publications include Reinforcement Learning for the Adaptive Scheduling of Educational Activities (CHI 2020), Automated Analysis of Cryptographic Assumptions in Generic Group Models (J. Cryptology, 2019), Evaluating the privacy properties of telephone metadata (PNAS 2016), Third-party web tracking: Policy and technology (IEEE S&P). He is the author of two textbooks, Foundations for Programming Languages (1996) and Concepts in Programming Languages (2002); over 200 publications have received over 25,000 citations.
Mitchell’s first research project in online learning started in 2009, when he and six undergraduate students built Stanford CourseWare, an innovative platform that expanded to support interactive video and discussion. CourseWare served as the foundation for initial flipped classroom experiments at Stanford and helped inspire the first massive open online courses (MOOCs) from Stanford. Professor Mitchell currently serves as Chair of the Stanford Department of Computer Science.