کتاب تسلط بر حافظهٔ سطح پایین و محاسبات اشارهگر در Common Lisp: از بافرهای خام تا FFI با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره تسلط بر حافظهٔ سطح پایین و محاسبات اشارهگر در Common Lisp: از بافرهای خام تا FFI
موضوع کلی: برنامهنویسی سیستمی و مدیریت حافظه
موضوع میانی: دسترسی به حافظه، FFI و محاسبات اشارهگر در Common Lisp
📋 سرفصلهای دوره
- 1. مدل حافظه در Common Lisp و مرزهای انتزاع امن
- 2. تمایز حافظهٔ managed لیسپ و foreign memory
- 3. چرخهٔ عمر اشیاء، مرجعها و garbage collection
- 4. پشته، هیپ و اشیاء با طول عمر پویا
- 5. هویت، برابری و نمایش داخلی مقادیر
- 6. tagged pointerها، word alignment و layout اشیاء
- 7. نمایش cons cellها، symbolها و closureها در حافظه
- 8. read barrier و write barrier در garbage collectorها
- 9. پایداری آدرس اشیاء و پیامدهای moving GC
- 10. آرایهها، رشتهها و توالیهای فشرده
- 11. بافرهای بایتی و ساختار دادهٔ باینری خام
- 12. آدرس، offset و مفهوم pointer در Lisp
- 13. محدودیت pointer arithmetic در Lisp استاندارد
- 14. APIهای سطح پایین و رفتار وابسته به پیادهسازی
- 15. مقایسهٔ SBCL، CCL، ECL و ABCL برای کار حافظه
- 16. کار با SB-SYS و SAP در SBCL
- 17. طراحی لایهٔ انتزاعی برای عملیات وابسته به پیادهسازی
- 18. راهاندازی CFFI و چرخهٔ توسعهٔ FFI
- 19. انواع دادهٔ اسکالر خارجی و تبدیل آنها
- 20. اشارهگرها، referenceها و null در CFFI
- 21. تخصیص حافظهٔ foreign با foreign-alloc
- 22. مدیریت scope اشارهگرهای foreign با ماکروهای CFFI
- 23. آزادسازی حافظهٔ foreign و جلوگیری از leak
- 24. محاسبهٔ offset و پیمایش pointerها
- 25. تغییر نوع pointer و کار با void pointer
- 26. قرارداد مالکیت و قرض دادن pointer در رابطها
- 27. مدیریت خطا با unwind-protect در مرز FFI
- 28. تعریف structهای خارجی و layout آنها
- 29. unionها، bit-fieldها و دادههای همپوشان
- 30. آرایههای خارجی، stride و اندیسگذاری
- 31. رشتههای خارجی و کدگذاری کاراکترها
- 32. callbackهای Lisp به C و C به Lisp
- 33. calling conventionها و ABI در فراخوانیهای خارجی
- 34. مدیریت signals و conditions هنگام عبور از FFI
- 35. بازپوشانی کتابخانههای C با رابط Lisp
- 36. تخصیصکنندههای سفارشی و سیاستهای آزادسازی
- 37. allocatorهای arena و bump-pointer
- 38. ترازبندی، padding و الزامات سختافزار
- 39. endianness و تبدیل فرمتهای باینری
- 40. حافظهٔ صفحهای و memory-mapped file
- 41. دسترسی مستقیم به فایل و بافرهای mmap
- 42. خواندن و نوشتن binary با endian و bounds صریح
- 43. packing و unpacking بیتها و فیلدهای کوچک
- 44. serialization و deserialization بدون تخصیص اضافه
- 45. طراحی parser تودرتو برای فرمتهای باینری
- 46. پیادهسازی ring buffer روی حافظهٔ خام
- 47. تبادل zero-copy میان Lisp، C و فایل
- 48. تطبیق Lisp arrays با بافرهای foreign
- 49. پروفایل تخصیص و شناسایی فشار روی GC
- 50. رفتار GC، pauseها و پیشبینی تأخیر
- 51. تنظیم GC در پیادهسازیهای رایج Common Lisp
- 52. کاهش allocation با بافرهای قابل استفادهٔ مجدد
- 53. locality، cache line و الگوهای پیمایش
- 54. benchmarking و جلوگیری از نتایج گمراهکننده
- 55. بهینهسازیهای compiler و اعلان نوع
- 56. کاهش boxing و هزینهٔ عبور از مرز FFI
- 57. انتخاب ساختار داده بر اساس هزینهٔ حافظه و دسترسی
- 58. بافرهای مشترک در برنامههای چندنخی
- 59. atomics، memory ordering و publication ایمن
- 60. lockها، condition variableها و مرزهای همزمانی
- 61. thread safety در callbackها و کتابخانههای foreign
- 62. اعتبارسنجی bounds و پیشگیری از integer overflow
- 63. dangling pointer و use-after-free
- 64. double free، memory leak و مالکیت چندگانه
- 65. سرریز بافر و اعتبارسنجی ورودیهای خارجی
- 66. عیبیابی با Valgrind، ASan و ابزارهای مشابه
- 67. fuzzing و property-based testing برای parserها
- 68. مستندسازی invariantها و مرزهای unsafe
- 69. ساخت abstraction پرتابل برای backendهای مختلف
- 70. طراحی parser باینری کمتخصیص
- 71. اتصال parser به کتابخانهٔ C با CFFI
- 72. بهینهسازی، همزمانی و mmap در پروژهٔ نهایی
- 73. تست ایمنی، پروفایل و مستندسازی نهایی
تگها:
Binary Parsing
CFFI
Common Lisp
Concurrency
FFI
GC
Low-Level Memory Access
Memory-Mapped File
Pointer Arithmetic
SBCL
برنامهنویسی سیستمی
بهینهسازی عملکرد
حافظهٔ خام
لیسپ
مدیریت حافظه
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.