Concepts in programming languages
معرفی کتاب «Concepts in programming languages» نوشتهٔ John C. Mitchell, Krzysztof Apt، منتشرشده توسط نشر Cambridge University Press (Virtual Publishing) در سال 2001. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است. «Concepts in programming languages» در دستهٔ بدون دستهبندی قرار دارد.
Annotation 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 MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array MuPDF error: syntax error: cannot parse indirect reference in array Table of Contents 1 BackCover 2 Concepts in Programming Languages 3 Preface 5 Part 1: Function and Foundations 7 Chapter 1: Introduction 8 1.2 GOALS 10 1.3 PROGRAMMING LANGUAGE HISTORY 12 1.4 ORGANIZATION: CONCEPTS AND LANGUAGES 13 Chapter 2: Computability 15 2.2 CHAPTER SUMMARY 21 EXERCISES 22 Chapter 3: Lisp-Functions, Recursion, and Lists 23 3.1 LISP HISTORY 24 3.2 GOOD LANGUAGE DESIGN 26 3.3 BRIEF LANGUAGE OVERVIEW 28 3.4 INNOVATIONS IN THE DESIGN OF LISP 33 3.5 CHAPTER SUMMARY: CONTRIBUTIONS OF LISP 47 EXERCISES 48 Chapter 4: Fundamentals 55 4.1 COMPILERS AND SYNTAX 56 4.2 LAMBDA CALCULUS 65 4.4 FUNCTIONAL AND IMPERATIVE LANGUAGES 82 4.5 CHAPTER SUMMARY 88 EXERCISES 89 Part 2: Procedures, Types, Memory Mangement, and Control 97 Chapter 5: The Algol Family and ML 98 5.1 THE ALGOL FAMILY OF PROGRAMMING LANGUAGES 99 5.2 THE DEVELOPMENT OF C 105 5.3 THE LCF SYSTEM AND ML 107 5.4 THE ML PROGRAMMING LANGUAGE 110 5.5 CHAPTER SUMMARY 130 EXERCISES 131 Chapter 6: Type Systems and Type Inference 137 6.2 TYPE SAFETY AND TYPE CHECKING 141 6.3 TYPE INFERENCE 144 6.4 POLYMORPHISM AND OVERLOADING 155 6.5 TYPE DECLARATIONS AND TYPE EQUALITY 162 6.6 CHAPTER SUMMARY 167 EXERCISES 169 Chapter 7: Scope, Functions, and Storage Management 174 7.2 IN-LINE BLOCKS 177 7.3 FUNCTIONS AND PROCEDURES 182 7.4 HIGHER-ORDER FUNCTIONS 196 7.5 CHAPTER SUMMARY 204 EXERCISES 205 Chapter 8: Control in Sequential Languages 218 8.2 EXCEPTIONS 221 8.3 CONTINUATIONS 233 8.5 CHAPTER SUMMARY 243 EXERCISES 245 Part 3: Modularity, Abstraction, and Object-Oriented Programming 249 Chapter 9: Data Abstraction and Modularity 250 9.1 STRUCTURED PROGRAMMING 251 9.2 LANGUAGE SUPPORT FOR ABSTRACTION 258 9.3 MODULES 268 9.4 GENERIC ABSTRACTIONS 275 9.15 CHAPTER SUMMARY 285 EXERCISES 287 Chapter 10: Concepts in Object-Oriented Languages 294 10.1 OBJECT-ORIENTED DESIGN 295 10.2 FOUR BASIC CONCEPTS IN OBJECT-ORIENTED LANGUAGES 296 10.3 PROGRAM STRUCTURE 305 10.4 DESIGN PATTERNS 307 10.5 CHAPTER SUMMARY 310 10.6 LOOKING FORWARD: SIMULA, SMALLTALK, C++, JAVA 311 EXERCISES 312 Chapter 11: History of Objects-Simula and Smalltalk 318 11.2 OBJECTS IN SIMULA 321 11.3 SUBCLASSES AND SUBTYPES IN SIMULA 326 11.4 DEVELOPMENT OF SMALLTALK 329 11.5 SMALLTALK LANGUAGE FEATURES 331 11.6 SMALLTALK FLEXIBILITY 338 11.7 RELATIONSHIP BETWEEN SUBTYPING AND INHERITANCE 343 11.8 CHAPTER SUMMARY 347 EXERCISES 348 Chapter 12: Objects and Run-Time Efficiency- C++ 357 12.1 DESIGN GOALS AND CONSTRAINTS 358 12.1.2 Success of C++ 360 12.2 OVERVIEW OF C++ 361 12.3 CLASSES, INHERITANCE, AND VIRTUAL FUNCTIONS 367 12.4 SUBTYPING 376 12.5 MULTIPLE INHERITANCE 380 12.6 CHAPTER SUMMARY 386 EXERCISES 388 Chapter 13: Portability and Safety-Java 404 13.1 JAVA LANGUAGE OVERVIEW 406 13.2 JAVA CLASSES AND INHERITANCE 409 13.3 JAVA TYPES AND SUBTYPING 416 13.4 JAVA SYSTEM ARCHITECTURE 424 13.5 SECURITY FEATURES 432 13.5.2 The Java Sandbox 434 13.6 JAVA SUMMARY 437 EXERCISES 440 Part 4: Concurrency and Logic Programming 447 Chapter 14: Concurrent and Distributed Programming 448 14.1 BASIC CONCEPTS IN CONCURRENCY 450 14.2 THE ACTOR MODEL 458 14.3 CONCURRENT ML 461 14.4 JAVA CONCURRENCY 472 14.5 CHAPTER SUMMARY 483 EXERCISES 485 Chapter 15: The Logic Programming Paradigm and Prolog 492 15.2 BRIEF OVERVIEW OF THE LOGIC PROGRAMMING PARADIGM 494 15.3 EQUATIONS SOLVED BY UNIFICATION AS ATOMIC ACTIONS 496 15.4 CLAUSES AS PARTS OF PROCEDURE DECLARATIONS 500 15.5 PROLOG'S APPROACH TO PROGRAMMING 504 15.6 ARITHMETIC IN PROLOG 510 15.7 CONTROL, AMBIVALENT SYNTAX, AND META-VARIABLES 516 15.8 ASSESSMENT OF PROLOG 525 15.9 BIBLIOGRAPHIC REMARKS 528 15.10 CHAPTER SUMMARY 529 Appendix A: Additional Program Examples 530 Glossary 537 B 538 C 539 D 540 E 541 F 542 G 543 H 544 I-K 545 L 546 M 547 N 548 O 549 P-Q 550 R 551 S 552 T-U 553 V 554 Index 555 Index_A 556 Index_B 557 Index_C 558 Index_D 560 Index_E 561 Index_F 562 Index_G 563 Index_H 564 Index_I 565 Index_J 566 Index_K 567 Index_L 568 Index_M 569 Index_N 570 Index_O 571 Index_P 572 Index_Q 574 Index_R 575 Index_S 576 Index_T 578 Index_U 579 Index_V 580 Index_W 581 List of Figures 582 List of Tables 584 For Undergraduate And Beginning Graduate Students, This Textbook Explains And Examines 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. This Book Will Give The Reader A Better Understanding Of The Issues And Tradeoffs That Arise In Programming Language Design, And A Better Appreciation Of The Advantages And Pitfalls Of The Programming Languages They Use. Pt. 1. Functions And Foundations -- Introduction -- Computability -- Lisp: Functions, Recursion, And Lists -- Fundamentals -- Pt. 2. Procedures, Types, Memory Management, And Control -- The Algol Family And Ml -- Type Systems And Type Inference -- Scope, Functions, And Storage Management -- Control In Sequential Languages -- Pt. 3. Modularity, Abstraction, And Object-oriented Programming -- Data Abstraction And Modularity -- Concepts In Object-oriented Languages -- History Of Objects: Simula And Smalltalk -- Objects And Run-time Efficiency: C++ -- Portability And Safety: Java -- Pt. 4. Concurrency And Logic Programming -- Concurrent And Distributed Programming -- The Logic Programming Paradigm And Prolog. John C. Mitchell. Includes Index. This general textbook on programming languages is designed for undergraduate and beginning graduate students with some knowledge of basic programming. It teaches the concepts that appear in programming languages, issues that arise in their implementation, and the way that language design affects program development, with a special emphasis on object-oriented languages
دانلود کتاب Concepts in programming languages