کتاب تحلیل نحوی کد؛ از گرامر و پارسر تا ساخت درخت نحوی و طراحی کامپایلر با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره تحلیل نحوی کد؛ از گرامر و پارسر تا ساخت درخت نحوی و طراحی کامپایلر
موضوع کلی: مهندسی نرمافزار و طراحی زبانهای برنامهنویسی
موضوع میانی: تحلیل نحوی و پردازش ساختار کد
📋 سرفصلهای دوره
- 1. مبانی تحلیل نحوی در پردازش کد
- 2. جایگاه تحلیل نحوی در فرایند کامپایل
- 3. تفاوت تحلیل لغوی و تحلیل نحوی
- 4. ساختار کلی Front-End کامپایلر
- 5. توکنها و جریان ورودی Parser
- 6. گرامر مستقل از متن و کاربرد آن
- 7. اجزای یک گرامر رسمی
- 8. ترمینالها و غیرترمینالها
- 9. تولیدها و قواعد گرامری
- 10. نماد آغاز و زبان تولیدشده
- 11. اشتقاق چپ و راست
- 12. درخت اشتقاق و ساختار سلسلهمراتبی
- 13. ابهام در گرامرهای مستقل از متن
- 14. تشخیص و رفع ابهام گرامری
- 15. حذف بازگشت چپ
- 16. فاکتورگیری چپ در گرامر
- 17. نرمالسازی گرامر برای Parsing
- 18. مفهوم Parser و وظایف آن
- 19. تحلیل نحوی Top-Down
- 20. تحلیل نحوی Bottom-Up
- 21. مقایسه روشهای Top-Down و Bottom-Up
- 22. Parserهای Recursive Descent
- 23. پیادهسازی Recursive Descent
- 24. مدیریت خطا در Recursive Descent
- 25. گرامرهای مناسب برای Recursive Descent
- 26. تحلیل نحوی Predictive
- 27. جدول Parsing و مفهوم Lookahead
- 28. مجموعههای FIRST
- 29. مجموعههای FOLLOW
- 30. ساخت جدول LL(1)
- 31. تشخیص تعارض در LL(1)
- 32. پیادهسازی Parser مبتنی بر LL(1)
- 33. تحلیل محدودیتهای LL(1)
- 34. مبانی Shift-Reduce Parsing
- 35. Stack در Parserهای Shift-Reduce
- 36. عملیات Shift و Reduce
- 37. تعارض Shift/Reduce
- 38. تعارض Reduce/Reduce
- 39. تحلیل گرامرهای LR
- 40. مفهوم Item در LR Parsing
- 41. ساخت حالتهای LR
- 42. ماشین حالت LR
- 43. جدول ACTION و GOTO
- 44. Parserهای LR(0)
- 45. مجموعههای Closure و GOTO
- 46. Parserهای SLR(1)
- 47. نقش FOLLOW در SLR
- 48. Parserهای LR(1)
- 49. Lookahead در LR(1)
- 50. Parserهای LALR(1)
- 51. مقایسه LR(0)، SLR، LR(1) و LALR
- 52. انتخاب الگوریتم Parsing مناسب
- 53. تولید خودکار Parser
- 54. کار با ابزارهای Parser Generator
- 55. تعریف Grammar برای Parser Generator
- 56. مدیریت Precedence و Associativity
- 57. حل تعارضهای گرامری با Precedence
- 58. ساختار درخت Syntax
- 59. Parse Tree و Abstract Syntax Tree
- 60. تفاوت Parse Tree و AST
- 61. ساخت AST هنگام Parsing
- 62. طراحی Nodeهای درخت نحوی
- 63. مدیریت Expressionها در AST
- 64. مدیریت Statementها در AST
- 65. نمایش ساختار برنامه به صورت AST
- 66. پیمایش درخت نحوی
- 67. Visitor Pattern برای AST
- 68. بازسازی کد از روی AST
- 69. تحلیل Syntax در زبانهای برنامهنویسی
- 70. Parsing عبارات ریاضی
- 71. Parsing عملگرهای چندسطحی
- 72. اولویت عملگرها در Grammar
- 73. Associativity در Expressionها
- 74. Parsing ساختارهای شرطی
- 75. Parsing حلقهها و بلوکهای کد
- 76. Parsing توابع و پارامترها
- 77. Parsing Declarationها
- 78. Parsing ساختارهای تو در تو
- 79. مدیریت Scope در ساختار نحوی
- 80. Syntax Error و انواع خطاهای نحوی
- 81. مکانیابی خطا در Source Code
- 82. گزارش خطاهای نحوی قابل فهم
- 83. Error Recovery در Parser
- 84. روشهای Panic Mode Recovery
- 85. روشهای Phrase-Level Recovery
- 86. Error Recovery مبتنی بر Token
- 87. ادامه تحلیل پس از خطا
- 88. طراحی Parser مقاوم در برابر خطا
- 89. آزمون Grammar و Parser
- 90. تولید ورودیهای معتبر برای تست
- 91. تست ورودیهای نامعتبر
- 92. تست مرزی Parser
- 93. تشخیص خطاهای Grammar با Test Case
- 94. تحلیل پیچیدگی الگوریتمهای Parsing
- 95. بهینهسازی عملکرد Parser
- 96. مدیریت حافظه در Parser
- 97. Streaming و Incremental Parsing
- 98. Incremental Parsing برای ویرایشگرهای کد
- 99. تحلیل نحوی بلادرنگ در IDE
- 100. Parsing کدهای ناقص و ناتمام
تگها:
Abstract Syntax Tree
AST
Compiler Design
Context Free Grammar
Grammar
LL Parser
LR Parser
Parser
Parsing
Syntax Analysis
پردازش زبانهای برنامهنویسی
تحلیل کد
تحلیل نحوی
طراحی کامپایلر
گرامر
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.