دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Robert W. Sebesta
سری:
ISBN (شابک) : 9781292100555
ناشر: Pearson
سال نشر: 2016
تعداد صفحات: 765
زبان: english
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 3 مگابایت
در صورت تبدیل فایل کتاب Concepts of Programming Languages 11th global ed. به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب Concepts of Programming Languages یازدهمین ویرایش جهانی. نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
مفاهیم زبان های برنامه نویسی کامپیوتر، دانش آموزان را با مفاهیم اساسی زبان های برنامه نویسی کامپیوتر آشنا می کند و ابزارهای لازم برای ارزیابی زبان های معاصر و آینده را در اختیار آنها قرار می دهد. بحث عمیق در مورد ساختارهای زبان برنامه نویسی، مانند نحو و تحلیل واژگانی و نحوی، همچنین دانش آموزان را برای مطالعه طراحی کامپایلر آماده می کند.
Concepts of Computer Programming Languages introduces students to the fundamental concepts of computer programming languages and provides them with the tools necessary to evaluate contemporary and future languages. An in-depth discussion of programming language structures, such as syntax and lexical and syntactic analysis, also prepares students to study compiler design.
Cover......Page 1
Title Page......Page 6
Copyright Page......Page 7
Preface......Page 10
Acknowledgments......Page 14
About the Author......Page 16
Contents......Page 18
Chapter 1 Preliminaries......Page 28
1.1 Reasons for Studying Concepts of Programming Languages......Page 29
1.2 Programming Domains......Page 32
1.3 Language Evaluation Criteria......Page 33
1.4 Influences on Language Design......Page 44
1.5 Language Categories......Page 47
1.6 Language Design Trade-Offs......Page 48
1.7 Implementation Methods......Page 49
1.8 Programming Environments......Page 56
Review Questions......Page 57
Problem Set......Page 58
Chapter 2 Evolution of the Major Programming Languages......Page 60
2.1 Zuse’s Plankalkül......Page 63
2.2 Pseudocodes......Page 64
2.3 The IBM 704 and Fortran......Page 67
2.4 Functional Programming: Lisp......Page 72
2.5 The First Step Toward Sophistication: ALGOL 60......Page 77
2.6 Computerizing Business Records: COBOL......Page 83
2.7 The Beginnings of Timesharing: Basic......Page 88
Interview: Alan Cooper—User Design and Language Design......Page 91
2.8 Everything for Everybody: PL/I......Page 93
2.9 Two Early Dynamic Languages: APL and SNOBOL......Page 96
2.10 The Beginnings of Data Abstraction: SIMULA 67......Page 97
2.11 Orthogonal Design: ALGOL 68......Page 98
2.12 Some Early Descendants of the ALGOLs......Page 100
2.13 Programming Based on Logic: Prolog......Page 104
2.14 History’s Largest Design Effort: Ada......Page 106
2.15 Object-Oriented Programming: Smalltalk......Page 110
2.16 Combining Imperative and Object-Oriented Features: C++......Page 112
2.17 An Imperative-Based Object-Oriented Language: Java......Page 115
2.18 Scripting Languages......Page 118
2.19 The Flagship .NET Language: C#......Page 125
2.20 Markup-Programming Hybrid Languages......Page 127
Bibliographic Notes......Page 129
Review Questions......Page 130
Problem Set......Page 132
Programming Exercises......Page 134
Chapter 3 Describing Syntax and Semantics......Page 136
3.1 Introduction......Page 137
3.2 The General Problem of Describing Syntax......Page 138
3.3 Formal Methods of Describing Syntax......Page 140
History Note......Page 155
3.5 Describing the Meanings of Programs: Dynamic Semantics......Page 161
History Note......Page 169
Summary......Page 182
Review Questions......Page 183
Problem Set......Page 184
Chapter 4 Lexical and Syntax Analysis......Page 188
4.1 Introduction......Page 189
4.2 Lexical Analysis......Page 190
4.3 The Parsing Problem......Page 198
4.4 Recursive-Descent Parsing......Page 202
4.5 Bottom-Up Parsing......Page 210
Summary......Page 218
Review Questions......Page 219
Problem Set......Page 220
Programming Exercises......Page 221
Chapter 5 Names, Bindings, and Scopes......Page 224
5.1 Introduction......Page 225
History Note......Page 226
5.3 Variables......Page 227
5.4 The Concept of Binding......Page 230
5.5 Scope......Page 238
5.6 Scope and Lifetime......Page 249
5.7 Referencing Environments......Page 250
5.8 Named Constants......Page 251
Review Questions......Page 254
Problem Set......Page 255
Programming Exercises......Page 260
Chapter 6 Data Types......Page 262
6.1 Introduction......Page 263
6.2 Primitive Data Types......Page 265
6.3 Character String Types......Page 269
History Note......Page 270
6.4 Enumeration Types......Page 274
6.5 Array Types......Page 277
History Note......Page 278
6.6 Associative Arrays......Page 288
Interview: ROBERTO IERUSALIMSCHY—Lua......Page 289
6.7 Record Types......Page 292
6.8 Tuple Types......Page 295
6.9 List Types......Page 297
6.10 Union Types......Page 299
6.11 Pointer and Reference Types......Page 302
History Note......Page 305
6.12 Type Checking......Page 314
6.13 Strong Typing......Page 315
6.14 Type Equivalence......Page 316
6.15 Theory and Data Types......Page 320
Summary......Page 322
Review Questions......Page 323
Problem Set......Page 325
Programming Exercises......Page 326
Chapter 7 Expressions and Assignment Statements......Page 328
7.2 Arithmetic Expressions......Page 329
7.3 Overloaded Operators......Page 338
7.4 Type Conversions......Page 340
History Note......Page 342
History Note......Page 343
7.6 Short-Circuit Evaluation......Page 345
7.7 Assignment Statements......Page 346
History Note......Page 350
Summary......Page 351
Problem Set......Page 352
Programming Exercises......Page 355
Chapter 8 Statement-Level Control Structures......Page 356
8.1 Introduction......Page 357
8.2 Selection Statements......Page 359
8.3 Iterative Statements......Page 370
History Note......Page 382
8.5 Guarded Commands......Page 383
8.6 Conclusions......Page 385
Summary......Page 386
Review Questions......Page 387
Problem Set......Page 388
Programming Exercises......Page 389
Chapter 9 Subprograms......Page 392
9.2 Fundamentals of Subprograms......Page 393
9.3 Design Issues for Subprograms......Page 401
9.4 Local Referencing Environments......Page 402
9.5 Parameter-Passing Methods......Page 404
History Note......Page 412
9.6 Parameters That Are Subprograms......Page 420
9.7 Calling Subprograms Indirectly......Page 422
9.8 Design Issues for Functions......Page 424
9.9 Overloaded Subprograms......Page 426
9.10 Generic Subprograms......Page 427
9.12 Closures......Page 433
9.13 Coroutines......Page 435
Summary......Page 438
Review Questions......Page 439
Problem Set......Page 440
Programming Exercises......Page 442
Chapter 10 Implementing Subprograms......Page 444
10.1 The General Semantics of Calls and Returns......Page 445
10.2 Implementing “Simple” Subprograms......Page 446
10.3 Implementing Subprograms with Stack-Dynamic Local Variables......Page 448
10.4 Nested Subprograms......Page 456
10.5 Blocks......Page 463
10.6 Implementing Dynamic Scoping......Page 464
Review Questions......Page 468
Problem Set......Page 469
Programming Exercises......Page 472
Chapter 11 Abstract Data Types and Encapsulation Constructs......Page 474
11.1 The Concept of Abstraction......Page 475
11.2 Introduction to Data Abstraction......Page 476
11.3 Design Issues for Abstract Data Types......Page 479
11.4 Language Examples......Page 480
Interview: BJARNE STROUSTRUP—C++: Its Birth, Its Ubiquitousness, and Common Criticisms......Page 481
11.5 Parameterized Abstract Data Types......Page 499
11.6 Encapsulation Constructs......Page 503
11.7 Naming Encapsulations......Page 507
Summary......Page 510
Review Questions......Page 511
Programming Exercises......Page 513
Chapter 12 Support for Object-Oriented Programming......Page 516
12.1 Introduction......Page 517
12.2 Object-Oriented Programming......Page 518
12.3 Design Issues for Object-Oriented Languages......Page 522
12.4 Support for Object-Oriented Programming in Specific Languages......Page 527
Interview: BJARNE STROUSTRUP—On Paradigms and Better Programming......Page 531
12.5 Implementation of Object-Oriented Constructs......Page 555
12.6 Reflection......Page 558
Summary......Page 564
Review Questions......Page 565
Problem Set......Page 567
Programming Exercises......Page 568
Chapter 13 Concurrency......Page 570
13.1 Introduction......Page 571
13.2 Introduction to Subprogram-Level Concurrency......Page 576
13.3 Semaphores......Page 581
13.4 Monitors......Page 586
13.5 Message Passing......Page 588
13.6 Ada Support for Concurrency......Page 589
13.7 Java Threads......Page 597
13.8 C# Threads......Page 607
13.9 Concurrency in Functional Languages......Page 612
13.10 Statement-Level Concurrency......Page 615
Summary......Page 617
Review Questions......Page 619
Problem Set......Page 621
Programming Exercises......Page 622
Chapter 14 Exception Handling and Event Handling......Page 624
14.1 Introduction to Exception Handling......Page 625
History Note......Page 629
14.2 Exception Handling in C++......Page 631
14.3 Exception Handling in Java......Page 635
14.4 Exception Handling in Python and Ruby......Page 642
14.5 Introduction to Event Handling......Page 645
14.6 Event Handling with Java......Page 646
14.7 Event Handling in C#......Page 650
Summary......Page 653
Bibliographic Notes......Page 654
Review Questions......Page 655
Problem Set......Page 656
Programming Exercises......Page 658
Chapter 15 Functional Programming Languages......Page 660
15.1 Introduction......Page 661
15.2 Mathematical Functions......Page 662
15.3 Fundamentals of Functional Programming Languages......Page 665
15.4 The First Functional Programming Language: Lisp......Page 666
15.5 An Introduction to Scheme......Page 670
15.6 Common Lisp......Page 688
15.7 ML......Page 690
15.8 Haskell......Page 695
15.9 F#......Page 700
15.10 Support for Functional Programming in Primarily Imperative Languages......Page 703
15.11 A Comparison of Functional and Imperative Languages......Page 706
Summary......Page 708
Review Questions......Page 710
Problem Set......Page 712
Programming Exercises......Page 713
Chapter 16 Logic Programming Languages......Page 716
16.2 A Brief Introduction to Predicate Calculus......Page 717
16.3 Predicate Calculus and Proving Theorems......Page 721
16.4 An Overview of Logic Programming......Page 723
16.6 The Basic Elements of Prolog......Page 725
16.7 Deficiencies of Prolog......Page 740
16.8 Applications of Logic Programming......Page 746
Summary......Page 747
Review Questions......Page 748
Problem Set......Page 749
Programming Exercises......Page 750
Bibliography......Page 752
A......Page 764
B......Page 766
C......Page 767
D......Page 770
E......Page 772
F......Page 773
H......Page 774
I......Page 775
J......Page 776
L......Page 777
M......Page 778
N......Page 779
P......Page 780
R......Page 783
S......Page 784
U......Page 787
Z......Page 788