05527nam 22007094a 450 991100649990332120210209231028.097866121209309781282120938128212093X97800809229970080922996(CKB)2430000000040294(EBL)631865(OCoLC)430101406(SSID)ssj0000472406(PQKBManifestationID)12165347(PQKBTitleCode)TC0000472406(PQKBWorkID)10434203(PQKB)10726314(MiAaPQ)EBC631865(MiAaPQ)EBC4952543(Au-PeEL)EBL4952543(CaONFJC)MIL212093(OCoLC)781324792(PPN)170267288(FR-PaCSA)88809109(FRCYB88809109)88809109(EXLCZ)99243000000004029420091202d2009 uy 0engur|n|---|||||txtccrProgramming language pragmatics /Michael L. Scott3rd ed.Amsterdam ;Boston Elsevier/Morgan Kaufmann Pub.c20091 online resource (941 p.)Description based upon print version of record.9780123745149 0123745144 Includes bibliographical references (p. 849-865) and index.Front 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 NotesChapter 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 NotesChapter 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 Closures3.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 DesignChapter 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 Recursion6.6.2 Applicative- and Normal-Order EvaluationAs 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 programminProgramming languages (Electronic computers)Programming languages (Electronic computers)005.13005.13Scott Michael Lee1959-149864MiAaPQMiAaPQMiAaPQBOOK9911006499903321Programming language pragmatics473150UNINA