کتاب صوتی نوشتن کامپایلر و مفسر: راهنمای عملی ساخت پردازندههای زبان
📚 کتاب آموزشی جامع
📚 اطلاعات کتاب
عنوان کتاب: کتاب نوشتن کامپایلر و مفسر: راهنمای عملی ساخت پردازندههای زبان
موضوع کلی: مهندسی زبانهای برنامهنویسی
موضوع میانی: پیادهسازی سیستمهای پردازش زبان
📋 سرفصلهای کتاب (100 موضوع)
- 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)
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
sp.express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.