دوره نوشتن کامپایلر و مفسر: راهنمای عملی ساخت پردازندههای زبان همراه با فلشکارت آموزشی — ارائه روی فلش مموری
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره نوشتن کامپایلر و مفسر: راهنمای عملی ساخت پردازندههای زبان
موضوع کلی: مهندسی زبانهای برنامهنویسی
موضوع میانی: پیادهسازی سیستمهای پردازش زبان
📋 سرفصلهای دوره
- 1. مقدمه: چرا باید پردازنده زبان بسازیم؟
- 2. کامپایلر، مفسر، ماشین مجازی: مفاهیم بنیادی
- 3. معماری یک کامپایلر: از کد منبع تا کد ماشین
- 4. معرفی زبان هدف برای پیادهسازی (زبان ساده پاسکالگونه)
- 5. آمادهسازی محیط توسعه و ابزارهای مورد نیاز
- 6. مبانی نظری: الفبا، رشتهها و زبانها
- 7. عبارات منظم (Regular Expressions) به عنوان ابزار توصیف توکنها
- 8. آتاماتاهای متناهی (Finite Automata): تئوری پشت اسکنرها
- 9. طراحی یک فریمورک ساده برای کامپایلر
- 10. بخش اول: تحلیل لغوی (اسکن کردن)
- 11. اسکنر چیست و توکن (Token) کدام است؟
- 12. ساختمان داده توکن و انواع آن
- 13. پیادهسازی اسکنر: خواندن کاراکتر به کاراکتر از سورس
- 14. پردازش فضای خالی (Whitespace) و کامنتها
- 15. تشخیص کلمات کلیدی (Keywords)
- 16. تشخیص شناسهها (Identifiers)
- 17. تحلیل و اسکن اعداد: صحیح و اعشاری
- 18. تحلیل و اسکن رشتههای متنی و کاراکترها
- 19. پردازش عملگرها و نمادهای خاص
- 20. مدیریت خطا در سطح تحلیل لغوی و گزارش موقعیت
- 21. بخش دوم: تحلیل نحوی (پارس کردن)
- 22. گرامرهای مستقل از متن (Context-Free Grammars)
- 23. نمادگذاری BNF و EBNF برای توصیف گرامر
- 24. درخت تجزیه (Parse Tree) و ابهام در گرامر
- 25. درخت نحو انتزاعی (Abstract Syntax Tree - AST)
- 26. روشهای پارس کردن: بالا به پایین در مقابل پایین به بالا
- 27. معرفی پارسرهای نزولی بازگشتی (Recursive Descent)
- 28. مشکل بازگشت چپ (Left Recursion) و راه حل آن
- 29. مجموعههای FIRST و FOLLOW برای پارسرهای پیشبین
- 30. راهبردهای مدیریت خطا در پارسر
- 31. طراحی ساختار نودهای درخت نحو انتزاعی (AST Nodes)
- 32. پیادهسازی پارسر: کلاس پایه و ابزارهای کمکی
- 33. پارس کردن اعلان متغیرها و ثابتها
- 34. پارس کردن عبارات حسابی: مشکل تقدم عملگرها
- 35. الگوی پارسر پرَت (Pratt Parser) برای مدیریت عبارات
- 36. پارس کردن دستور انتساب (Assignment Statement)
- 37. پارس کردن دستورات شرطی (IF-THEN-ELSE)
- 38. پارس کردن حلقههای تکرار (WHILE و FOR)
- 39. پارس کردن بلوکهای کد (BEGIN...END)
- 40. پارس کردن اعلان رویهها (Procedures) و توابع (Functions)
- 41. پارس کردن فراخوانی رویهها و توابع
- 42. تجمیع اسکنر و پارسر: ساخت یک تحلیلگر کامل
- 43. ابزاری برای بصریسازی درخت نحو انتزاعی
- 44. بخش سوم: ساخت مفسر (Tree-Walking Interpreter)
- 45. الگوی طراحی بازدیدکننده (Visitor Pattern) برای پیمایش AST
- 46. محیط زمان اجرا (Runtime Environment): پشته و هیپ
- 47. جدول نمادها (Symbol Table): مفهوم و طراحی اولیه
- 48. مدیریت حوزهها (Scopes): سراسری و محلی
- 49. تفسیر مقادیر لیترال و شناسهها
- 50. تفسیر عبارات حسابی و منطقی
- 51. اجرای دستور انتساب و بهروزرسانی متغیرها
- 52. اجرای دستورات شرطی
- 53. اجرای حلقههای تکرار
- 54. پشته فراخوانی (Call Stack) و رکوردهای فعالیت (Activation Records)
- 55. پیادهسازی فراخوانی رویه و تابع
- 56. مدیریت ارسال پارامترها (بر اساس مقدار و ارجاع)
- 57. پیادهسازی بازگشت مقدار از توابع
- 58. افزودن توابع داخلی (Built-in Functions) مانند چاپ
- 59. اجرای یک برنامه کامل با مفسر
- 60. بخش چهارم: تحلیل معنایی (Semantic Analysis)
- 61. نقش تحلیلگر معنایی در کامپایلر
- 62. جدول نمادهای تودرتو برای مدیریت حوزههای تو در تو
- 63. سیستم انواع داده (Type System): ایستا در مقابل پویا
- 64. تعریف انواع داده پایه در زبان ما
- 65. بررسی نوع (Type Checking) برای عبارات
- 66. بررسی نوع در دستورات انتساب
- 67. بررسی سازگاری نوع در فراخوانی توابع و پارامترها
- 68. گزارش خطاهای معنایی: متغیر تعریفنشده، عدم تطابق نوع
- 69. بخش پنجم: تولید کد میانی (Intermediate Representation)
- 70. چرا به کد میانی (IR) نیاز داریم؟
- 71. معرفی کد سهآدرسی (Three-Address Code)
- 72. تولید IR برای عبارات حسابی
- 73. تولید IR برای عبارات منطقی و بولی
- 74. تولید IR برای دستور انتساب
- 75. مدیریت جریان کنترل: برچسبها (Labels) و پرشها (Jumps)
- 76. تولید IR برای دستورات شرطی
- 77. تولید IR برای حلقههای تکرار
- 78. تولید IR برای فراخوانی توابع و مدیریت پشته
- 79. ساختار داده برای نمایش کد میانی
- 80. بخش ششم: بخش پشتی (Backend) و تولید کد نهایی
- 81. معرفی ماشین مجازی پشتهای (Stack-based Virtual Machine)
- 82. طراحی مجموعه دستورالعملهای (Instruction Set) ماشین مجازی
- 83. تولید کد ماشین مجازی از کد میانی
- 84. تولید کد برای بارگذاری مقادیر و متغیرها روی پشته
- 85. تولید کد برای عملیات حسابی و منطقی
- 86. تولید کد برای دسترسی به حافظه (خواندن و نوشتن)
- 87. تولید کد برای دستورات پرش شرطی و غیرشرطی
- 88. مدیریت پشته فراخوانی در سطح ماشین مجازی
- 89. تولید پیشدرآمد (Prologue) و مؤخره (Epilogue) توابع
- 90. تجمیع کامل خط لوله کامپایلر
- 91. بخش هفتم: ماشین مجازی و اجرای کد کامپایلشده
- 92. معماری و اجزای ماشین مجازی
- 93. چرخه واکشی-رمزگشایی-اجرا (Fetch-Decode-Execute)
- 94. پیادهسازی مفسر بایتکد (Bytecode Interpreter)
- 95. بارگذاری فایل بایتکد و اجرای آن
- 96. دیباگ کردن ماشین مجازی و کد تولیدشده
- 97. بخش هشتم: موضوعات پیشرفته
- 98. بهینهسازی کد: مقدمهای بر بهینهسازیهای ساده
- 99. بهینهسازی حذف کد مرده (Dead Code Elimination)
- 100. بهینهسازی درهمریختن ثابتها (Constant Folding)
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.