کتاب C و برنامه نویسی compiler optimization با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB

دوره جامع C و بهینه‌سازی کامپایلر: گامی فراتر در دنیای برنامه‌نویسی رازهای C و بهینه‌سازی کامپایلر را کشف کنید! دوره جامع C و برنامه نویسی Compiler Optimization معرفی دوره: دریچه‌ای نو به دنیای قدرتمن...

انتخاب پلن

انتخاب پلن برای ادامه خرید الزامی است.

پرداخت اقساطی
در صورت خرید اقساطی هر قسط: 87,488 تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.
پرداخت اقساطی با دیجی‌پی پرداخت اقساطی با ترب‌پی

🎓 دوره آموزشی جامع

📚 اطلاعات دوره

عنوان دوره: دوره C و برنامه نویسی compiler optimization

موضوع کلی: برنامه نویسی

موضوع میانی: سی (C)

📋 سرفصل‌های دوره

  • 1. مقدمه‌ای بر زبان C و تاریخچه آن
  • 2. نصب و راه‌اندازی کامپایلر (GCC, Clang) و محیط توسعه
  • 3. ساختار یک برنامه C: تابع main و اولین برنامه
  • 4. متغیرها، انواع داده‌های پایه (int, char, float, double)
  • 5. عملگرهای حسابی، رابطه‌ای و منطقی
  • 6. دستورات شرطی: if, else if, else
  • 7. دستور شرطی switch-case
  • 8. حلقه‌های تکرار: for, while, do-while
  • 9. توابع: تعریف، فراخوانی و بازگشت مقدار
  • 10. پارامترهای تابع و انتقال با مقدار (Pass by Value)
  • 11. محدوده (Scope) و طول عمر (Lifetime) متغیرها
  • 12. آرایه‌های یک بعدی و چند بعدی
  • 13. رشته‌ها در C (آرایه‌ای از کاراکترها) و توابع کتابخانه string.h
  • 14. پیش‌پردازنده C (#include, #define, #if)
  • 15. ورودی و خروجی استاندارد (printf, scanf)
  • 16. مقدمه‌ای بر اشاره‌گرها (Pointers)
  • 17. ریاضیات اشاره‌گرها (Pointer Arithmetic)
  • 18. رابطه بین آرایه‌ها و اشاره‌گرها
  • 19. تخصیص حافظه پویا (malloc, calloc, realloc, free)
  • 20. اشاره‌گر به تابع (Function Pointers)
  • 21. ساختارها (struct) و تعریف انواع داده سفارشی
  • 22. اتحادیه‌ها (union) و فیلدهای بیتی (Bit-fields)
  • 23. اشاره‌گر به ساختار و عملگرهای -> و .
  • 24. کلمات کلیدی `const` و `volatile`
  • 25. کلمات کلیدی `static` و `extern`
  • 26. فایل‌ها و عملیات ورودی/خروجی روی فایل
  • 27. مدل حافظه برنامه: Stack, Heap, Data Segment
  • 28. خطاهای رایج حافظه: نشت حافظه و اشاره‌گرهای معلق
  • 29. ساخت و استفاده از کتابخانه‌های استاتیک و داینامیک
  • 30. مراحل کامپایل: پیش‌پردازش، کامپایل، اسمبل، لینک
  • 31. آشنایی با زبان اسمبلی (x86/ARM)
  • 32. نگاشت ساختارهای C به اسمبلی: متغیرها و عبارات
  • 33. نگاشت ساختارهای C به اسمبلی: دستورات کنترلی و حلقه‌ها
  • 34. قراردادهای فراخوانی تابع و پشته (Stack Frame)
  • 35. بررسی خروجی اسمبلی کامپایلر (گزینه -S)
  • 36. معرفی نمایش میانی (Intermediate Representation - IR)
  • 37. مفهوم بهینه‌سازی کامپایلر: اهداف و محدودیت‌ها
  • 38. سطوح بهینه‌سازی کامپایلر (-O0, -O1, -O2, -O3, -Os)
  • 39. قانون "As-if" و رفتار تعریف‌نشده (Undefined Behavior)
  • 40. بهینه‌سازی با هدایت پروفایل (Profile-Guided Optimization - PGO)
  • 41. بهینه‌سازی در زمان لینک (Link-Time Optimization - LTO)
  • 42. وابستگی داده‌ها (Data Dependencies) و تحلیل آن
  • 43. گراف جریان کنترل (Control Flow Graph - CFG)
  • 44. فرم تخصیص تکی استاتیک (Static Single Assignment - SSA)
  • 45. بهینه‌سازی‌های مستقل از ماشین: مقدمه
  • 46. حذف کد مرده (Dead Code Elimination)
  • 47. انتشار ثابت‌ها (Constant Propagation) و درهم‌کردن ثابت‌ها (Constant Folding)
  • 48. انتشار کپی (Copy Propagation)
  • 49. حذف زیرعبارات مشترک (Common Subexpression Elimination)
  • 50. کاهش قدرت (Strength Reduction)
  • 51. حرکت کد نامتغیر حلقه (Loop-Invariant Code Motion)
  • 52. مقدمه‌ای بر بهینه‌سازی حلقه‌ها
  • 53. بازکردن حلقه (Loop Unrolling)
  • 54. ادغام و شکستن حلقه‌ها (Loop Fusion and Fission)
  • 55. تعویض حلقه‌ها (Loop Interchange)
  • 56. درون‌ریزی توابع (Function Inlining)
  • 57. بهینه‌سازی فراخوانی نهایی (Tail Call Optimization)
  • 58. تحلیل مستعار (Alias Analysis) و کلمه کلیدی `restrict`
  • 59. تخصیص ثبات‌ها (Register Allocation)
  • 60. تأثیر چیدمان داده‌ها بر عملکرد
  • 61. هم‌راستاسازی داده‌ها (Data Alignment) و Padding
  • 62. مقدمه‌ای بر معماری کامپیوتر: خط لوله (Pipelining)
  • 63. اجرای خارج از ترتیب (Out-of-Order Execution)
  • 64. پیش‌بینی انشعاب (Branch Prediction) و تأثیر آن بر کد
  • 65. حرکت شرطی (Conditional Move) به جای انشعاب
  • 66. سلسله مراتب حافظه نهان (Cache Hierarchy)
  • 67. مکان‌یابی داده‌ها (Data Locality): مکانی و زمانی
  • 68. نوشتن کدهای دوست‌دار حافظه نهان (Cache-Friendly Code)
  • 69. مشکل اشتراک کاذب (False Sharing) در برنامه‌های موازی
  • 70. مقدمه‌ای بر موازی‌سازی در سطح دستورالعمل (ILP)
  • 71. معماری‌های Superscalar و VLIW
  • 72. مقدمه‌ای بر SIMD (Single Instruction, Multiple Data)
  • 73. برداری‌سازی خودکار (Auto-Vectorization)
  • 74. نحوه نوشتن حلقه‌های قابل برداری‌سازی
  • 75. استفاده از توابع ذاتی کامپایلر (Compiler Intrinsics) برای SIMD
  • 76. بهینه‌سازی‌های بین رویه‌ای (Interprocedural Optimization - IPO)
  • 77. توابع خالص (Pure) و ثابت (Const)
  • 78. جداول پرش (Jump Tables) برای بهینه‌سازی دستور switch
  • 79. استفاده از ابزارهای پروفایلینگ (gprof, perf)
  • 80. تحلیل و تفسیر خروجی پروفایلر
  • 81. نحوه اندازه‌گیری دقیق عملکرد
  • 82. بررسی کد ماشین تولید شده (objdump, disassembler)
  • 83. استفاده از صفات خاص کامپایلر (__attribute__)
  • 84. استفاده از دستورات پراگما (#pragma) برای کنترل بهینه‌سازی
  • 85. موانع حافظه (Memory Barriers/Fences)
  • 86. مفهوم Data-Oriented Design
  • 87. بهینه‌سازی ضرب ماتریس: یک مطالعه موردی
  • 88. بهینه‌سازی الگوریتم‌های مرتب‌سازی
  • 89. تأثیر بهینه‌سازی بر اندازه کد اجرایی
  • 90. مبادله بین سرعت و اندازه (Space-Time Tradeoff)
  • 91. چه زمانی به کامپایلر اعتماد کنیم و چه زمانی به صورت دستی بهینه‌سازی کنیم
  • 92. محدودیت‌های بهینه‌سازی استاتیک
  • 93. کامپایلرهای Just-In-Time (JIT) در مقابل Ahead-Of-Time (AOT)
  • 94. آینده بهینه‌سازی کامپایلر و نقش هوش مصنوعی
  • 95. جمع‌بندی مفاهیم کلیدی و بهترین شیوه‌ها
  • 96. پروژه نهایی: پروفایل و بهینه‌سازی یک برنامه واقعی C
  • 97. **اشاره‌گرها و آرایه‌ها در C: مفاهیم پایه، محاسبات اشاره‌گر و کاربردها**
  • 98. **مدیریت حافظه پویا: تخصیص و آزادسازی حافظه با malloc و free، مشکلات رایج و روش‌های رفع آنها**
  • 99. **ساختارهای داده‌ای مقدماتی: آرایه‌ها، لیست‌های پیوندی و ساختمان‌ها (structs)**
  • 100. **مقدمه‌ای بر مفاهیم Optimization: سطوح مختلف Optimization، پروفایلینگ و ابزارهای تحلیل عملکرد**
تگ‌ها: Advanced C# C Language C Programming C# Compiler Compiler optimization Computer Science Optimization Performance Programming برنامه نویسی برنامه نویسی C++ بهینه سازی بهینه سازی کامپایلر زبان C++ علوم کامپیوتر عملکرد کامپایلر

نظرات

هنوز نظری ثبت نشده است.

وارد شوید تا نظر ثبت کنید.