دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نویسی: کامپایلرها ویرایش: 1 نویسندگان: Andrew W. Appel, Maia Ginsburg سری: ISBN (شابک) : 052158390X ناشر: Cambridge University Press سال نشر: 1998 تعداد صفحات: 557 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 5 مگابایت
در صورت تبدیل فایل کتاب Modern Compiler Implementation in C به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب پیاده سازی کامپایلر مدرن در سی نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
این کتاب درسی جدید و توسعه یافته تمام مراحل یک کامپایلر مدرن را شرح می دهد: تحلیل واژگانی، تجزیه، نحو انتزاعی، اقدامات معنایی، نمایش های میانی، انتخاب دستورالعمل از طریق تطبیق درخت، تجزیه و تحلیل جریان داده، تخصیص ثبت رنگ گراف، و سیستم های زمان اجرا. این شامل پوشش خوبی از تکنیک های فعلی در تولید کد و تخصیص ثبت، و همچنین زبان های کاربردی و شی گرا است که در اکثر کتاب ها وجود ندارد. علاوه بر این، اکنون فصل های پیشرفته تری گنجانده شده است تا بتوان از آن به عنوان پایه ای برای یک دوره دو ترم یا تحصیلات تکمیلی استفاده کرد. پذیرفتهشدهترین و موفقترین تکنیکها بهجای فهرستی جامع از هر گونه ممکن، بهصورت مختصر توصیف شدهاند. توضیحات مفصلی از رابط های بین ماژول های یک کامپایلر با فایل های هدر C واقعی نشان داده شده است. قسمت اول کتاب مبانی تالیف مناسب برای دوره اول یک ترم طراحی کامپایلر می باشد. بخش دوم، Advanced Topics که شامل فصلهای پیشرفته است، کامپایل زبانهای شیگرا و کاربردی، جمعآوری زباله، بهینهسازی حلقه، فرم SSA، زمانبندی حلقه و بهینهسازی سلسله مراتب حافظه پنهان را پوشش میدهد.
This new, expanded textbook describes all phases of a modern compiler: lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-coloring register allocation, and runtime systems. It includes good coverage of current techniques in code generation and register allocation, as well as functional and object-oriented languages, that are missing from most books. In addition, more advanced chapters are now included so that it can be used as the basis for a two-semester or graduate course. The most accepted and successful techniques are described in a concise way, rather than as an exhaustive catalog of every possible variant. Detailed descriptions of the interfaces between modules of a compiler are illustrated with actual C header files. The first part of the book, Fundamentals of Compilation, is suitable for a one-semester first course in compiler design. The second part, Advanced Topics, which includes the advanced chapters, covers the compilation of object-oriented and functional languages, garbage collection, loop optimizations, SSA form, loop scheduling, and optimization for cache-memory hierarchies.
Cover......Page 0
Half Title......Page 2
Title Page......Page 4
Copyright......Page 5
Content......Page 6
Preface......Page 10
Part I Fundamentals of Compilation......Page 12
1 Introduction......Page 14
1.1 Modules and interfaces......Page 15
1.2 Tools and software......Page 16
1.3 Data structures for tree languages......Page 18
2 Lexical Analysis......Page 27
2.1 Lexical tokens......Page 28
2.2 Regular expressions......Page 29
2.3 Finite automata......Page 32
2.4 Nondeterministic finite automata......Page 35
2.5 Lex: a lexical analyzer generator......Page 41
3 Parsing......Page 50
3.1 Context-free grammars......Page 52
3.2 Predictive parsing......Page 57
3.3 LR parsing......Page 67
3.4 Using parser generators......Page 80
3.5 Error recovery......Page 87
4.1 Semantic actions......Page 99
4.2 Abstract parse trees......Page 103
5.1 Symbol Tables ......Page 114
5.2 Bindings for the Tiger compiler......Page 123
5.3 Type-checking expressions......Page 126
5.4 Type-checking declarations......Page 129
6 Activation Records......Page 136
6.1 Stack frames......Page 138
6.2 Frames in the Tiger compiler......Page 146
7 Translation to Intermediate Code......Page 161
7.1 Intermediate representation trees......Page 162
7.2 Translation into trees......Page 165
7.3 Declarations......Page 181
8 Basic Blocks and Traces......Page 187
8.1 Canonical trees......Page 188
8.2 Taming conditional branches......Page 196
9 Instruction Selection......Page 202
9.1 Algorithms for instruction selection......Page 205
9.2 CISC machines......Page 213
9.3 Instruction selection for the Tiger compiler......Page 216
10 Liveness Analysis......Page 229
10.1 Solution of dataflow equations......Page 231
10.2 Liveness in the Tiger compiler......Page 240
11 Register Allocation......Page 246
11.1 Coloring by simplification......Page 247
11.2 Coalescing......Page 250
11.3 Precolored nodes......Page 254
11.4 Graph coloring implementation......Page 259
11.5 Register allocation for trees......Page 268
12 Putting It All Together......Page 276
Part II Advanced Topics......Page 282
13.1 Mark-and-sweep collection......Page 284
13.2 Reference counts......Page 289
13.3 Copying collection......Page 291
13.4 Generational collection......Page 296
13.5 Incremental collection......Page 298
13.6 Baker’s algorithm......Page 301
13.7 Interface to the compiler......Page 302
14.1 Classes......Page 310
14.2 Single inheritance of data fields......Page 313
14.3 Multiple inheritance......Page 315
14.4 Testing class membership......Page 317
14.6 Classless languages......Page 321
14.7 Optimizing object-oriented programs......Page 322
15 Functional Programming Languages......Page 326
15.1 A simple functional language......Page 327
15.2 Closures......Page 329
15.3 Immutable variables......Page 330
15.4 Inline expansion......Page 337
15.5 Closure conversion......Page 343
15.6 Efficient tail recursion......Page 346
15.7 Lazy evaluation......Page 348
16 Polymorphic Types......Page 361
16.1 Parametric polymorphism......Page 362
16.2 Type inference......Page 370
16.3 Representation of polymorphic variables......Page 380
16.4 Resolution of static overloading......Page 389
17 Dataflow Analysis......Page 394
17.1 Intermediate representation for flow analysis......Page 395
17.2 Various dataflow analyses......Page 398
17.3 Transformations using dataflow analysis......Page 403
17.4 Speeding up dataflow analysis......Page 404
17.5 Alias analysis......Page 413
18 Loop Optimizations......Page 421
18.1 Dominators......Page 424
18.2 Loop-invariant computations......Page 429
18.3 Induction variables......Page 430
18.4 Array-bounds checks......Page 436
18.5 Loop unrolling......Page 440
19 Static Single-Assignment Form......Page 444
19.1 Converting to SSA form......Page 447
19.2 Efficient computation of the dominator tree......Page 455
19.3 Optimization algorithms using SSA......Page 462
19.4 Arrays, pointers, and memory......Page 468
19.5 The control-dependence graph......Page 470
19.6 Converting back from SSA form......Page 474
19.7 A functional intermediate form......Page 475
20 Pipelining and Scheduling......Page 485
20.1 Loop scheduling without resource bounds......Page 489
20.2 Resource-bounded loop pipelining......Page 493
20.3 Branch prediction......Page 501
21 The Memory Hierarchy......Page 509
21.1 Cache organization......Page 510
21.2 Cache-block alignment......Page 513
21.3 Prefetching......Page 515
21.4 Loop interchange......Page 521
21.5 Blocking......Page 522
21.6 Garbage collection and the memory hierarchy......Page 525
A.2 Declarations......Page 529
A.3 Variables and expressions......Page 532
A.4 Standard library......Page 536
A.5 Sample Tiger programs......Page 537
Bibliography......Page 539
Index......Page 548