Programming Language Pragmatics -  Michael Scott

Programming Language Pragmatics (eBook)

eBook Download: PDF | EPUB
2009 | 3. Auflage
944 Seiten
Elsevier Science (Verlag)
978-0-08-092299-7 (ISBN)
Systemvoraussetzungen
Systemvoraussetzungen
55,95 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Programming Language Pragmatics is the most comprehensive programming language textbook available today. Taking the perspective that language design and language implementation are tightly interconnected, and that neither can be fully understood in isolation, this critically acclaimed and bestselling book has been thoroughly updated to cover the most recent developments in programming language design. With a new chapter on run-time program management and expanded coverage of concurrency, this new edition provides both students and professionals alike with a solid understanding of the most important issues driving software development today.


  • Classic programming foundations text now updated to familiarize students with the languages they are most likely to encounter in the workforce, including including Java 7, C++, C# 3.0, F#, Fortran 2008, Ada 2005, Scheme R6RS, and Perl 6.

  • New and expanded coverage of concurrency and run-time systems ensures students and professionals understand the most important advances driving software today.

  • Includes over 800 numbered examples to help the reader quickly cross-reference and access content.

Programming Language Pragmatics, Third Edition, is the most comprehensive programming language book available today. Taking the perspective that language design and implementation are tightly interconnected and that neither can be fully understood in isolation, this critically acclaimed and bestselling book has been thoroughly updated to cover the most recent developments in programming language design, inclouding Java 6 and 7, C++0X, C# 3.0, F#, Fortran 2003 and 2008, Ada 2005, and Scheme R6RS. A new chapter on run-time program management covers virtual machines, managed code, just-in-time and dynamic compilation, reflection, binary translation and rewriting, mobile code, sandboxing, and debugging and program analysis tools. Over 800 numbered examples are provided to help the reader quickly cross-reference and access content. This text is designed for undergraduate Computer Science students, programmers, and systems and software engineers. Classic programming foundations text now updated to familiarize students with the languages they are most likely to encounter in the workforce, including including Java 7, C++, C# 3.0, F#, Fortran 2008, Ada 2005, Scheme R6RS, and Perl 6. New and expanded coverage of concurrency and run-time systems ensures students and professionals understand the most important advances driving software today. Includes over 800 numbered examples to help the reader quickly cross-reference and access content.

