📝 عنوان مقاله: Data-Oriented Parser Design with Token Streams
چکیده: این مقاله توضیح میدهد که چرا طراحی پارسر بهصورت دادهمحور (Data-Oriented) و بر پایهی مصرف توکنها از طریق یک Iterator<Token> میتواند سادهتر و قدرتمندتر از رویکرد سنتی با state مرکزی باشد. در این مدل، هر تابع پارسر فقط روی استریم توکن ورودی کار میکند و خبری از current_token یا peek_token سراسری نیست. نتیجهی این طراحی: رفع آسانتر ابهامهای نحوی، ماژولار بودن کد، و حتی بهبود کارایی در بعضی سناریوها. مقاله همچنین این رویکرد را با معماریهای مرسوم مانند recursive descent و Pratt parser مقایسه کرده و بهترین شیوههای پیادهسازی را جمعبندی میکند.
زمان مطالعه: ۶ دقیقه
برچسبها: parsers, compiler-design, data-oriented, token-streams, language-design, iterator-pattern
https://geekengineers.netlify.app/blog/data-oriented-parser-design-with-token-streams
  
  چکیده: این مقاله توضیح میدهد که چرا طراحی پارسر بهصورت دادهمحور (Data-Oriented) و بر پایهی مصرف توکنها از طریق یک Iterator<Token> میتواند سادهتر و قدرتمندتر از رویکرد سنتی با state مرکزی باشد. در این مدل، هر تابع پارسر فقط روی استریم توکن ورودی کار میکند و خبری از current_token یا peek_token سراسری نیست. نتیجهی این طراحی: رفع آسانتر ابهامهای نحوی، ماژولار بودن کد، و حتی بهبود کارایی در بعضی سناریوها. مقاله همچنین این رویکرد را با معماریهای مرسوم مانند recursive descent و Pratt parser مقایسه کرده و بهترین شیوههای پیادهسازی را جمعبندی میکند.
زمان مطالعه: ۶ دقیقه
برچسبها: parsers, compiler-design, data-oriented, token-streams, language-design, iterator-pattern
https://geekengineers.netlify.app/blog/data-oriented-parser-design-with-token-streams
geekengineers.netlify.app
  
  Geek Engineers - Software Engineering Community
  Join our passionate programming community for extremist software engineering guidance, open source contributions, and collaborative learning.
👾7
  🔥6
  اینم لایبرری برای برنامه نویسی فانکشنال با Go هستش. من بسی لذت بردم ازش. درکل هدف از مطالعه فانکشنال اینه که طرز فکر خوبی میده به آدم برای حل مسائل :)
https://github.com/IBM/fp-go
  
  https://github.com/IBM/fp-go
GitHub
  
  GitHub - IBM/fp-go: functional programming library for golang
  functional programming library for golang. Contribute to IBM/fp-go development by creating an account on GitHub.
🔥5🤣1
  اینم از دیگر تلاش هام یعنی ساختن یک دیتابیس کوچیک و educational.
اما مساله چالش بر انگیز ماجرا این بود که با زبان برنامه نویسی خودم این دیتابیس رو ساختم. یعنی Cyrus.
بنابر این خیلی unstable هست و ممکنه breaking change داشته باشه در آینده. اما در نظر دارم که یک سری فیچر دیگه هم در آینده بهش اضافه بکنم و تو پروژه های کوچیک خودمون ازش استفاده کنیم. انشالله هر وقت زبان مون استیبل شد.
ستاره دادن تو گیت هاب و کامنت فراموش نشه❤️🍻.
https://github.com/cyrus-lang/SampleDB
اما مساله چالش بر انگیز ماجرا این بود که با زبان برنامه نویسی خودم این دیتابیس رو ساختم. یعنی Cyrus.
بنابر این خیلی unstable هست و ممکنه breaking change داشته باشه در آینده. اما در نظر دارم که یک سری فیچر دیگه هم در آینده بهش اضافه بکنم و تو پروژه های کوچیک خودمون ازش استفاده کنیم. انشالله هر وقت زبان مون استیبل شد.
ستاره دادن تو گیت هاب و کامنت فراموش نشه❤️🍻.
https://github.com/cyrus-lang/SampleDB
🔥17❤2
  ch8bModified.pdf
    485.4 KB
  یک ارائه ای کوچکی راجبDynamic relocation using a relocation register که میتونید کپی پیست کنید اسمشو عوض کنید به نام خودتون بزنید و تو دانشگاه ارائه بدید ۲۰ بگیرید.
