دوره آموزشی
The Great Courses
دوبله زبان فارسی

رمزگشایی از ++C (زبان برنامه‌نویسی)

رمزگشایی از ++C (زبان برنامه‌نویسی)

✅ سرفصل و جزئیات آموزش

آنچه یاد خواهید گرفت:

  • تکامل تاریخی ++C را از «C با کلاس‌ها» تا شکل مدرن آن، از جمله تأثیر ابزارهای اولیه‌ای مانند Cfront، توضیح دهید. [input.txt | Word]
  • ستون‌های اصلی طراحی ++C را توصیف کنید: انتزاع‌های با overhead صفر، RAII (کسب منبع هنگام مقداردهی اولیه) و سازگاری با C، و اینکه این اصول چگونه ویژگی‌های زبان و بهترین شیوه‌ها را شکل می‌دهند.
  • نقش قالب‌ها و برنامه‌نویسی عمومی را در امکان‌پذیر کردن استفاده مجدد از کد، انتزاع و توسعه کتابخانه استاندارد قالب‌ها (STL) تحلیل کنید.
  • ویژگی‌های مدرن ++C مانند معنای انتقال، عبارت‌های لامبدا، استنتاج نوع، اشاره‌گرهای هوشمند و مدل حافظه رسمی را درک کنید.
  • مفاهیم پیشرفته زبان شامل conceptها، rangeها، Coroutines، ماژول‌ها و محاسبات زمان کامپایل را بررسی کنید.
  • کاربرد ++C را در حوزه‌های حساس به کارایی مانند موتورهای بازی، سیستم‌های تعبیه، مرورگرها، پایگاه‌های داده، معاملات پرسرعت و محاسبات علمی ارزیابی کنید.
  • اصول مدیریت حافظه در ++C را بیان کنید: مدت زمان نگهداری، طول عمر آبجکت، تخصیص پویا، placement new، هم‌ترازی و پدینگ
  • سازوکارهای پلی مورفیسم (ارسال مجازی، جدول‌های مجازی، type erasure) و جایگزین‌های مدرن (std::function، std::variant، std::any) را مقایسه کنید.
  • مدل‌های همروندی و موازی‌سازی را در ++C خلاصه کنید: مدل حافظه، atomics، ترتیب‌های حافظه، برنامه‌نویسی بدون قفل و الگوریتم‌های موازی 
  • بهترین شیوه‌ها و ابزارهای مربوط به پروفایلینگ، بنچمارک‌گیری، ایمنی در برابر استثنا، پایداری ABI و بهینه‌سازی کل برنامه را شناسایی کنید.
  • اصطلاحات مدرن و زیرمجموعه‌های ایمن‌تر را برای نوشتن کد ++C مقاوم، قابل نگهداری و کارآمد تشخیص دهید.
  • ویژگی های خوب و بد میان ++C و زبان‌های دیگر (Rust ،Go ،Python) را از نظر کارایی، ایمنی و اکوسیستم به‌طور انتقادی ارزیابی کنید.
  • توجه: این یک دوره نظری است. شامل نمونه کد، آزمایشگاه عملی یا دستورالعمل‌های پیاده‌سازی نمی‌شود.
  • تمرکز بر درک مفهومی، منطق طراحی زبان و اصول طراحی در سطح سیستم است.

پیش‌نیازهای دوره

  • درک خوب از مفاهیم کلی برنامه‌نویسی (متغیرها، جریان کنترل، توابع، ساختارهای داده).
  • آشنایی با سینتکس و معنای اولیه ++C (نیازی به کدنویسی پیشرفته نیست).
  • آشنایی با مفاهیم برنامه‌نویسی سیستمی (مدیریت حافظه، کامپایل، همروندی) مفید است اما اجباری نیست.
  • علاقه به طراحی زبان، معماری نرم‌افزار یا مهندسی کارایی

توضیحات دوره

این دوره نظری پیشرفته، بررسی عمیق در ++C به عنوان زبانی برای برنامه‌نویسی پرمحصول و سطح سیستم ارائه می‌دهد و بر تکامل، فلسفه طراحی و ویژگی‌های پیشرفته آن تمرکز دارد. این دوره با تکیه بر محتوای جامع موجود در input.txt، سیر تکامل ++C را از خاستگاه آن به عنوان «C با کلاس‌ها» تا نقش امروزی آن در زیرساخت نرم‌افزار مدرن دنبال می‌کند.