Front Cover 1
Programming Language Pragmatics 6
Copyright 7
Table of Contents 10
Foreword 22
Preface 24
Part I: Foundations 34
Chapter 1. Introduction 36
1.1 The Art of Language Design 38
1.2 The Programming Language Spectrum 41
1.3 Why Study Programming Languages? 45
1.4 Compilation and Interpretation 47
1.5 Programming Environments 55
1.6 An Overview of Compilation 56
1.7 Summary and Concluding Remarks 66
1.8 Exercises 67
1.9 Explorations 68
1.10 Bibliographic Notes 70
Chapter 2. Programming Language Syntax 72
2.1 Specifying Syntax: Regular Expressions and Context-Free Grammars 73
2.2 Scanning 82
2.3 Parsing 98
2.4 Theoretical Foundations 131
2.5 Summary and Concluding Remarks 132
2.6 Exercises 133
2.7 Explorations 139
2.8 Bibliographic Notes 140
Chapter 3. Names, Scopes, and Bindings 142
3.1 The Notion of Binding Time 143
3.2 Object Lifetime and Storage Management 145
3.3 Scope Rules 152
3.4 Implementing Scope 174
3.5 The Meaning of Names within a Scope 175
3.6 The Binding of Referencing Environments 182
3.7 Macro Expansion 190
3.8 Separate Compilation 192
3.9 Summary and Concluding Remarks 193
3.10 Exercises 194
3.11 Explorations 202
3.12 Bibliographic Notes 203
Chapter 4. Semantic Analysis 206
4.1 The Role of the Semantic Analyzer 207
4.2 Attribute Grammars 211
4.3 Evaluating Attributes 213
4.4 Action Routines 222
4.5 Space Management for Attributes 227
4.6 Decorating a SyntaxTree 228
4.7 Summary and Concluding Remarks 235
4.8 Exercises 236
4.9 Explorations 240
4.10 Bibliographic Notes 241
Chapter 5. Target Machine Architecture 244
Part II: Core Issues in Language Design 248
Chapter 6. Control Flow 250
6.1 Expression Evaluation 251
6.2 Structured and Unstructured Flow 272
6.3 Sequencing 277
6.4 Selection 278
6.5 Iteration 287
6.6 Recursion 301
6.7 Nondeterminacy 308
6.8 Summary and Concluding Remarks 309
6.9 Exercises 310
6.10 Explorations 316
6.11 Bibliographic Notes 318
Chapter 7. Data Types 320
7.1 Type Systems 321
7.2 Type Checking 334
7.3 Records (Structures) and Variants (Unions) 348
7.4 Arrays 356
7.5 Strings 373
7.6 Sets 375
7.7 Pointers and RecursiveTypes 376
7.8 Lists 395
7.9 Files and Input/Output 398
7.10 Equality Testing and Assignment 399
7.11 Summary and Concluding Remarks 402
7.12 Exercises 404
7.13 Explorations 410
7.14 Bibliographic Notes 411
Chapter 8. Subroutines and Control Abstraction 414
8.1 Review of Stack Layout 415
8.2 Calling Sequences 417
8.3 Parameter Passing 424
8.4 Generic Subroutines and Modules 441
8.5 Exception Handling 449
8.6 Coroutines 459
8.7 Events 465
8.8 Summary and Concluding Remarks 469
8.9 Exercises 470
8.10 Explorations 477
8.11 Bibliographic Notes 478
Chapter 9. Data Abstraction and Object Orientation 480
9.1 Object-Oriented Programming 482
9.2 Encapsulation and Inheritance 491
9.3 Initialization and Finalization 500
9.4 Dynamic Method Binding 509
9.5 Multiple Inheritance 522
9.6 Object-Oriented Programming Revisited 523
9.7 Summary and Concluding Remarks 525
9.8 Exercises 526
9.9 Explorations 529
9.10 Bibliographic Notes 530
Part III: Alternative Programming Models 534
Chapter 10. Functional Languages 536
10.1 Historical Origins 537
10.2 Functional Programming Concepts 538
10.3 A Review/Overview of Scheme 540
10.4 Evaluation Order Revisited 552
10.5 Higher-Order Functions 561
10.6 Theoretical Foundations 565
10.7 Functional Programming in Perspective 565
10.8 Summary and Concluding Remarks 568
10.9 Exercises 569
10.10 Explorations 573
10.11 Bibliographic Notes 574
Chapter 11. Logic Languages 576
11.1 Logic Programming Concepts 577
11.2 Prolog 578
11.3 Theoretical Foundations 597
11.4 Logic Programming in Perspective 597
11.5 Summary and Concluding Remarks 601
11.6 Exercises 602
11.7 Explorations 604
11.8 Bibliographic Notes 604
Chapter 12. Concurrency 606
12.1 Background and Motivation 607
12.2 Concurrent Programming Fundamentals 617
12.3 Implementing Synchronization 634
12.4 Language-Level Mechanisms 650
12.5 Message Passing 668
12.6 Summary and Concluding Remarks 669
12.7 Exercises 671
12.8 Explorations 676
12.9 Bibliographic Notes 678
Chapter 13. Scripting Languages 680
13.1 What Is a Scripting Language? 681
13.2 Problem Domains 686
13.3 Scripting the World Wide Web 711
13.4 Innovative Features 722
13.5 Summary and Concluding Remarks 748
13.6 Exercises 749
13.7 Explorations 754
13.8 Bibliographic Notes 755
Part IV: A Closer Look at Implementation 758
Chapter 14. Building a Runnable Program 760
14.1 Back-End Compiler Structure 760
14.2 Intermediate Forms 765
14.3 Code Generation 769
14.4 Address Space Organization 775
14.5 Assembly 777
14.6 Linking 781
14.7 Dynamic Linking 785
14.8 Summary and Concluding Remarks 786
14.9 Exercises 787
14.10 Explorations 789
14.11 Bibliographic Notes 790
Chapter 15. Run-time Program Management 792
15.1 Virtual Machines 795
15.2 Late Binding of Machine Code 815
15.3 Inspection/Introspection 830
15.4 Summary and Concluding Remarks 842
15.5 Exercises 843
15.6 Explorations 846
15.7 Bibliographic Notes 847
Chapter 16. Code Improvement 848
Appendix A: Programming Languages Mentioned 850
Appendix B: Language Design and Language Implementation 862
Appendix C: Numbered Examples 866
Bibliography 880
Index 898

Erscheint lt. Verlag 23.3.2009
Sprache englisch
Themenwelt Mathematik / Informatik Informatik Grafik / Design
Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Mathematik / Informatik Informatik Software Entwicklung
ISBN-10 0-08-092299-6 / 0080922996
ISBN-13 978-0-08-092299-7 / 9780080922997
Haben Sie eine Frage zum Produkt?
PDFPDF (Adobe DRM)
Größe: 9,1 MB

Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine Adobe-ID sowie eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

EPUBEPUB (Adobe DRM)
Größe: 8,8 MB

Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine Adobe-ID sowie eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Schritt für Schritt zu Vektorkunst, Illustration und Screendesign

von Anke Goldbach

eBook Download (2023)
Rheinwerk Design (Verlag)
39,90
Das umfassende Handbuch

von Christian Denzler

eBook Download (2023)
Rheinwerk Design (Verlag)
44,90
Das umfassende Handbuch

von Michael Moltenbrey

eBook Download (2024)
Rheinwerk Fotografie (Verlag)
39,90