LEADER 05527nam 22007094a 450 001 9911006499903321 005 20210209231028.0 010 $a9786612120930 010 $a9781282120938 010 $a128212093X 010 $a9780080922997 010 $a0080922996 035 $a(CKB)2430000000040294 035 $a(EBL)631865 035 $a(OCoLC)430101406 035 $a(SSID)ssj0000472406 035 $a(PQKBManifestationID)12165347 035 $a(PQKBTitleCode)TC0000472406 035 $a(PQKBWorkID)10434203 035 $a(PQKB)10726314 035 $a(MiAaPQ)EBC631865 035 $a(MiAaPQ)EBC4952543 035 $a(Au-PeEL)EBL4952543 035 $a(CaONFJC)MIL212093 035 $a(OCoLC)781324792 035 $a(PPN)170267288 035 $a(FR-PaCSA)88809109 035 $a(FRCYB88809109)88809109 035 $a(EXLCZ)992430000000040294 100 $a20091202d2009 uy 0 101 0 $aeng 135 $aur|n|---||||| 181 $ctxt 182 $cc 183 $acr 200 10$aProgramming language pragmatics /$fMichael L. Scott 205 $a3rd ed. 210 $aAmsterdam ;$aBoston $cElsevier/Morgan Kaufmann Pub.$dc2009 215 $a1 online resource (941 p.) 300 $aDescription based upon print version of record. 311 08$a9780123745149 311 08$a0123745144 320 $aIncludes bibliographical references (p. 849-865) and index. 327 $aFront Cover; Programming Language Pragmatics; Copyright; Table of Contents; Foreword; Preface; Part I: Foundations; Chapter 1. Introduction; 1.1 The Art of Language Design; 1.2 The Programming Language Spectrum; 1.3 Why Study Programming Languages?; 1.4 Compilation and Interpretation; 1.5 Programming Environments; 1.6 An Overview of Compilation; 1.6.1 Lexical and Syntax Analysis; 1.6.2 Semantic Analysis and Intermediate Code Generation; 1.6.3 Target Code Generation; 1.6.4 Code Improvement; 1.7 Summary and Concluding Remarks; 1.8 Exercises; 1.9 Explorations; 1.10 Bibliographic Notes 327 $aChapter 2. Programming Language Syntax2.1 Specifying Syntax: Regular Expressions and Context-Free Grammars; 2.1.1 Tokens and Regular Expressions; 2.1.2 Context-Free Grammars; 2.1.3 Derivations and ParseTrees; 2.2 Scanning; 2.2.1 Generating a Finite Automaton; 2.2.2 Scanner Code; 2.2.3 Table-Driven Scanning; 2.2.4 Lexical Errors; 2.2.5 Pragmas; 2.3 Parsing; 2.3.1 Recursive Descent; 2.3.2 Table-DrivenTop-Down Parsing; 2.3.3 Bottom-Up Parsing; 2.3.4 Syntax Errors; 2.4 Theoretical Foundations; 2.5 Summary and Concluding Remarks; 2.6 Exercises; 2.7 Explorations; 2.8 Bibliographic Notes 327 $aChapter 3. Names, Scopes, and Bindings3.1 The Notion of Binding Time; 3.2 Object Lifetime and Storage Management; 3.2.1 Static Allocation; 3.2.2 Stack-Based Allocation; 3.2.3 Heap-Based Allocation; 3.2.4 Garbage Collection; 3.3 Scope Rules; 3.3.1 Static Scoping; 3.3.2 Nested Subroutines; 3.3.3 Declaration Order; 3.3.4 Modules; 3.3.5 ModuleTypes and Classes; 3.3.6 Dynamic Scoping; 3.4 Implementing Scope; 3.5 The Meaning of Names within a Scope; 3.5.1 Aliases; 3.5.2 Overloading; 3.5.3 Polymorphism and Related Concepts; 3.6 The Binding of Referencing Environments; 3.6.1 Subroutine Closures 327 $a3.6.2 First-ClassValues and Unlimited Extent3.6.3 Object Closures; 3.7 Macro Expansion; 3.8 Separate Compilation; 3.9 Summary and Concluding Remarks; 3.10 Exercises; 3.11 Explorations; 3.12 Bibliographic Notes; Chapter 4. Semantic Analysis; 4.1 The Role of the Semantic Analyzer; 4.2 Attribute Grammars; 4.3 Evaluating Attributes; 4.4 Action Routines; 4.5 Space Management for Attributes; 4.6 Decorating a SyntaxTree; 4.7 Summary and Concluding Remarks; 4.8 Exercises; 4.9 Explorations; 4.10 Bibliographic Notes; Chapter 5. Target Machine Architecture; Part II: Core Issues in Language Design 327 $aChapter 6. Control Flow6.1 Expression Evaluation; 6.1.1 Precedence and Associativity; 6.1.2 Assignments; 6.1.3 Initialization; 6.1.4 Ordering within Expressions; 6.1.5 Short-Circuit Evaluation; 6.2 Structured and Unstructured Flow; 6.2.1 Structured Alternatives to goto; 6.2.2 Continuations; 6.3 Sequencing; 6.4 Selection; 6.4.1 Short-Circuited Conditions; 6.4.2 Case/Switch Statements; 6.5 Iteration; 6.5.1 Enumeration-Controlled Loops; 6.5.2 Combination Loops; 6.5.3 Iterators; 6.5.4 Generators in Icon; 6.5.5 Logically Controlled Loops; 6.6 Recursion; 6.6.1 Iteration and Recursion 327 $a6.6.2 Applicative- and Normal-Order Evaluation 330 $aAs software rapidly becomes more complex and segmented, it is increasingly important for programmers to have references that can point out common underlying principles, provide guidance making about which of dozens of popular languages to learn, and explain the potentially dizzying jargon.For almost a decade, Michael Scott's classic book has been doing all of the above. His brilliant method of illuminating theoretical topics with practical implementation examples provides two-in-one coverage not found in any other text. After all, what good is knowing all the formalisms of a programmin 606 $aProgramming languages (Electronic computers) 615 0$aProgramming languages (Electronic computers) 676 $a005.13 676 $a005.13 700 $aScott$b Michael Lee$f1959-$0149864 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9911006499903321 996 $aProgramming language pragmatics$9473150 997 $aUNINA