❤6🤣1
  📝 عنوان مقاله: Dynamic Relocation in Operating Systems: A Detailed Guide and Comparison with Static Relocation
چکیده: این مقاله به بررسی دو رویکرد جابجایی ایستا (Static Relocation) و جابجایی پویا (Dynamic Relocation) در سیستمعاملها میپردازد. توضیح داده میشود که چگونه جابجایی پویا با پشتیبانی سختافزاری در زمان اجرا آدرسها را ترجمه میکند و در مقایسه با روش ایستا انعطافپذیری، حفاظت حافظه و کارایی بهتری ارائه میدهد. در ادامه، هر دو روش از نظر مزایا، محدودیتها و کاربرد در سیستمعاملهای مدرن مانند Linux kernel مقایسه میشوند.
زمان مطالعه: ۷ دقیقه
برچسبها: operating-systems, memory-management, dynamic-relocation, static-relocation, linux-kernel, virtual-memory
https://geekengineers.netlify.app/blog/dynamic-relocation-in-operating-systems
  
  چکیده: این مقاله به بررسی دو رویکرد جابجایی ایستا (Static Relocation) و جابجایی پویا (Dynamic Relocation) در سیستمعاملها میپردازد. توضیح داده میشود که چگونه جابجایی پویا با پشتیبانی سختافزاری در زمان اجرا آدرسها را ترجمه میکند و در مقایسه با روش ایستا انعطافپذیری، حفاظت حافظه و کارایی بهتری ارائه میدهد. در ادامه، هر دو روش از نظر مزایا، محدودیتها و کاربرد در سیستمعاملهای مدرن مانند Linux kernel مقایسه میشوند.
زمان مطالعه: ۷ دقیقه
برچسبها: operating-systems, memory-management, dynamic-relocation, static-relocation, linux-kernel, virtual-memory
https://geekengineers.netlify.app/blog/dynamic-relocation-in-operating-systems
geekengineers.netlify.app
  
  Geek Engineers - Software Engineering Community
  Join our passionate programming community for extremist software engineering guidance, open source contributions, and collaborative learning.
🔥9
  https://en.wikipedia.org/wiki/Bus_error#Unaligned_access
خلاصه ای از unaligned access:
در معماریهای پردازشی، دسترسی غیرهمتراز (unaligned access) به وضعیتی اطلاق میشود که در آن، دادههای چندبایتی (مثلاً 16، 32 یا 64 بیتی) در آدرسهای حافظهای ذخیره میشوند که با مرزهای مورد انتظار آن نوع داده همتراز نیستند. این وضعیت میتواند منجر به خطای Bus Error شود.
توضیح بیشتر:
دستگاههای پردازشی معمولاً دادهها را در واحدهای 8 بایتی (بایت) آدرسدهی میکنند.
برای دسترسی به دادههای چندبایتی، این دادهها باید در آدرسهایی قرار گیرند که با اندازه آنها همتراز باشد. بهعنوان مثال:
برای دادههای 16 بایتی، آدرسهای 0، 2، 4، 6 و غیره همتراز هستند.
برای دادههای 32 بایتی، آدرسهای 0، 4، 8، 12 و غیره همتراز هستند.
اگر دادهای در آدرسی ذخیره شود که با اندازه آن داده همتراز نباشد (مثلاً داده 32 بایتی در آدرس 3)، تلاش برای دسترسی به آن میتواند منجر به خطای Bus Error شود.
  
  خلاصه ای از unaligned access:
در معماریهای پردازشی، دسترسی غیرهمتراز (unaligned access) به وضعیتی اطلاق میشود که در آن، دادههای چندبایتی (مثلاً 16، 32 یا 64 بیتی) در آدرسهای حافظهای ذخیره میشوند که با مرزهای مورد انتظار آن نوع داده همتراز نیستند. این وضعیت میتواند منجر به خطای Bus Error شود.
توضیح بیشتر:
دستگاههای پردازشی معمولاً دادهها را در واحدهای 8 بایتی (بایت) آدرسدهی میکنند.
برای دسترسی به دادههای چندبایتی، این دادهها باید در آدرسهایی قرار گیرند که با اندازه آنها همتراز باشد. بهعنوان مثال:
برای دادههای 16 بایتی، آدرسهای 0، 2، 4، 6 و غیره همتراز هستند.
برای دادههای 32 بایتی، آدرسهای 0، 4، 8، 12 و غیره همتراز هستند.
اگر دادهای در آدرسی ذخیره شود که با اندازه آن داده همتراز نباشد (مثلاً داده 32 بایتی در آدرس 3)، تلاش برای دسترسی به آن میتواند منجر به خطای Bus Error شود.
Wikipedia
  
  Bus error
  Type of computer fault
