کتاب از منبع تا استقرار: ساخت یک کامپایلر داخلی برای یک ماشین پشتهای در عمل با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره از منبع تا استقرار: ساخت یک کامپایلر داخلی برای یک ماشین پشتهای در عمل
موضوع کلی: کامپایلرها و ماشینهای پشتهای
موضوع میانی: طراحی و پیادهسازی کامپایلرهای هدفمند برای معماری پشتهای
📋 سرفصلهای دوره
- 1. مفاهیم پایهٔ ماشین پشتهای
- 2. معماری پشتهای در معماریهای محاسباتی
- 3. ورودی و خروجیٔ برنامههای ماشهای
- 4. ارزیابی عبارات با پشته
- 5. مدیریت حافظهٔ استک در کامپایلر
- 6. طراحی منبع برنامهٔ هدف
- 7. نمادگذاری و متناسبساز اولیهٔ کدها
- 8. تجزیهٔ خطوط دستوری سطح بالا
- 9. ساختار درخت نحوی انتزاعی (AST)
- 10. نقش AST در فرآیند کامپایل
- 11. تبدیل AST به کد میانی
- 12. نمایش کد میانی مناسب ماشین پشتهای
- 13. انتخاب کدهای هدف پشتهای
- 14. مقدمه بر روش کدینگ استک
- 15. استفاده از استک برای انتقال دادهها
- 16. دستورالعملهای پایهٔ ماشین پشتهای
- 17. دستورالعملهای محاسبهٔ حرفهای
- 18. دستورالعملهای شرطی و شاخهداری
- 19. دستورالعملهای حلقهای در استک
- 20. پشتهگذاری آرگومانهای تابع
- 21. فراخوانی و بازگشت از توابع
- 22. مدیریت فریمٔ فراخوانی توابع
- 23. فشردهسازی دادههای استک
- 24. حذف مقدار غیراستفادهشده از استک
- 25. بهینهسازی ثبات متغیرها در استک
- 26. بهینهسازی عملیات ریاضی در استک
- 27. بهینهسازی عملیات منطقی در استک
- 28. حذف عملیات تکراری در AST
- 29. ادغام ثابتها در زمان کامپایل
- 30. بهینهسازی جا به جاییهای غیرضروری استک
- 31. استفاده از ثبات برای مقدارهای مکرر
- 32. پیشپردازشٔ عبارات ریاضی
- 33. پیشپردازشٔ عبارات منطقی
- 34. تجزیهٔ عبارات ترکیبی
- 35. تجزیهٔ عملگرهای یکتایی و دوتایی
- 36. تعیین اولویتها و استراتژی ارزیابی
- 37. پشتیبانی از اپراتورهای سفارشی
- 38. پشتیبانی از انواع دادههای اولیه
- 39. پشتیبانی از اعداد اعشاری و صحیح
- 40. پشتیبانی از رشتهها در استک
- 41. پشتیبانی از آرایهها و ساختارهای ترکیبی
- 42. پشتیبانی از آبجکتها و کلاسها
- 43. پشتیبانی از توابع داخلی
- 44. پشتیبانی از کتابخانههای استاندارد
- 45. مدیریت خطا در زمان کامپایل
- 46. گزارش خطای نحوی
- 47. گزارش خطای معنایی
- 48. گزارش خطای زمان اجرا
- 49. استراتژیهای یکبار خواندن منبع
- 50. تحلیل لغوگر (Lexer) برای زبان ماشهای
- 51. تحلیلگر نحوی (Parser) برای منبع سطح بالا
- 52. نوشتن یک Lexer سفارشی
- 53. نوشتن یک Parser نزولی
- 54. نوشتن یک Parser حلقهای برگشتی
- 55. مدیریت جدول نمادها
- 56. مدیریت نوعها در کامپایلر
- 57. بررسی انطباق نوعها
- 58. بررسی صحت ارجاعات متغیر
- 59. پیشنهاد اصلاحات در زمان کامپایل
- 60. پیکربندی خروجی نهایی برنامه
- 61. ایجاد فایلٔ باینری قابل اجرا
- 62. بستهبندیٔ برنامهٔ کامپایلشده
- 63. تست واحد برای تکههای کامپایلر
- 64. تست یکپارچهٔ خروجی نهایی
- 65. پروفایلینگٔ عملکرد برنامهٔ تولیدشده
- 66. پیشنهاداتی برای گسترشٔ زبان هدف
- 67. پشتیبانی از ماژولاریته و وارد کردن فایل
- 68. پشتیبانی از ماکروها و پیشپردازنده
- 69. مدیریت ورژنهای خروجی کامپایلر
- 70. یکپارچهسازی کامپایلر با ساختوگری
- 71. استفاده از اسکریپتهای ساختار برای کامپایل خودکار
- 72. ایجاد یک REPL برای زبان هدف
- 73. اشتباهات رایج در طراحیٔ کامپایلرهای پشتهای
- 74. اشتباهات رایج در مدیریت استک
- 75. اشتباهات رایج در بهینهسازی
- 76. مروری بر کتابخانههای آمادهٔ کامپایلرساز
- 77. مقایسهٔ کامپایلرهای موجود برای ماشین پشتهای
- 78. مطالعهٔ مثالهای واقعی از کامپایلرهای تولیدشده
- 79. برنامهنویسی برای هدفگذاریهای گرافیکی و سختافزارهای خاص
- 80. پیشنهاداتی برای پشتیبانی از همزمانی و پردازش موازی
- 81. طراحیٔ API برای کتابخانهٔ کامپایلر
- 82. مستندسازیٔ کدهای کامپایلر
- 83. بازبینی و نگهداریٔ کدهای کامپایلر
تگها:
bytecode
code generation
compiler
compiler design
compiler implementation
computer science
intermediate representation
JIT compilation
lexical analysis
optimization
parsing
programming language
software engineering
stack machine
virtual machine
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.