موضوعات کلیدی عبارتند از:

  • توسعه تاریخی ++C و تأثیر ابزارهای اولیه مانند Cfront بر طراحی کامپایلر و زبان
  • ستون‌های اصلی طراحی: انتزاع‌های با overhead صفر، RAII (کسب منبع هنگام مقداردهی اولیه)، و سازگاری با C
  • ظهور و تأثیر قالب‌ها، برنامه‌نویسی عمومی و کتابخانه استاندارد قالب‌ها (STL)
  • ویژگی‌های مدرن زبان: معنای انتقال، لامبداها، استنتاج نوع، اشاره‌گرهای هوشمند و مدل حافظه رسمی
  • مفاهیم پیشرفته: conceptها، rangeها، Coroutines، ماژول‌ها و محاسبات زمان کامپایل
  • ++C در حوزه‌های حساس به کارایی: موتورهای بازی، سیستم‌های تعبیه، مرورگرها، پایگاه‌های داده، معاملات پرسرعت و محاسبات علمی
  • مدیریت حافظه: مدت زمان نگهداری، طول عمر آبجکت، تخصیص پویا، placement new، هم‌ترازی و پدینگ
  • پلی مورفیسم و type erasure: ارسال مجازی، جدول‌های مجازی، type erasure و جایگزین‌های مدرن مانند std::function، std::variant و std::any.
  • همروندی و موازی‌سازی: مدل حافظه ++C، اتمیک‌ها، ترتیب‌های حافظه، برنامه‌نویسی بدون قفل و الگوریتم‌های موازی
  • ابزارها و بهترین شیوه‌ها: پروفایلینگ، بنچمارک‌گیری، sanitizers، ایمنی در برابر استثنا، پایداری ABI و بهینه‌سازی‌های کل برنامه
  • اصطلاحات مدرن و زیرمجموعه‌های ایمن‌تر: تأکید بر شیوه‌های مقاوم، اصطلاحی و استانداردهای کدنویسی در ++C

نکته مهم:

این یک دوره نظری است. هدف آن ارائه درکی دقیق و عمیق از ++C و اکوسیستم آن در سطح مفهومی و معماری است. این دوره شامل نمونه کد، آزمایشگاه‌های عملی برنامه‌نویسی یا دستورالعمل‌های گام‌به‌گام پیاده‌سازی نمی‌شود. در عوض، بر اصول، منطق و ویژگی های خوب و بد تمرکز دارد که زیربنای ویژگی‌های زبان ++C، الگوهای طراحی و کاربردهای سطح سیستم آن هستند. [input.txt | Word]

در پایان این دوره، دانشجویان قادر خواهند بود طراحی ++C، ویژگی‌های کارایی آن و کاربردش را در سیستم‌های نرم‌افزاری پیچیده تحلیل کرده و درباره آن استدلال کنند. این دوره برای دانشجویان پیشرفته کارشناسی، دانشجویان تحصیلات تکمیلی یا متخصصانی که به دنبال تسلط نظری به ++C مدرن هستند، ایده‌آل است.

این دوره برای چه کسانی مناسب است؟

  • دانشجویان پیشرفته کارشناسی و تحصیلات تکمیلی در علوم کامپیوتر، مهندسی نرم‌افزار یا زمینه‌های مرتبط
  • مهندسان نرم‌افزار حرفه‌ای، معماران سیستم و رهبران فنی که به دنبال درکی نظری و دقیق از ++C مدرن هستند.
  • توسعه‌دهندگانی که از زبان‌های دیگر به ++C مهاجرت می‌کنند و می‌خواهند فلسفه طراحی و کاربردهای سطح سیستم آن را درک کنند.
  • هر کسی که به مبانی مفهومی و ویژگی‌های کارایی ++C در زیرساخت نرم‌افزار معاصر علاقه دارد.