🔥3👍1
  یک منبع جالبی ست این از دانشگاه illinois آمریکا راجب درک و بعد ساختن یک memory allocator. 
https://cs341.cs.illinois.edu/coursebook/Malloc#memory-allocator-tutorial
https://cs341.cs.illinois.edu/coursebook/Malloc#memory-allocator-tutorial
❤7
  🤣9
  بعد از 1 سال مجدد مسنجر Kavka مون رو ران کردم روی لوکال و حس نوستالژی بهم میده :>
هم فرانت و هم بک اند نیاز به ریفکتور داره😹🤌🏿
امیدوارم در آینده وقت پیدا کنم تا بتونم دوباره رو این پروژه کار کنم :)
https://github.com/kavkaco/Kavka-Core
هم فرانت و هم بک اند نیاز به ریفکتور داره😹🤌🏿
امیدوارم در آینده وقت پیدا کنم تا بتونم دوباره رو این پروژه کار کنم :)
https://github.com/kavkaco/Kavka-Core
🔥12❤1
  Forwarded from Mathematical Musings
  
اینجا توی این مقاله می گه اینقدر تاکید کردند روی درک مفهومی ریاضیات که گند زدند به نمرات بچه های مردم. می گه دیگه کسی دنبال حفظ کردن نیست، کسی دنبال جواب نهایی سوال نیست. فقط می گند فرآیند رو یاد بگیری اکیه، محاسبه نمی خواد. 
می گه معلم ها بیشترشون نمی دونند مغز چطور کار می کنه و این خودش اوضاع رو بدتر کرده. یه بخش مغز به ما کمک می کنه چیزی رو توضیح بدیم و یه بخشش با تمرین و تکرار و تشخیص الگو ورزیده می شه. می گه سیستم های جدید از فنلاند تا نیوزلند تا تایوان فقط تاکید کردند روی اولی و با اینکه زمانی الگو بودند برای بقیه کشورها الان سقوط کردند.
می گه توی این سیستم ها بچه ها فرآیندها رو توضیح می دند ولی توی ساده ترین محاسبات می مونند.
در کل می گه اینقدر تاکید کردند روی درک مفهومی و حفظ کردنی ها و تمرین و تکرار رو گذاشتند کنار که گند زدند به همه چیز!
می گه افسانه اینکه ما نیاز نداریم چیزی رو حفظ کنیم، ما AI داریم، چرته.
https://www.seattletimes.com/opinion/wa-math-education-is-in-crisis-heres-what-could-help/
می گه معلم ها بیشترشون نمی دونند مغز چطور کار می کنه و این خودش اوضاع رو بدتر کرده. یه بخش مغز به ما کمک می کنه چیزی رو توضیح بدیم و یه بخشش با تمرین و تکرار و تشخیص الگو ورزیده می شه. می گه سیستم های جدید از فنلاند تا نیوزلند تا تایوان فقط تاکید کردند روی اولی و با اینکه زمانی الگو بودند برای بقیه کشورها الان سقوط کردند.
می گه توی این سیستم ها بچه ها فرآیندها رو توضیح می دند ولی توی ساده ترین محاسبات می مونند.
در کل می گه اینقدر تاکید کردند روی درک مفهومی و حفظ کردنی ها و تمرین و تکرار رو گذاشتند کنار که گند زدند به همه چیز!
می گه افسانه اینکه ما نیاز نداریم چیزی رو حفظ کنیم، ما AI داریم، چرته.
https://www.seattletimes.com/opinion/wa-math-education-is-in-crisis-heres-what-could-help/
❤11
  پادکست انگلیسی سطح C1, C2 معرفی کنیم تو کانال، یا نه؟
  Anonymous Poll
    81%
    موافقم، منابع توسعه مهارت های انگلیسی هم بزار🍺
      
    4%
    نه، همینطوری خوبه🤌🏿
      
    15%
    برام مهم نیست✨
      
    👍6❤1