| 000 | 00887camuuu2002651a 4500 | |
| 001 | 000000089400 | |
| 005 | 19980526152541.0 | |
| 008 | 841026s1985 nyua b 00110 eng d | |
| 010 | ▼a 84025096 //r87 | |
| 020 | ▼a 0070651612 : ▼c $33.95 | |
| 040 | ▼a 211009 ▼c 211009 | |
| 049 | 1 | ▼l 412906168 ▼l 412906302 ▼l 421026569 ▼f 과학 |
| 050 | 0 | ▼a QA76.6 ▼b .T734 1985 |
| 082 | 0 0 | ▼a 001.64/2 ▼2 19 |
| 090 | ▼a 001.642 ▼b T789t | |
| 100 | 1 | ▼a Tremblay, Jean-Paul, ▼d 1938- |
| 245 | 1 4 | ▼a The theory and practice of compiler writing / ▼c Jean-Paul Tremblay, Paul G. Sorenson. |
| 260 | ▼a New York : ▼b McGraw-Hill, ▼c c1985. | |
| 300 | ▼a xix, 796 p. : ▼b ill. ; ▼c 25 cm. | |
| 440 | 0 | ▼a McGraw-Hill computer science series. |
| 504 | ▼a Includes bibliographies and indexes. | |
| 650 | 0 | ▼a Electronic digital computers ▼x Programming. |
| 650 | 0 | ▼a Compilers (Computer programs). |
| 700 | 1 0 | ▼a Sorenson, P. G. |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 중앙도서관/서고6층/ | 청구기호 001.642 T789t | 등록번호 412906168 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 2 | 소장처 중앙도서관/교육보존A/3A | 청구기호 001.642 T789t | 등록번호 412906302 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 3 | 소장처 과학도서관/Sci-Info(2층서고)/ | 청구기호 001.642 T789t | 등록번호 421026569 (3회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 4 | 소장처 세종학술정보원/인문자료실1(2층)/ | 청구기호 001.642 T789t | 등록번호 452042136 (1회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 중앙도서관/서고6층/ | 청구기호 001.642 T789t | 등록번호 412906168 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 2 | 소장처 중앙도서관/교육보존A/3A | 청구기호 001.642 T789t | 등록번호 412906302 | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(2층서고)/ | 청구기호 001.642 T789t | 등록번호 421026569 (3회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 세종학술정보원/인문자료실1(2층)/ | 청구기호 001.642 T789t | 등록번호 452042136 (1회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
목차
CONTENTS Preface = xvii Chapter 1 Introduction = 1 1-1 Programming Languages = 1 1-2 Translators = 4 1-3 Model of a Compiler = 5 Bibliography = 11 Chapter 2 Notation and Concepts for Languages and Grammars = 13 2-1 Set and Strings = 14 2-1.1 Basic Concepts of Set Theory = 14 Exercises 2-1.1 = 18 2-1.2 Relations = 19 Exercises 2-1.2 = 27 2-1.3 Strings = 29 2-2 Discussion of Grammars = 30 Exercises 2-2 = 37 2-3 Classification of Grammars = 37 Exercises 2-3 = 42 2-4 context-Free Grammars and Parsing = 42 2-4.1 syntax Terminology = 43 Exercises 2-4.1 = 50 2-4.2 A View of Parsing = 52 Exercises 2-4.2 = 56 2-4.3 Reduced Grammars and Grammars with ε-Rules = 57 Exercises 2-4.3 = 63 2-4.4 Extended BNF Notation = 64 Exercises 2-4.4 = 66 Bibliography = 67 Chapter 3 Programming-Language Design = 68 3-1 Overview of the Problem = 69 3-2 Preliminary Considerations = 70 3-3 Sources of Ideas = 72 3-4 Goals and Design Philosophies of Programming Languages = 74 3-4.1 Human Communication = 74 3-4.2 Prevention and Detection of Errors = 75 3-4.3 Usability = 78 3-4.4 Programming Effectiveness = 78 3-4.5 Compilability = 80 3-4.6 Efficiency = 81 3-4.7 Machine Independence = 83 3-4.8 Simplicity = 84 3-4.9 Uniformity = 84 3-4.10 Orthogonality = 85 3-4.11 Generalization and Specialization = 86 3-4.12 Other Design Philosophies = 86 3-5 Detailed Design = 88 3-5.1 Microstructure = 88 3-5.2 Expression Structure = 92 3-5.3 Data Structure = 93 3-5.4 control Structure = 102 3-5.5 Compile Structure = 113 3-5.6 I/O Structure = 114 3-6 Reduction of Size = 116 3-7 Pragmatics = 116 3-8 Comments on the Design of Ada = 120 3-8.1 Evaluation of Ada from a Language Design Viewpoint = 122 Usability and Program Effectiveness = 122 Machine Independence and Portability = 129 Efficiency = 129 Modularity and Maintainability = 129 Compilability and Compile Structure = 130 Simplicity = 130 3-8.2 Ada Programming Support Environment = 131 3-8.3 software Technology for Adaptable Reliable Systems (STARS) = 132 Chapter Exercises = 134 Bibliography = 135 Chapter 4 Scanners = 138 4-1 The Scanning Process = 139 4-2 An Elementary Scanner Design and Its Implementation = 141 Exercises 4-2 = 150 4-3 Regular Grammars and Regular Expressions = 151 Exercises 4-3 = 155 4-4 Finite-State Acceptors = 156 4-4.1 Deterministic Finite-State Acceptors = 156 4-4.2 Nondeterministic Finite-State Acceptors = 157 4-4.3 Nondeterministic Finite-State Acceptors with ε-Transitions = 162 Exercises 4-4 = 165 4-5 Equivalence of Regular Grammars and Finite-State Acceptors = 166 Exercises 4-5 = 169 4-6 Equivalence of Regular Expressions and Finite-State Acceptors = 170 Exercises 4-6 = 176 4-7 A Scanner Generator = 177 Exercises 4-7 = 181 Bibliography = 181 Chapter 5 Compile-time Error Handling = 182 5-1 Overview of Error Handling = 182 5-2 Error Detection = 185 5-2.1 The Nature of Syntax Errors = 185 5-2.2 How Errors Are Detected = 187 5-2.3 Where Errors Are Detected = 189 5-3 Error Reporting = 190 5-4 Error Recovery = 195 5-4.1 Ad Hoc Recovery Mechanisms = 195 5-4.2 Syntax-Directed Recovery = 197 5-4.3 Secondary Error Recovery = 199 5-4.4 Context-Sensitive Recovery = 200 5-5 Error Repair = 200 5-5.1Ad Hoc Repair = 201 5-5.2 Syntax-Directed = 201 5-5.3 Context-Sensitive = 202 5-5.4 Spelling = 203 Chapter Exercises = 205 Bibliography = 206 Chapter 6 Top-Down Parsing = 208 6-1 General Top-Down Parsing Strategies = 208 6-1.1 Brute-Force Approach = 209 Exercises 6-1.1 = 219 6-1.2 Recursive-Descent Parsers = 219 Recursive-Descent Parsing Algorithm = 219 Error Detection in Recursive-Descent Parsers = 224 Exercises 6-1.2 = 228 6-1.3 Notions of Top-Down Parsing with Limited Backup = 228 6-1.4 Top-Down Parsing with Limited Backup = 229 Exercises 6-1.4 = 234 6.2 Top-Down Parsing with No Backup = 235 6-2.1 Notions of Parsing with No Backup = 235 6-2.2 Simple LL(1) Grammars = 236 Exercises 6-2.2 = 241 6-2.3 LL(1) Grammars without ε-Rules = 242 Exercises 6-2.3 = 248 6-2.4 LL(1) Grammars without ε-Rules = 249 Exercises 6-2.4 = 258 6-2.5 Error Handling for LL(1) Parsers = 260 Exercises 6-2.5 = 272 Chapter Exercises = 272 Bibliography = 273 Chapter 7 Bottom-Up Parsing = 274 7-1 Polish Expressions and Their Compilation = 275 7-1.1 Polish Notation = 276 7-1.2 Conversion of Infix Expressions to Polish Notation = 278 7-1.3 Error Detection for Infix Expressions = 283 Exercises 7-1 = 285 7-2 Operator Precedence Grammars = 286 7-2.1 Notions and Use of Operator Precedence Relations = 287 7-2.2 Formal Definition of Operator Precedence Relations = 293 7-2.3 Operator Precedence parsing algorithm = 294 7-2.4 Precedence Functions in Operator Precedence Parsers = 298 7-2.5 Error Detection in Operator Precedence Parsers = 300 Exercises 7-2 = 301 7-3 Simple Precedence Grammars = 302 7-3.1 Notions and Use of Precedence Relations = 302 7-3.2 Formal Definition of Precedence Relations = 306 7-3.3 Parsing Algorithm for Simple Precedence Grammars = 309 7-3.4 Precedence Functions for Simple Precedence Grammars = 311 7-3.5 Error Recovery for Simple Precedence Parsers = 320 7-3.6 Notions of Extended Precedence = 332 Exercises 7-3 = 339 7-4 LR Grammars = 341 7-4.1 Concepts and Terminology = 341 Exercises 7-4.1 = 346 7-4.2 LR(0) Parsers = 346 Exercises 7-4.2 = 352 7-4.3 SLR(1) Parsers = 353 Exercises 7-4.3 = 361 7-4.4 Canonical LR(1) Parsers = 362 Exercises 7-4.4 = 369 7-4.5 LALR(1) Parsers = 370 Exercises 7-4.5 = 375 7-4.6 Efficient Generation of Lookahead Sets for LALR(1) Parsers = 375 Exercises 7-4.6 = 383 7-4.7 Representation and Optimization of LR Parsers = 383 Sparse-Matrix Representations = 384 Optimization Transformations = 386 7-4.8 Error Detection and Recovery in LR Parsers = 389 Early Methods of Error Recovery = 389 Application of Graham-Rhodes Method to LR Parsers = 392 Other LR Error-Recovery Methods = 410 7.5 Comparison of Parsing methods = 410 Bibliography = 415 Chapter 8 Symbol-Table-Handling Techniques = 418 8-1 Perspective and Motivation = 418 8-2 When to Construct and Interact with the Symbol Table = 419 8-3 Symbol-Table Contents = 422 8-4 Operations on Symbol Tables = 426 8-5 Symbol-Table Organizations for Non-Block-Structured Languages = 428 8-5.1 Unordered Symbol Tables = 428 8-5.2 Ordered Symbol Tables = 429 8-5.3 Tree-Structured Symbol Tables = 433 8-5.4 Hash Symbol Tables = 450 8-6 Symbol-Table Organizations for Block-Structured Languages = 464 8-6.1 Block-Structured Language Concepts = 465 8-6.2 Stack Symbol Tables = 467 8-6.3 Stack-Implemented Tree-Structured Symbol Tables = 468 8-6.4 Stack-Implemented Hash-Structured Symbol Tables = 471 Chapter Exercises = 474 Bibliography = 476 Chapter 9 Run-Time Storage Organization and Management = 477 9-1 Static Storage Allocation = 477 Exercises 9-1 = 480 9-2 Dynamic Storage Allocation = 480 9-2.1 Activation Records = 482 9-2.2 Parameter Area = 483 9-2.3 Display Area = 484 9-2.4 Run-time Address Calculation = 487 9-2.5 Handling Recursive Procedures = 488 Exercises 9-2 = 491 9-3 Heap Storage Allocation = 492 9-3.1 Implicit Storage Requests = 493 9-3.2 Explicit Storage Requests = 493 9-3.3 Management of Fixed-length Blocks = 495 9-3.4 Management of Variable-Length Blocks = 496 First-Fit Heap Storage-Management Strategy = 497 Boundary-Tag Heap Storage-Management Strategy = 501 Buddy-System Heap Storage-Management Strategy = 506 9-3.5 Free-as-You-Go Storage Release = 512 9-3.6 Garbage Collection = 513 9-3.7 Compaction = 517 Exercises 9-3 = 519 Bibliography = 520 Chapter 10 Intermediate Forms of Source Programs = 521 10-1 Polish Notation = 522 10-2 N-tuple Notation = 523 10-3 Abstract Syntax Trees = 525 10-4 Threaded Code = 527 10-5 Abstract Machine Code = 531 10-5.1 Portability and Abstract Machine = 531 10-5.2 The P-Code Abstract Machine for PASCAL = 532 Chapter Exercises = 534 Bibliography = 535 Chapter 11 Semantic Analysis and Code Generation = 536 11-1 What Is Mean by Semantic Analysis = 537 11-2 Implicit Stacking in Recursive-Descent Compilation = 540 11-3 Semantic Stacks in Bottom-Up Compilation = 548 11-4 Action Symbols in Top-Down Compilation = 554 11-5 Attributed Translation = 559 11-5.1 Attributed Translation Grammar = 560 11-5.2 L-Attributed Translation Grammar = 563 11-6 Example Language Constructs = 568 11-6.1 Declarations = 568 Constant type = 570 Variable Declarations = 571 Procedure Declarations = 578 11-6.2 Expressions = 579 11-6.3 Assignment Statements = 591 11-6.4 Control Statements = 592 Case-Selection Statements = 593 Repeat-While Statements = 595 For Loop Statements = 596 11-6.5 Procedure Calls and Returns = 598 Procedure Calls = 598 Return Statements and Procedure Termination = 603 11-6.6 Input and Output Statements = 603 Input Statements = 603 Output Statements = 607 11-6.7 Compiler Aids = 607 Chapter Exercises = 609 Bibliography = 609 Chapter 12 Code Optimization = 610 12-1 Introduction = 610 12-2 Basic Blocks = 611 12-3 Folding = 612 12-4 Redundant-Subexpression Elimination = 620 12-5 Optimization within Iterative Loops = 631 12-5.1 Loop Unrolling = 635 12-5.2 Frequency Reduction = 637 12-5.3 Strength Reduction = 646 12-5.4 Combining Loop-Optimization Techniques = 651 12-6 Global Optimization through Flowgraph Analysis = 655 12-6.1 Flowgraph Construction = 655 12-6.2 Flowgraph Analysis = 660 Flowgraph-Analysis Problems = 661 Flow-Analysis Algorithms = 667 12-6.3 Applications to Program Optimization = 678 12-6.4 Implementation and Further Considerations = 680 Chapter Exercises = 681 Bibliography = 683 Chapter 13 Machine-Dependent Optimization = 684 13-1 Introduction to Machine-Dependent Optimization = 684 13-2 Register-Allocation Optimization = 686 13-2.1 Register Allocation in Single-Register Machines = 686 13-2.2 Register Allocation in Multiregister Machines = 694 13-3 Machine Architecture and the Generation of Real Code = 702 13-3.1 The PDP-11 = 703 13-3.2 The VAX-11 = 710 13-3.3 The MC68000 = 716 Chapter Exercises = 720 Bibliography = 721 Chapter 14 Compiler-Compilers = 722 14-1 Introduction to Compiler-Compilers = 723 14-2 Examples of Parser Generators = 726 14-2.1 YACC : A LALR(1) Parser Generator = 727 14-2.2 An Attributed LL(1) Parser Generator = 735 14-3 Machine-Independent Code Generation = 742 14-3.1 The Production-Quality Compiler-Compiler system = 743 Introduction = 743 The Formalization of Instruction-Set Processors and TCOL = 745 The Code-Generation Process : Its Phases and Organization = 749 14-3.2 The Table-Driven Generator of Graham and Glanville = 755 Introduction = 756 The Target-Machine Description = 757 The Code-Generation Process = 758 Results and Extensions = 760 14-3.3 Other Code-Generation Systems = 761 Fraser's Knowledge-Based Code-Generator Generator = 761 The Finite-State Approach of Donegan = 763 Bibliography = 764 Appendix Algorithmic Notation = 767 A-1 Format Conventions = 768 A-1.1 Name of Algorithm = 768 A-1.2 Introductory Comment = 768 A-1.3 Steps = 768 A-1.4 Comments = 768 A-2 Statements and Control Structures = 768 A-2.1 Assignment Statement = 769 A-2.2 If Statement = 769 A-2.3 Case Statement = 770 A-2.4 Repeat Statement = 770 A-2.5 Go To and Exitloop Statements = 772 A-2.6 Exit Statement = 772 A-2.7 Variable Names = 773 A-3 Data Structures = 773 A-3.1 Arrays = 773 A-3.2 Dynamic Storage = 774 A-4 Arithmetic Operations and Expressions = 774 A-5 Strings and String Operations = 775 A-6 Relations and Relational Operators = 775 A-7 Logical Operations and Expressions = 776 A-8 Input and Output = 776 A-9 Subalgorithms = 777 A-9.1 Functions = 777 A-9.2 Procedures = 778 A-9.3 Parameters = 778 Indexes = 781 Name Index = 781 Subject Index = 785