رمزگشایی از ++C (زبان برنامه‌نویسی)

  • تکامل ++C — از «C با کلاس‌ها» تا اصول مدرن 01:32
  • ستون‌های طراحی استراستروپ — Overhead صفر، RAII و سازگاری با C 06:11
  • قالب‌ها، برنامه‌نویسی عمومی و انقلاب STL 05:43
  • RAII، استثناها و مدیریت قطعی منابع 05:58
  • نقطه عطف استانداردسازی — C++98 و نخستین استاندارد ISO 06:06
  • پیشرفت بزرگ C++11 — معنای انتقال، لامبداها و ویژگی‌های اصلی مدرن 06:10
  • تکامل از C++11 به بعد — constexpr ،Concepts ،Ranges ،Coroutines و ماژول ها 05:36
  • آزمون 1 None
  • چرا ++C برای سیستم‌های حساس به کارایی؟ 05:40
  • موتورهای بازی و الگوهای گرافیک بلادرنگ 06:56
  • محدودیت‌های سیستم‌های تعبیه و بلادرنگ 06:27
  • مرورگرها و معماری اپلیکیشن های در مقیاس بزرگ 05:41
  • پایگاه‌های داده، موتورهای ذخیره‌سازی و مدیریت حافظه 06:03
  • مالی، معاملات پرسرعت (HFT) و سیستم‌های با تأخیر فوق‌العاده کم 06:06
  • محاسبات با کارایی بالا و شبیه‌سازی علمی 05:09
  • زیرساخت یادگیری ماشین و پایپ لاین ها سرویس‌دهی 06:32
  • هم‌کنش‌پذیری، پایداری ABI و پایگاه‌های کد بلندعمر 05:53
  • ویژگی های خوب و بد در برابر Rust ،Go و Python 07:16
  • آزمون 2 None
  • خط لوله کامپایل C++ — از منبع تا آبجکت 06:53
  • قالب‌ها، نمونه‌سازی و بار کاری کامپایلر 07:24
  • Name Mangling و هویت Symbol 05:36
  • پیوند، درون‌خطی و قانون یک تعریف (ODR) 04:34
  • پیوند ایستا در برابر پویا و رویت‌پذیری نمادها 06:17
  • ABIها، قراردادهای فراخوانی و سازگاری باینری Cross-Platform 06:09
  • مدیریت استثنا، Unwinding و فراداده زمان اجرا 05:43
  • بهینه‌سازی فراتر از مرزها — بهینه‌سازی زمان پیوند (LTO)، بهینه‌سازی هدایت‌شده با پروفایل (PGO) و دید کل برنامه 06:34
  • ماژول ها، هدرها و غلبه بر مشکلات وابستگی‌ها 04:15
  • آزمون 3 None
  • مدت زمان نگهداری و طول عمر آبجکت 06:31
  • ساخت، تخریب و ترتیب مقداردهی اولیه 06:00
  • تخصیص پویا، عملگرهای new/delete و (placement new 06:42
  • نمایش آبجکت، هم‌ترازی و پدینگ 07:08
  • نوع‌های trivial ،standard-layout ،POD و aggregate 05:35
  • دسته‌بندی‌های مقدار — lvalue ،xvalue ،prvalue و ماده‌سازی 06:42
  • کپی، انتقال و توابع عضو ویژه 05:49
  • حذف کپی، بهینه‌سازی مقدار بازگشتی (RVO) و معنای prvalue 05:42
  • Strict Aliasing، نوع‌گذاری مجدد و std::launder 04:26
  • آزمون 4 None
  • مدل نمونه‌سازی قالب و جستجوی دو مرحله‌ای 05:05
  • جستجوی وابسته به آرگومان (ADL) و حل ابهام overload در قالب‌ها 05:40
  • SFINAE، الگوی تشخیص و انتخاب ایمن overload 05:59
  • conceptها، requires و محدودیت‌های تمیزتر زمان کامپایل 05:34
  • الگوی CRTP (قالب بازگشتی عجیب) و پلی مورفیسم ایستا 05:52
  • ویژگی‌های نوع، قالب‌های alias و دستکاری نوع در زمان کامپایل 06:02
  • constexpr ،consteval و ارزیابی زمان کامپایل 06:30
  • استنتاج آرگومان قالب کلاس (CTAD) و راهنماهای استنتاج 06:10
  • ابتدایی‌های فرابرنامه‌نویسی پیشرفته — عبارت های Fold، پارامترهای قالب غیرنوع (NTTPها) و constexpr-if 07:03
  • آزمون 5 None
  • ارسال مجازی چگونه کار می‌کند؟ — vptrs و VTables 06:54
  • وراثت چندگانه و مجازی — طرح بندی، thunkها و تنظیم اشاره‌گر 05:13
  • هزینه‌های واقعی ارسال پویا — تأخیر، درون‌خطی‌سازی و مجازی‌زدایی 05:25
  • اطلاعات نوع زمان اجرا (RTTI) و dynamic_cast — اطلاعات نوع در زمان اجرا 06:06
  • استثناها، Unwinding و تعامل آن‌ها با پلی مورفیسم 05:49
  • اصول Concepts - Type Erasure و بهینه‌سازی با بافر کوچک 04:52
  • std::function ،std::any و std::variant — سازوکارها و هزینه‌ها 07:11
  • انتخاب میان پلی مورفیسم زمان اجرا و زمان کامپایل 06:23
  • آزمون 6 None
  • پشته در برابر heap — ویژگی‌های نگهداری و کارایی 05:42
  • عملگرهای new/delete و مدل معنایی تخصیص 05:52
  • تخصیص‌دهنده‌های سفارشی، arenaها و راهبردهای پولینگ 06:03
  • بهینه‌سازی‌های آبجکت کوچک و بافر کوچک 04:50
  • Placement new، تخریب صریح و استفاده مجدد از آبجکت 04:18
  • هم‌ترازی، پدینگ و نوع‌های بیش‌هم‌تراز 04:37
  • ریشه اشاره‌گر، نوع مؤثر و قواعد Aliasing 04:29
  • رفتار تعریف‌نشده ناشی از نقض طول عمر — dangling، استفاده پس از آزادسازی و استفاده مجدد 04:43
  • قاعده as-if و فرض‌های بهینه‌ساز که به رفتار تعریف‌شده وابسته هستند 03:58
  • آزمون 7 None
  • Threads ،Data Races و رفتار تعریف‌نشده 04:17
  • مدل حافظه ++C و رابطه happens-before 05:17
  • std::atomic و معنای عملیات اتمیک 06:15
  • ترتیب‌های حافظه — relaxed ،acquire/release ،acq_rel و seq_cst 05:17
  • fences، اولیه‌های همگام‌سازی و معنای mutex 04:54
  • برنامه‌نویسی Lock-Free و Wait-Free، مسئله ABA و تضمین‌های پیشرفت 06:56
  • futureها، promiseها و همگام‌سازی مبتنی بر task 07:08
  • الگوریتم‌های موازی، سیاست‌های اجرا و قطعی‌بودن نتایج 07:07
  • Coroutineها، تعلیق اجرا و تعامل با زمان‌بندها و اجراکننده‌ها 07:08
  • آزمون 8 None
  • تضمین‌های پیچیدگی و بی‌اعتبار شدن iteratorها 05:48
  • طرح بندی های کانتینر و ویژگی های خوب و بد عملکردی 05:37
  • مدل تخصیص‌دهنده و معنای انتشار 04:51
  • دسته‌بندی‌های Iterator ،Concepts و تضمین‌های عملی 05:29
  • الگوریتم‌ها — پایداری، پیچیدگی و رفتار در برابر استثنا 04:28
  • تضمین‌های ایمنی در برابر استثنا در کتابخانه استاندارد 05:12
  • std::string ،iostreamها و ویژگی های خوب و بد پردازش متن 06:01
  • نوع‌های سبک و نوع‌های جمعی — span ،optional ،variant و expected 05:34
  • پایداری ABI، پیاده‌سازی‌های متعدد STL و پیامدهای مهاجرت 02:13
  • آزمون 9 None

4,688,000 1,172,000 تومان

مشخصات آموزش

رمزگشایی از ++C (زبان برنامه‌نویسی)

  • تاریخ به روز رسانی: 1405/04/02
  • سطح دوره:متوسط
  • تعداد درس:88
  • مدت زمان :07:51:59
  • حجم :4.78GB
  • زبان:دوبله زبان فارسی
  • دوره آموزشی:AI Academy

آموزش های مرتبط

The Great Courses
2,260,000 452,000 تومان
  • زمان: 03:02:02
  • تعداد درس: 14
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
795,000 159,000 تومان
  • زمان: 58:00
  • تعداد درس: 12
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
19,403,000 3,880,600 تومان
  • زمان: 26:02:40
  • تعداد درس: 175
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
8,508,000 1,701,600 تومان
  • زمان: 11:25:13
  • تعداد درس: 94
  • سطح دوره:
  • زبان: دوبله فارسی
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
1,833,000 366,600 تومان
  • زمان: 02:27:39
  • تعداد درس: 24
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
6,100,500 1,220,100 تومان
  • زمان: 08:11:21
  • تعداد درس: 28
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
7,256,500 1,451,300 تومان
  • زمان: 09:44:25
  • تعداد درس: 67
  • سطح دوره:
  • زبان: دوبله فارسی
The Great Courses
3,634,500 726,900 تومان
  • زمان: 04:52:43
  • تعداد درس: 38
  • سطح دوره:
  • زبان: دوبله فارسی

آیا سوالی دارید؟

ما به شما کمک خواهیم کرد تا شغل و رشد خود را افزایش دهید.
امروز با ما تماس بگیرید